## Core Properties - **No [[Identifier]]:** Unlike [[Entity|Entities]], Value Objects are not defined by a unique [[Identifier|ID]]. Two Value Objects are considered equal if all their properties/attributes match. - **Immutable:** Once created, a Value Object cannot be changed. To update it, you must create a new instance. - **Structural Equality:** They are compared based on their content (attributes), **not** their reference in memory. - **Conceptual Whole/Value-based:** They model a specific value or set of values, such as an Address (street, city, zip) or Money (amount, currency, date and time). - **Side-effect Free Behavior:** Methods on a Value Object return a new instance rather than modifying the current one. - **Self-Validation:** Value Objects often validate their own integrity upon creation, ensuring they cannot exist in an invalid state.