message

Where a whole message is checked from.

Each document's root is a oneOf over the message types that travel in that direction, so validating against the root is what tells a createSurface from an updateComponents without the caller having to. It also reaches constraints no single component or call carries -- that a createSurface may not send an empty components array, say, which is minItems on the list rather than anything about the components in it.