This should avoid any format inconsistencies, like missing newlines and the like.
Although a basic save and load works, there may still be some issues with the format.
This probably renders older saved games incompatible.
The format is mostly the same, but there are a few small changes
in the name of making the format more uniform.
After further experimentation, the previous template-heavy design
turned out to cause issues with compilation.
Thus, it has now been replaced with a simpler, dumber implementation
that pushes more of the logic into the caller.