What are some serialization strategies in order to save data to the disk? Obviously just dumping the data to disk is easy, but I'd like something a little more robust. I'd need something that can handle rearranging the members of the struct, and also adding new members, and still be able to load old data from disk. I feel like this might be a metaprogramming/code generation problem?
Edit: I guess a better way to phrase this would be, how can I 'version' my structs if I plan to save and reload them over time and changes. I'd like to be able to work on the game (i.e. creating levels, etc) without having to worry about having to redo everything if I decide to add a field to my 'level' structure (this is not a 'procedural' style game). Also writing a converter every time I make a change feels wrong somehow.