Value objects should be immutable to maintain integrity.
In domain-driven design, value objects represent a descriptive aspect of the domain with no conceptual identity. They should be immutable, meaning their state cannot be changed after creation. This ensures consistency and predictability. For example, an `Address` value object should not allow changes to its fields after it's created.