anchor.diff:      serverManipulate = serverRoot.resolve("manipulate");
       serverTakeScreenshot = serverRoot.resolve("take_screenshot");
   
  -    availableObjectsChecker =
  -        new Timer.periodic(MILLISECOND * (1000 * interval), (Timer timer) {
  -      updateAvailableObjects();
  -    });
  +    runLater(updateAvailableObjectsIntervalMs,
  +        updateAvailableObjectsPeriodically);
       addCollapseButtons();
       updateCollapsedSections();
       handleObjects(serverGetObjects);
  
positive.code:     handleObjects(serverGetNewObjects);
    }
  
    void reloadKCSAPIModules() {
      HttpRequest.getString(serverReloadKCSAPIModules.toString());
    }
  
negative.code:     clientRoot = Uri.parse(window.location.href);
      var interval = clientRoot.queryParameters["interval"];
      interval = interval != null ? double.parse(interval) : 1.0;
      updateAvailableObjectsIntervalMs = 1000 * interval;
      serverRoot = clientRoot.resolve("/");
      serverGetObjects = serverRoot.resolve("get_objects");
      serverGetNewObjects = serverRoot.resolve("get_new_objects");
  