One of those things that will take a bit of tinkering is changing the format of the replay data storage.
Currently the data is rather “inflated”, with a lot of things tacked on in later versions to make up for the alterations in the replay data that’s available to the parser. That’s lead to the point where a single replay’s data comes out to about 24 kilobytes of JSON, which is a lot.
Since the request has come up to support older replay versions, I’ve had to rethink the entire storage structure, given that at the moment a lot of things get monkey-patched into supporting a different version. So the entire replay format (or rahter, how it’s stored) has to change so that field names are always the same, and depending on a replays’ version, those fields get filled in by the parser/processor tools. In a similar vein the way that packets are stored for the battle viewer also has to change, currently they’re stored as a huge JSON file (and they are huge), and I’m considering moving this to a binary format to cut down on loading overhead, and being able to compress it a bit more than it is right now.
More details will appear in the replaysng repository eventually