I often face this problem when new requirements come along, but have never seen it discussed anywhere. In this case, I have an existing list of items (staves in a musical score). The requirement is that a user can add and remove new items - but they are not allowed to remove the original items. So what do I name the new stored state?
An enum property with values Original and CreatedByUser reflects the original setter context, and is potentially useful in other actions like rename, copy, etc. I would usually also add a read-only isDeletable property that refers to the enum.
A bool isDeletable property reflects the new requirement, and potentially allows other contexts to set the value depending on yet more requirements.
Is one better than the other? Are there any links that describe or discuss this duality of state variables better?