code: <O extends Message> JsonResponseFuture<O> newProvisionalResponse(ClientMethod<O> method) {
      long requestId = RANDOM.nextLong();
      JsonResponseFuture<O> outputFuture = new JsonResponseFuture<>(requestId, method);
      inFlightRequests.put(requestId, outputFuture);
      return outputFuture;
    }
docs: Returns a new provisional response suited to receive results of a given
  protobuf message type.
  
  @param method the method invocation for which a response should be created
  @param <O> the type of the message this response will handle