private EClientTextID Convert_Game_Action_Failure_To_Text_ID( EGameActionFailure action )
        {
            switch ( action )
            {
                case EGameActionFailure.Cannot_Play_More_Than_One_Card:
                    return EClientTextID.Client_Game_Action_Cannot_Play_More_Than_One_Card;

                case EGameActionFailure.Cannot_Play_A_Card_After_Passing_Cards:
                    return EClientTextID.Client_Game_Action_Cannot_Play_A_Card_After_Passing_Cards;

                case EGameActionFailure.Turn_Is_Already_Complete:
                    return EClientTextID.Client_Game_Action_Turn_Is_Already_Complete;

                case EGameActionFailure.You_Must_Play_A_Card_Before_Drawing:
                    return EClientTextID.Client_Game_Action_You_Must_Play_A_Card_Before_Drawing;

                case EGameActionFailure.Can_Only_Pass_One_Set_Of_Cards:
                    return EClientTextID.Client_Game_Action_Can_Only_Pass_One_Set_Of_Cards;

                case EGameActionFailure.Can_Only_Pass_Cards_In_A_Four_Player_Game:
                    return EClientTextID.Client_Game_Action_Can_Only_Pass_Cards_In_A_Four_Player_Game;

                case EGameActionFailure.Card_Is_Not_In_Your_Hand:
                    return EClientTextID.Client_Game_Action_Card_Is_Not_In_Your_Hand;

                case EGameActionFailure.A_Higher_Card_Already_Exists:
                    return EClientTextID.Client_Game_Action_A_Higher_Card_Already_Exists;

                case EGameActionFailure.Deck_Is_Empty:
                    return EClientTextID.Client_Game_Action_Deck_Is_Empty;

                case EGameActionFailure.Discard_Pile_Is_Empty:
                    return EClientTextID.Client_Game_Action_Discard_Pile_Is_Empty;

                case EGameActionFailure.Not_Enough_Cards_In_Hand_To_Pass:
                    return EClientTextID.Client_Game_Action_Not_Enough_Cards_In_Hand_To_Pass;

                case EGameActionFailure.Not_In_Match:
                    return EClientTextID.Client_Game_Action_Not_In_Match;

                case EGameActionFailure.Match_Halted:
                    return EClientTextID.Client_Game_Action_Match_Halted;

                case EGameActionFailure.Not_Your_Turn:
                    return EClientTextID.Client_Game_Action_Not_Your_Turn;

                case EGameActionFailure.Turn_Is_Incomplete:
                    return EClientTextID.Client_Game_Action_Turn_Is_Incomplete;

                case EGameActionFailure.Invalid_Turn:
                    return EClientTextID.Client_Game_Action_Invalid_Turn;

                case EGameActionFailure.Play_Card_Must_Be_First_Action:
                    return EClientTextID.Client_Game_Action_Play_Card_Must_Be_First_Action;

                case EGameActionFailure.Discard_Card_Must_Be_First_Action:
                    return EClientTextID.Client_Game_Action_Discard_Card_Must_Be_First_Action;

                case EGameActionFailure.Passing_Cards_Must_Be_Only_Action:
                    return EClientTextID.Client_Game_Action_Passing_Cards_Must_Be_Only_Action;

                case EGameActionFailure.Two_Distinct_Cards_Must_Be_Passed:
                    return EClientTextID.Client_Game_Action_Two_Distinct_Cards_Must_Be_Passed;

                case EGameActionFailure.Not_A_Player:
                    return EClientTextID.Client_Game_Action_Not_A_Player;

                default:
                    return EClientTextID.Invalid;
            }
        }
 // Construction
 public CMatchTakeTurnResponse( EMessageRequestID request_id, EGameActionFailure error )
     : base(request_id)
 {
     Error = error;
 }