This was all done in about 4 hours of crunch. I was just in the groove.
Recording is pretty much completely working. You can record things in
realtime, you can pass that data onto a playback object (haven't written
that part yet but I've written the in-between), and you can save
recordings to a file, either as a binary file (efficient) or as an XML
file (definitely not).
There's more I might want to do with the encoding in the future, namely
some compression. Like if a value hasn't changed in a while, we don't
need to store it every tick. I believe this is called "temporal
compression."
The XML data actually compresses incredibly well (I guess I shouldn't be
surprised; the data is 90% the word "Property"). That might be worth
looking into.
Anyway, playback coming soon.