The reason json is a good format for ACME isn't that it is easy to read and write by hand[1], but that most languages have at least one decent json implementation available, so it is easier to implement clients in many different languages.
[1]: although being easy to read by humans is an advantage when debugging why something isn't working.
So of course, ACME is based around a format whose entire reason d'etre is being written and read by hand.
It's weird.