The game we used to play on Windows 98, re-written in Haskell.
A very rough and vague plan of how the game flow could be unwound:
- World → User/Client → Action
- Action → Validator → Validation
- Hairy multi-path choice pattern-matching on Validation → 4. or 5.
- Validation → Server → World
- Validation → UI → World