Love that idea. I’m using a range of XML based data classes and associated library classes, and had to give up undo right now - best I found was to store the prior value and send the prior and new value as xml denoting a change (store that as an undoable action).
Couple of things Haydxn added for me that I’d put in as feature requests was the ability to get and set values using a ‘path’ object, similar to Xpath. That could specify the object, to be looked up in an array, and the path to data within the object. He also made a library class, so a bunch of these tree/data items can be managed and accessed by type and ID.
Please also add a version number and a strong ID (like a database key) to the items, and consider a hook for every time the data changes (although a listener covers that mostly) so the data can be shared (I send changes with XML to remote machines).
I won’t burden you with any more name ideas. Mine would have been silly anyway.
Bruce