The schema’s ProxySuccessorRequest
and ProxySuccessorNotification
carry the wrapped message as a raw method name and raw params, with one
copy of each type per protocol version. SuccessorMessage<M> holds the
wrapped message as an SDK message type M instead and works for every
protocol version. For a wrapped request its response type is the wrapped
request’s response type, because the result of a wrapped request is
returned unchanged as the result of proxy/successor.
Its JSON-RPC form is the schema envelope: the wrapped message’s method
and params, next to the envelope’s optional _meta. The SDK’s proxy
routing uses it to wrap and unwrap messages for a proxy’s successor.
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
Metadata for the envelope itself, sent as _meta. The wrapped message
keeps its own _meta in its params. A received _meta that is not an
object is ignored, as the schema envelope specifies.