
[Urk, apologies for the illiterate title :-( ] If you remove an attribute from the client, by going to the attributes/abilities tab, this generates a change event for the relevant attribute if it has a listener registered. If you do attribute.remove() through the API, no such event is generated. Do we need a .removeWithWorker() ? This is especially problematic for attributes with default values, since removing them changes the value to something concrete, and dependent fields may need to be updated as a result. In the shaped sheet/script we try to remove attributes and fall back to defaults wherever possible, in order to keep the attribute count as low as possible. Having to move back to having explicit values everywhere in order to work around this limitation would be a big step backwards for performance...