The OpenAI API and a lot of the free tools that implement it support a thing called "structured output". See Structured Outputs - OpenAI API. If you use this to define what the response JSON should look like, you should be able to focus your prompts on other things rather than just on the data structure and you can also guarantee that the model returns valid JSON, which would fix a lot of the connection issues and let people use smaller models.
Just something to consider if you haven't already poked at it.