Speaking of undo, one neat feature of Puzzlescript is that the undo stack includes level restarts. I don't know if it's possible in your particular implementation, but it's more useful than you'd think, as the restart can have a tendency to clarify where your previous attempt went wrong when you're getting close to a solution.
I did not include restarting in the undo stack although that would have been really useful (an oversight). I used the PuzzleScript documentation as a reference for the implementation of game logic. The Riko engine allows chain reactions of rules to happen like in PuzzleScript, but we cut any of the chain reaction elements out of the final game as it didn't add anything to the puzzles.
i.e. We had an explosive that would damage tiles on either side that you could arrange. I liked it cause it was cool, and could wreck your large blocks, but it didn't add anything.
Thanks for letting me know about the undo restart. Come to think of it, Stephen's Sausage Roll also keeps restart in undo stack!