> For example, how do you distinguish a property value that is
set,
> but is an empty string versus a value that is not set and whose
> value therefore becomes a non-empty default value (an internal
> default value that the code would use if the property is not set)?
Not sure I understand. The editor renders a text field with a
non-empty default value. I edit the field, changing it to an empty
string. So is the problem knowing/remembering that I have actually
edited that text field?
Right. And you may not have changed it either. So its not that you can't remember your
own actions, its that you might not know what others have done. How do you distinguish
someone purposefully setting the value to an empty string versus a field being empty to
denote "this value is not set and its internal default value will be used". Note
that the UI might not even know what that default value is - all it may know is "this
property is not set, so whatever code that wants to use this property will have to use
some default value".