code: def discard
        ordered = player.hand.map do |card|
          i = card_preference.map { |preference| card.type == preference }.index(true)
          {card: card, index: i}
        end
        ordered.sort_by { |h| h[:index] || 99 }.last.try(:fetch, :card)
      end
docs: This method is called if your hand is over the hand limit, it returns the card that you would like to discard.
   Returning nil or a card you don't have is a very bad idea. Bad things will happen to you.