anchor.diff:  
     void _ensureStarted() {
       if (state == GameState.reset) {
  -      assert(_startTime == null);
  +      assert(!_watch.isRunning);
         _setState(GameState.started);
       }
       assert(state == GameState.started);
  -    assert(_startTime != null);
  +    assert(_watch.isRunning);
     }
   
     int _getAdjacentCount(int x, int y, SquareState state) {
  
positive.code: 
    bool get gameEnded => _state == GameState.won || _state == GameState.lost;
  
    Duration get duration {
      if (_startTime == null) {
        assert(state == GameState.reset);
        return null;
      } else {
        assert((state == GameState.started) == (_endTime == null));
        final end = (_endTime == null) ? DateTime.now() : _endTime;
        return end.difference(_startTime);
      }
    }
  
    bool canToggleFlag(int x, int y) {
      final currentSS = _states.get(x, y);
  
negative.code:   final Array2d<SquareState> _states;
    final _updatedEvent = StreamController<void>();
    final _gameStateEvent = StreamController<GameState>();
    final _watch = Stopwatch();
  
    GameState _state;
    int _bombsLeft;
    int _revealsLeft;
  
    Game(this.field)
        : _state = GameState.reset,
  