anchor.diff:    final Field field;
     final List<SquareState> _states;
   
  -  GameState _gameState;
  +  GameState _state;
     int _minesLeft;
     int _revealsLeft;
   
     Game(this.field) :
  -    _gameState = GameState.notStarted,
  +    _state = GameState.notStarted,
       _states = new List<SquareState>() {
       assert(field != null);
       _minesLeft = field.mineCount;
  
positive.code: 
    int get revealsLeft => _revealsLeft;
  
    GameState get state => _gameState;
  
    SquareState getSquareState(int x, int y) {
      final i = field._getIndex(x, y);
  
negative.code:     require(currentSS == SquareState.hidden, 'Square state is not hidden');
      _states[i] = SquareState.revealed;
      if(field.isMine(x, y)) {
        _setState(GameState.lost);
      } else {
        _revealsLeft--;
        assert(_revealsLeft >= 0);
        if(_revealsLeft == 0) {
          _setState(GameState.won);
        }
      }
    }
  
    void _setState(GameState value) {
      if(_state != value) {
        _state = value;
      }
    }
  
    void _ensureStarted() {
      if(state == GameState.notStarted) {
        _setState(GameState.started);
      }
      assert(state == GameState.started);
    }
  