code: def _eval_card(source, card):
  	
  	if isinstance(card, LazyValue):
  		card = card.evaluate(source)
  
  	if isinstance(card, Action):
  		card = card.trigger(source)[0]
  
  	if not isinstance(card, list):
  		cards = [card]
  	else:
  		cards = card
  
  	ret = []
  	for card in cards:
  		if isinstance(card, str):
  			ret.append(source.controller.card(card, source))
  		else:
  			ret.append(card)
  
  	return ret
docs: Return a Card instance from \a card
  	The card argument can be:
  	- A Card instance (nothing is done)
  	- The string ID of the card (the card is created)
  	- A LazyValue (the card is dynamically created)