full game state with history and also end of game
ongoing const-ification, added undo and tests.