Inside PropertyList, when the user requests a property which has not been updated by the user, the PropertyList returns the default property with the specified name (if it exists). The iterator will also yield the default property. The values in the properties are mutable field and can be modified. As default properties are shared by all cells of a given type, updating the value field of these properties affects all cells of this type. This can lead to unexpected bugs.
To prevent this, we should prevent users from updating the value of the default properties. Possible fixes include:
On cell creation, create a new local copy of the default properties.
Make default property values read-only.
Make properties immutable objects (remove the setValue method).
Inside PropertyList, when the user requests a property which has not been updated by the user, the PropertyList returns the default property with the specified name (if it exists). The iterator will also yield the default property. The values in the properties are mutable field and can be modified. As default properties are shared by all cells of a given type, updating the value field of these properties affects all cells of this type. This can lead to unexpected bugs.
To prevent this, we should prevent users from updating the value of the default properties. Possible fixes include:
I'm personally in favor of the first option.