Some thoughts regarding items on the to-do list:
Since we have the meta-have message, OCP core has a method to send meta data
after body data. I think application protocol binding has to define whether
meta-have messages are only allowed before data-have messages or can also occur
at the end to transfer message trailers as meta data.
OCP core should not artificially limit the usage of preserved data while
application protocol binding may of course define shorter times to keep copied
Some application protocol bindings may benefit from allowing to refer to the
original application message start through data-as-is at the end of the
application message in the response.
Some application protocol bindings will allow multiple application messages in
the response and a later message may want to refer to the original message
So, I think, the only limit OCP core can set is xaction-end.
Option 1: Reuse data-as-is and allow the character '*' as the size parameter to
indicate that the callout processor would like to use data-as-is for all
upcoming data-have messages or will send identical data-have messages back if
the "copied" flag is not set. The OPES processor can use this information and
stop sending further data-have messages
Problems if the copied flag is not set. Callout server must continue to send
back all data-have messages that it receives after sending the data-as-is
message and OPES processors that do not support this feature may be confused by
the data-as-is message and stop with an error due to unexpected data-as-is
Option 2: Add a new message. Will work but may be a waste of messages.
Option 3: Use the modp parameter. Callout processor can send the value zero
with modp and therefore commit to not modifying any future data of that message.
It should be safe for an OPES processor to stop sending any other data-have