"Extract a name and email from this sentence" is the easy 10% of structured output. The other 90% is everything that doesn't fit in one prompt, one turn, or one model call. Here are five things shapecraft handles once you're past the basics.
1. Collecting data across a whole conversation
A single message rarely has everything you need. Someone books an appointment over three or four back-and-forth messages, not one. turnaround mode lets the conversation run naturally and validates the whole transcript once, at the end, against one schema:
import { generate, openai } from "@aviasole/shapecraft";
const result = await generate(model, BookingSchema, conversationHistory, {






