How does it work?
You supply a schema describing the fields you want and their types. Rather than asking politely in the prompt and validating afterwards, the decoder is restricted at each step to tokens that can still lead to a valid document — so a response that violates the schema is not merely discouraged, it is unreachable.
That is a meaningful difference from prompting for JSON. Asking produces valid JSON most of the time and fails unpredictably; constraining produces it every time, because the invalid paths were never available.
