If you're working programatically with output from LLMs, BAML changes the game. It really is the best way to robustly integrate LLM text with your codebase.
We've used BAML to generate and iterate on structured outputs for a variety of LLM-based features - including several still under development. "We love BAML" has been overheard in our watercooler chats many a time.