issue #18: Game state serialization