Draft: draft-ietf-masque-h3-datagram

Commentary: It 's shorter and apparently the tagging is what is now required later on in the RFC process anyway .
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 RFC2119 RFC8174 when, and only when, they appear in all capitals,
as shown here.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 RFC2119 RFC8174 when, and only when, they appear in all
capitals, as shown here.
This specification introduces the Capsule Protocol.  The Capsule
Protocol is a sequence of type-length-value tuples that new HTTP
Upgrade Tokens (see Section 16.7 of HTTP) can choose to use.  It
allows endpoints to reliably communicate request-related information
end-to-end on HTTP request streams, even in the presence of HTTP
intermediaries.  The Capsule Protocol can be used to exchange HTTP
Datagrams when HTTP is running over a transport that does not support
the QUIC DATAGRAM frame.
This specification introduces the Capsule Protocol.  The Capsule
Protocol is a sequence of type-length-value tuples that new HTTP
Upgrade Tokens (see HTTP) can choose to use.  It allows endpoints to
reliably communicate request-related information end-to-end on HTTP
request streams, even in the presence of HTTP intermediaries.  The
Capsule Protocol can be used to exchange HTTP Datagrams when HTTP is
running over a transport that does not support the QUIC DATAGRAM
frame.
A variable-length integer indicating the Type of the capsule.
Endpoints that receive a capsule with an unknown Capsule Type MUST
silently skip over that capsule.
The length of the Capsule Value field following this field,
encoded as a variable-length integer.  Note that this field can
have a value of zero.
The payload of this capsule.  Its semantics are determined by the
value of the Capsule Type field.
When an error occurs processing the capsule protocol, the receiver
MUST treat the message as malformed or incomplete, according to the
underlying transport protocol.  For HTTP/3, the handling of malformed
messages is described in Section 4.1.3 of H3.  For HTTP/2, the
handling of malformed messages is described in Section 8.1.1 of H2.
For HTTP/1.1, the handling of incomplete messages is described in
Section 8 of H1.
When an error occurs processing the capsule protocol, the receiver
MUST treat the message as malformed or incomplete, according to the
underlying transport protocol.  For HTTP/3, the handling of malformed
messages is described in H3.  For HTTP/2, the handling of malformed
messages is described in H2.  For HTTP/1.1, the handling of
incomplete messages is described in H1.
Data streams (see capsule-protocol) can be prioritized using any
means suited to stream or request prioritization.  For example, see
Section 11 of PRIORITY.
Data streams (see capsule-protocol) can be prioritized using any
means suited to stream or request prioritization.  For example, see
PRIORITY.
A name or label for the capsule type.
The value of the Capsule Type field (see capsule-protocol) is a
62-bit integer.
An optional reference to a specification for the type.  This field
MAY be empty.