// Игровое сообщение обработано
        private void MessageProcessed(object sender, MessageProcessedEventArgs e)
        {
            // Аргументы сообщений, которые будут отправлены позже
            var changesForClients = new List <StateChange>();

            // Изменить состояние сервера
            foreach (var change in e.Changes)
            {
                ApplyChange(change.ChangeMessage);

                // Добавить к отправляемым сообщениям
                if (change.TargetType != SendTargetType.NoOne)
                {
                    changesForClients.Add(change);
                }
            }

            // Отправить сообщения клиентам
            foreach (var clientChange in changesForClients)
            {
                var args = MessageEventArgs.CreateFromChange(clientChange);
                GotMessageToSend?.Invoke(this, args);
            }
        }