nopantsyet
First Post
Regarding history, I'm inclined to make characters aggregate rather than snapshot based. You might have:
The uid is a unique identifier for a "change set" (e.g. all changes from advancing a level) so all related changes can be ignored to see an earlier version of the PC.
Code:
<ability id="int" name="Intelligence" base="16">
<boost value="1" reason="lvl4" uid="1293801"/>
<boost value="1" reason="lvl8" uid="1295920"/>
</ability>
I agree that a sequential build-up should never be required. But fundamentally, I think that the character should be stored in aggregate rather than final form.reanjr said:If a developer wants to ignore history altogether, they can simply ignore anything with a snap-id whose snap-current is not set to true. This allows for complete interop between apps that do support rollback and those that don't. I don't think it is appropriate to force an application to start at the beginning and build up through the changes (and it's probably quite inefficient, too). It's much better to start at the latest and work back through changes. I'll leave the implemention details of how you delete data as you go back to someone else. Perhaps snap-delete="true" deletes the entire tag, while snap-delete-attributes="name id" could be used to, for instance, delete the name and id attributes of the tag. Anything specified (name="reanjr") is changed and anything unspecified is left identical.