docs: public CompletableFuture<Void> close() {
      if (client == null) {
        return CompletableFuture.completedFuture(null);
      }
  
      CompletableFuture<Void> future = new CompletableFuture<>();
      client.stop().whenComplete((clientResult, clientError) -> {
        if (server != null) {
          server.stop().whenComplete((serverResult, serverError) -> {
            future.complete(null);
          });
        } else {
          future.complete(null);
        }
      });
      return future;
    }