anchor.diff:  class Game {
   
     final List<Player> players = new List();
  +  final Interface interface;
     int currentTurn = 0;
     int currentActions = 0;
     bool isAnyoneShogun = false;
     List<Card> deck;
     List<Card> discard = new List();
  -  List<String> commandHistory = new List();
  +
  +  Game(this.interface);
   
     bool doTurn() {
       Player player = players[currentTurn % players.length];
  
positive.code:     }
  
      while (currentActions < 5) {
        Action action = player.human.getAction();
        if (action.playerIndex != currentTurn % players.length) {
          player.human.alert("You can only submit moves for yourself!");
        } else {
          try {
            currentActions += action.perform(deck, discard, players, (player.getKi() ~/ 3) - currentActions);
            // TODO now that we know command is valid, update command history list and update players
          } on InvalidActionException catch (e) {
            player.human.alert(e.msg);
          }
        }
        if (deck.isEmpty) {
          var tmp = deck;
          deck = discard;
  
negative.code:     //TODO put initial state into command history
  
      while(!doTurn());
      interface.update("win " + (currentTurn % players.length).toString());
    }
  }
  