The reason why commit messages are free form is so they can remain free form.
It’s hard enough to make a model of the world in code. Why in hell would you want to impose this on commit messages?