## 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.