anchor.diff:            .forEach(selections.remove);
         if (selections.keys.length > 0) {
           //check next player
  -        _checkAllPlayable();
  +        _checkAnyPlayable();
         }
       }
     }
  
positive.code:         .forEach(selections.remove);
    }
    
    void _checkAllPlayable() {
      print("Checking all playable for activePlayer: ${activePlayer}");
      print("Round Data: ${roundData}");
      if (activePlayer == null) return;
      if (!roundData[activePlayer.playerNum].deferred.any((card) => board.isPlayable(card))) {
  
negative.code:       return true;
      }
  
      if(pathRequired) {
        _payConnectionFees(new PaymentPath.from(path), player);
  
        if(player.cash == 0){
          _endGame();
    
          return true;
        }
      }
  
      if (board.isClosed) {
  