internal Card RequestPlayerTrashCardFromHand(GameState gameState, CardPredicate acceptableCardsToTrash, bool isOptional, CollectionCards cardsTrashedSoFar = null)
{
Card cardTypeToTrash = RequestPlayerTrashCardFromHandButDontTrash(gameState, acceptableCardsToTrash, isOptional, cardsTrashedSoFar);
if (cardTypeToTrash != null)
this.TrashCardFromHandOfType(gameState, cardTypeToTrash, guaranteeInHand: true);
return cardTypeToTrash;
}