Going through the issue tracker I can across one that I had added - the ability to know if an attribute resource was modified since it was loaded from or saved to disk.
I was thinking how this could be done and wanted to bounce around a couple ideas.
The simplest would be to have a modified property on the resources (in fact maybe all resources would have this property). All modification methods could mark the resource modified. The issues related to this approach would include:
When reading in the resource from disk or stream would generate a lot of modified calls. One way of possibly getting around this would be to provide an optional flag in the modification calls (or provide a duplicate interface that would not call the modified method on the attribute resource)
It may not be a single hop to get to the model resource - for example an item or item definition may have to go several levels to reach the attribute resource.
Some transient attribute resources may not what to track this and will get hit by the overhead.