public void DebugComponents()
        {
            for (int rule_index = 0; rule_index < game.Phases_Size; rule_index++)              // FOR EACH PHASE

            {
                CGME.Phase phase = game.GetPhase(rule_index);
                Debug.Log("(ID:" + phase.Id + ") " + " -----PHASE: " + phase.CGType + DebugRes(phase));

                for (int phase_index = 0; phase_index < phase.Actions_Size; phase_index++)                  // FOR EACH ACTION

                {
                    CGME.Action action = phase.GetAction(phase_index);
                    Debug.Log("(ID:" + action.Id + ") " + "-------------ACTION:" + action.CGType);                      // + DebugRes(action));
                }
            }

            for (int game_index = 0; game_index < game.Players_Size; game_index++)              // FOR EACH PLAYER

            {
                CGME.Player player = game.GetPlayer(game_index);
                Debug.Log("(ID:" + player.Id + ") " + "PLAYER: " + player.CGType + DebugRes(player));

                for (int player_index = 0; player_index < player.Decks_Size; player_index++)                  // FOR EACH DECK

                {
                    CGME.Deck deck = player.GetDeck(player_index);
                    Debug.Log("(ID:" + deck.Id + ") " + "------DECK: " + deck.CGType + DebugRes(deck));

                    for (int deck_index = 0; deck_index < deck.Cards_Size; deck_index++)                      // FOR EACH CARD

                    {
                        CGME.Card card = deck.GetCard(deck_index);
                        Debug.Log("(ID:" + card.Id + ") " + "--------------CARD:" + card.CGType + DebugRes(card));
                    }
                }
            }
        }