anchor.diff:        if(payload['alias'] == this.rtSessionAlias) {
           String player = payload['player'];
           _markPlayerLeftMatch(player);
  +      }
  +    } else if(cmd == 'player-disconnected') {
  +      if(payload['alias'] == this.rtSessionAlias) {
  +        String player = payload['player'];
  +        _markPlayerOffline(player);
         }
       } else if(cmd == 'send-simulation') {
         if(payload['alias'] == this.rtSessionAlias) {
  
positive.code: 
    void onWin() {
      this._setState(State.Won);
    }
  
    void onLose() {
  
negative.code:       this.grid = _renderGrid(playerHolder, player.username, player.account['id'], true);
        this.grid.className = 'playergrid online';
  
        for(TableElement opGrid in this.grids.values) {
          opGrid.parent.className = 'playerspot open';
          opGrid.parent.children.clear();
        }
        this.grids.clear();
  
        List<String> currentPlayers = this.match['players']['current'];
  