LegalMove¶
A player action.
The different Game state transition methods (GameNotStarted.start, GameNewTurn.play, etc.) only verify that a move is legal but do not perform it. This allows UIs to eagerly verify if a move is legal.
To perform the move, call perform, which will return the new game state after the move has taken place.