Giving up text generation is a worthwhile trade for guaranteed structured output