public static CardAcceptance For(Card card, CountSource countSource, Comparison comparison, int threshhold)
        {
            MatchDescription descr = new MatchDescription(card, countSource, comparison, threshhold);

            return descr.ToCardAcceptance();
        }
        public static CardAcceptance For(Card card, CountSource countSource, Comparison comparison, int threshhold, GameStatePredicate match)
        {
            MatchDescription descr = new MatchDescription(card, countSource, comparison, threshhold);

            return CardAcceptance.For(card, gameState => descr.GameStatePredicate(gameState) && match(gameState));
        }
 public CardAcceptanceDescription(Card card, MatchDescription[] matchDescriptions)
 {
     this.card = card;
     this.matchDescriptions = matchDescriptions;
 }