anchor.diff:  
   play_card_if_allowed(not_allowed, _Card, _From, _To, Game) ->
     Game;
  -play_card_if_allowed(allowed, #card{type=unit, cost=Cost}, 
  +play_card_if_allowed(allowed, #card_def{type=unit, cost=Cost}, 
                        From, {Player, field}=To, #game{}=Game) ->
     {Card, RemovedGame} = remove_card(Game, From),
     PaidSupply = add_supply(Player, - Cost, RemovedGame),
     add_card(PaidSupply, Card, To);
  -play_card_if_allowed(allowed, #card{type=supply, attrs=Attrs}, 
  +play_card_if_allowed(allowed, #card_def{type=supply, attrs=Attrs}, 
                        From, {Player, discard}=To, #game{}=Game) ->
     {supply, Supply} = lists:keyfind(supply, 1, Attrs),
     {Card, RemovedGame} = remove_card(Game, From),
  
positive.code:             {Attacker, CardType} = lists:keyfind(Attacker, 1, Field),
              %io:format("Got card: ~p~n", [get_card(CardType)]),
              Card = get_card(CardType),
              unit =:= Card#card.type
          end, Attackers)
    catch
      _Error:_Exception ->
  
negative.code: 
  %Can always play supply cards
  check_allowed(_Phase, Player, _CurPlayer,
                {Player, hand, _Id}, #card_def{type=supply}, {Player, discard}, _Game) ->
    allowed;
  %Can deploy units on own deploy phase
  %If have enough supply for card
  check_allowed(deploy, Player, Player,
                {Player, hand, _Id}, #card_def{cost=Cost, type=unit}, {Player, field}, Game) ->
    #player{supply=Supply} = get_player(Game, Player),
    case Supply of
      Supply when Supply >= Cost -> allowed;
  