private static XElement RootToElement(RootMemento memento)
            {
                var specs = memento.Specs.Zip((1, 2), PlayerSpecToElement);

                return(new XElement(RootMementoElement,
                                    new XAttribute("boardSize", memento.BoardSize),
                                    new XAttribute("firstPlayer", memento.IsFirstPlayerPlaying),
                                    new XElement(PlayersElement,
                                                 specs.Item1,
                                                 specs.Item2)));
            }
            public static XElement StateToElement(GameState state)
            {
                var memento = new RootMemento(state.SpecPair, state.BoardSize, state.CurrentPlayer == state.Player1);

                return(RootToElement(memento));
            }