I'm trying some ideas for multiples save games on the web version. I did some tests saving one or more "walkthroughs" in the browser local storage AND the game object. The load operation just plays theses moves using HandleCommand. The "official" save game contains all saves. In order to load a save game that is not the last, the player just go to the "continue play" link, and type the load command, picking a save game. All saves are stored at the client, the game is restarted, and the games are transferred from the client to the server, where a local storage variable tells the server what game to load.
In theory all works. In fact I did a small working example:
It is not a true game, but just a proof of concept.
It may handle random numbers (but you need to call a wrapper function that "remembers" each random number). It does not deal with timed constraints, but just because I don't like them on IF :o)
I read the topic about save games, and there is some criticism on the save as command list. I prefer a save game that may be broken after major bug update, but incorporates small grammar/text corrections, than an independent save game that does not reflect the current version of the game. Thinking in a game in almost "production" stage. Another factor to consider is the HUGE size of the current save game, that includes all code and libraries every time. I would guess that the current server lag may have something to do with these save games. It is just my "programmer" me guessing...
One problem for this solution is the desktop version, that just don't have a full browser with local storage. However, the desktop already have the possibility for multiple saves :)
I hope it may be helpful.