anchor.diff:        if (moduleDef is HasInterface) {
           var handler = moduleDef.createInterfaceHandler(module);
           var interface = moduleDef.createInterface(module, (action, args) {
  +          // Could put logic here to check if this module is allowed to be
  +          // interacted with from user interface currently.
             var event = new InterfaceEvent(
                 moduleDef.runtimeType, action, args, run.currentPlayTime());
             persistence.saveEvent(event);
  
positive.code: 
    if (persistence.savedEvents.isNotEmpty) {
      var ff = new _FastForwarder(clock);
      run = new Run(ff.getCurrentPlayTime);
      scriptModules = new ScriptModules(script.modules, run, persistence);
      ff.run((ff) {
        script.block(run, scriptModules.modules);
        persistence.savedEvents.forEach((e) {
  
negative.code:       });
        ff.fastForward(persistence.savedEvents.last.offset);
      });
  
      ff.switchToParentZone();
    } else {
      var startTime = clock.now();
      var cpt = () => clock.now().difference(startTime);
  
      run = new Run._(cpt);
      scriptModules = new ScriptModules(script.modules, run, persistence);
  
      script.block(run, scriptModules.modules);
    }
  
  