code: public RequestFuture<T> submit(boolean shouldQueue)
      {
          Route.CompiledRoute route = finalizeRoute();
          Checks.notNull(route, "Route");
          RequestBody data = finalizeData();
          CaseInsensitiveMap<String, String> headers = finalizeHeaders();
          BooleanSupplier finisher = getFinisher();
          return new RestFuture<>(this, shouldQueue, finisher, data, rawData, route, headers);
      }
docs: Submits a Request for execution and provides a {@link net.dv8tion.jda.core.requests.RequestFuture RequestFuture}
  representing its completion task.
  <br>Cancelling the returned Future will result in the cancellation of the Request!
  
  <p>Note: The usage of {@link java.util.concurrent.CompletionStage#toCompletableFuture() CompletionStage.toCompletableFuture()} is not supported.
  
  @param  shouldQueue
  Whether the Request should automatically handle rate limitations. (default true)
  
  @return Never-null {@link net.dv8tion.jda.core.requests.RequestFuture RequestFuture} task representing the completion promise