I don't know if this is a good idea, but I'm considering storing blocks of dynamic content data in text columns of the table. For example, if I have a class that inherits Page and have custom fields. It seems like I could just create a custom DataObject that would json_encode/decode an object/array, etc and store it in the text field. I don't foresee any efficiency issues with this. Possibly a little extra cpu overhead in the encode/decode process but static pages would reduce this considerably.
In this case with the ImageDataObjectManager, could I basically leave it as-is and just add the logic to serialize the data into a normal text column so it would work with versions and history? In essence, you would be redundantly storing the data in a packaged format. Otherwise, I guess you could modify the DOM to be able to have the option to store data like this, which is probably a better idea.
The idea is that you click a version in the typical page history and it loads the main content and any other custom tabs that contain dynamic data.
Seems like a shortcut, but it would utilize the stage/live versions and history that is already in place. Versions and history on a lot of dynamic data seems like a lot to manage if you have to write version logic for every piece. I don't think I would want a Diff for this so I'd probably disable it.
Any thoughts appreciated