If you enforce syntax instead of using natural language, then what you’re making is a programming language.
There are strategies to reducing hallucinations but you’re just kicking the can down the road. They will still happen.
The only true fix is human confirmation of output. This will always be the limit of LLMs