derive Show and Read for GameState