How to Get Reliable Structured Data Out of an LLM