/// <summary>
 /// Ensures the minimum team composition doesn't exceed 100%.
 /// </summary>
 private bool validateTeamComposition(Game game)
 {
     int totalPercent = 0;
     foreach (Team t in game.GetTeamsPlayingUnique())
     {
         totalPercent += t.MinPercentage;
     }
     if (totalPercent > 100)
     {
         throw new System.Exception("Minimum team composition required can be greater than 100%");
     }
     return true;
 }
 /// <summary>
 /// Validates the following:
 /// <para />For each team: Percentage of players in this game is greater than <see cref="Team.MinPercentage"/>
 /// <para />At least 2 teams are playing.
 /// <para /><see cref="Role.MaxPlayers"/> is not violated.
 /// </summary>
 /// <returns></returns>
 private bool ValidateTeamMinPercent(Game game)
 {
     if (game.GetTeamsPlayingUnique().Count < 2) return false;
     foreach (Team t in game.GetTeamsPlayingUnique())
     {
         int teamMembersCount = game.GetCountOfPlayersOnTeam(t);
         int minMembers = MathX.Percent(game.Players.Count, t.MinPercentage);
         if (teamMembersCount < minMembers) return false;
     }
     return true;
 }