The validated typed-body extractor — the faithful equivalent of FastAPI
declaring a pydantic model parameter: the body is checked against the
endpoint's descriptor schema (the same tree that emits the OpenAPI body
schema), and only if it conforms is it deserialised into T. On failure it
yields the FastAPI-shaped ValidationError list (located under ["body",...]), ready for unprocessable; on success it yields the built T.
Reusing validate_schema here is the point of the descriptor tree: schema
emission, request validation, and typed deserialisation are all driven off
one source of truth, exactly as pydantic derives all three from one model.
Because validation runs first, @json.from_json is reached only for a
shape-conforming value; the final catch keeps the extractor total for the
residual cases a scalar schema cannot express (e.g. an out-of-range integer).