private PlayerContext[] ReadPlayerContexts() {
            int playerContextCount = ReadInt();
            if (playerContextCount < 0) {
                return null;
            }

            PlayerContext[] playerContexts = new PlayerContext[playerContextCount];

            for (int playerContextIndex = 0; playerContextIndex < playerContextCount; ++playerContextIndex) {
                playerContexts[playerContextIndex] = ReadPlayerContext();
            }

            return playerContexts;
        }
        private void WritePlayerContexts(PlayerContext[] playerContexts) {
            if (playerContexts == null) {
                WriteInt(-1);
            } else {
                int playerContextCount = playerContexts.Length;
                WriteInt(playerContextCount);

                for (int playerContextIndex = 0; playerContextIndex < playerContextCount; ++playerContextIndex) {
                    WritePlayerContext(playerContexts[playerContextIndex]);
                }
            }
        }
        private void WritePlayerContext(PlayerContext playerContext) {
            if (playerContext == null) {
                WriteBoolean(false);
            } else {
                WriteBoolean(true);

                WriteHockeyists(playerContext.Hockeyists);
                WriteWorld(playerContext.World);
            }
        }