State + move = new state
Both old state and new state are immutable. Move doesn't mutate board state, but creates a copy of the old state with move added.
Imagine an inefficient implementation where board state is just a linked list of moves taken and each new move just adds another head to the linked list. For instance if I am holding a reference to a specific head of linked list of 5 moves (representing board state), adding more moves doesn't change anything as far as that value is concerned, it still points of a list of 5 moves even if the whole list is now 9 moves long. Immutability.