What happens to saved data for different versions
I also recently saw this. I think it should definitely be versioned.
For example, right now you could release one version, which saves data, then the next version would start with data on all bots and could get a higher score.
This might also be a nasty side-channel for bots to communicate during battle, if different versions are in the rumble at the same time.
And the real problem is, if you'd ever changed the format across versions, either overwrite or save elsewhere has to happen, but the former will make it hard to retest older versions, and the latter will at some point drain all your data saving capacity, and you have to back to the former again. Both works unnaturally. And if you don't handle this cases, you'll experience some bugs not locally reproducible.
Just tested it, the data files from jar is copied every time it loads to override the older versions, but if you are running two versions at the same time, the latter's will be shared in two bots.
Maybe some mechanism to separate files from different versions helps. E.g. Using a version number prefix of each file, either from jar or created on the fly.
And for saved battles, I'm considering using the pairing instead of the opponent as names.