code: private List<InvocationMessage> makePayloadInvocations() {
      final MessageFactory f = MessageFactoryHolder.FACTORY;
  
      final List<InvocationMessage> invocationMessages = new ArrayList<>();
      for (final AbstractRequest<?, ?> invocation : this.state.invocations) {
        // RequestData is produced by the generated subclass
        final RequestData data = invocation.getRequestData();
        final InvocationMessage message = f.invocation().as();
  
        // Operation; essentially a method descriptor
        message.setOperation(data.getOperation());
  
        // The arguments to the with() calls
        final Set<String> refsToSend = data.getPropertyRefs();
        if (!refsToSend.isEmpty()) {
          message.setPropertyRefs(refsToSend);
        }
  
        // Parameter values or references
        final List<Splittable> parameters = new ArrayList<>(data.getOrderedParameters().length);
        for (final Object param : data.getOrderedParameters()) {
          parameters.add(EntityCodex.encode(this, param));
        }
        if (!parameters.isEmpty()) {
          message.setParameters(parameters);
        }
  
        invocationMessages.add(message);
      }
      return invocationMessages;
    }
docs: Create an InvocationMessage for each remote method call being made by the context.