anchor.diff:    final Array2d<SquareState> _states;
     final _updatedEvent = StreamController<void>();
     final _gameStateEvent = StreamController<GameState>();
  +  final _watch = Stopwatch();
   
     GameState _state;
     int _bombsLeft;
     int _revealsLeft;
  -  DateTime _startTime;
  -  DateTime _endTime;
   
     Game(this.field)
         : _state = GameState.reset,
  
positive.code:   void _setState(GameState value) {
      assert(value != null);
      assert(_state != null);
      assert((_state == GameState.reset) == (_startTime == null));
      if (_state != value) {
        _state = value;
        if (_state == GameState.started) {
          _startTime = DateTime.now();
        } else if (gameEnded) {
          _endTime = DateTime.now();
        }
        _gameStateEvent.add(_state);
      }
  
negative.code: 
    void _ensureStarted() {
      if (state == GameState.reset) {
        assert(!_watch.isRunning);
        _setState(GameState.started);
      }
      assert(state == GameState.started);
      assert(_watch.isRunning);
    }
  
    int _getAdjacentCount(int x, int y, SquareState state) {
  