Zod 4 answers yes, and so does anything else that grew the same method. Asking the schema is
better than knowing its internals: the external converter reads Zod 3's _def, and a Zod 4 schema
still has a _def while holding something else inside it, so the conversion returned {}. An
empty object is a valid JSON Schema meaning "anything", which is why nothing failed: every
documented body and response silently became unconstrained.
Whether a schema knows how to describe itself.
Zod 4 answers yes, and so does anything else that grew the same method. Asking the schema is better than knowing its internals: the external converter reads Zod 3's
_def, and a Zod 4 schema still has a_defwhile holding something else inside it, so the conversion returned{}. An empty object is a valid JSON Schema meaning "anything", which is why nothing failed: every documented body and response silently became unconstrained.