docs: public WebDriver build() {
      if (options.isEmpty() && additionalCapabilities.isEmpty()) {
        throw new SessionNotCreatedException("Refusing to create session without any capabilities");
      }
  
      Plan plan = getPlan();
  
      CommandExecutor executor;
      if (plan.isUsingDriverService()) {
        AtomicReference<DriverService> serviceRef = new AtomicReference<>();
  
        executor = new SpecCompliantExecutor(
            () -> {
              if (serviceRef.get() != null && serviceRef.get().isRunning()) {
                throw new SessionNotCreatedException(
                    "Attempt to start the underlying service more than once");
              }
              try {
                DriverService service = plan.getDriverService();
                serviceRef.set(service);
                service.start();
                return service.getUrl();
              } catch (IOException e) {
                throw new SessionNotCreatedException(e.getMessage(), e);
              }
            },
            plan::writePayload,
            () -> serviceRef.get().stop());
      } else {
        executor = new SpecCompliantExecutor(() -> remoteHost, plan::writePayload, () -> {});
      }
  
      return new RemoteWebDriver(executor, new ImmutableCapabilities());
    }