Too Long; Didn't Read
Primitive Obsession is a code smell in which primitive data types are used excessively to represent your data models. Primitives are the basic data types available in most languages. For example, a string could represent a name, an address, or even an ID. The problem with primitives is they are very general. They can't contain any model-specific logic or behaviour, meaning that any logic must be stored in the containing class. This means you end up with classes containing lots of unrelated logic, which violates the Single Responsibility Principle.