protected override int ReadFromByteArray(ByteArrayReader reader)
        {
            base.ReadFromByteArray(reader);

            IsGameStarted = reader.ReadBool();
            DeckSize = reader.ReadInt32();
            PlayerIndex = reader.ReadInt32();
            Reverse = reader.ReadBool();
            Top = reader.Read<Card>();
            Winner = reader.ReadString();

            Players = reader.ReadStringList();
            PlayerHandSizes = reader.ReadIntList();
            Cards = reader.ReadList<Card>();

            return reader.Index;
        }