Just finished fixing all the desyncs in the replays. It's actually pretty tough to find out what exactly is the reason the replay is not equal to the played game. As explained above, the game records which buttons where pressed on each frame, and 're-enacts' the playthrough. Often a desync is caused by values being overwritten or the key pressed of a single step before. I've been struggling with this for some time now so it's good to have this out of the way.
Spent most of the past and this week working on a Picross/Nonogram client, but it's code turned out to become so incredibly messy and buggy that it's simply no more fun to implement features into it (alongside other factors). So I hope to pick up speed with Mobility again, although I have a hard time deciding what needs to be implemented first. I'm thinking of working towards a playable demo with a part of the game all wrapped up, and use it to test and gather some feedback to shape the rest of the game. I'll see.