I felt conflicted as well, json is portable and easy to parse / validate and edit. But many models do still struggle. There are some stuff from functional programming might be worth bringing back here.
By this I mean that you can basically tab-complete your way into a valid JSON document matching a particular schema.
Maybe there is a way to restrict the set of output tokens based on the current position in a JSON schema of a JSON document the model is predicting?