Structured output from LLMs is in the Adopt ring of the Thoughtworks Technology Radar Vol 34. The pattern: give the model a JSON Schema, get back JSON that conforms. This tool generates the prompt fragment your model needs, plus a validator for what comes back.
JSON Schema input
LLM prompt fragment
Example output (synthesised from schema)
Paste LLM response
Validation
Try a real-world schema
Why this pattern
Schema → prompt: the field descriptions, types, and constraints become the natural-language instructions the LLM consumes. Libraries like Instructor / Pydantic AI / Outlines do this internally; here it's visible so you can paste it into raw response_format: json_object calls.
Output → validation: even with structured output, an LLM can hallucinate fields, mis-type values, or break enum constraints. A schema validator at the boundary turns that into a typed error you can handle.
The validator implements a subset: type, properties, required, items, enum, const, minimum/maximum, minLength/maxLength, pattern, minItems/maxItems. Covers the constructs LLM workflows actually use.