Thanks very much for the pointer to PuzzleScript. I was not aware of it. It's very cool to see a rewriting-based system in practice. I chose to work with a more imperative style of guarded commands in TileCode, but it's very close to a rewriting system.