I run a project called goreleaser, which is configurable via YAML.
Since it has a lot of options, it can get confusing. I do provide a JSONSchema and a documentation page, with all available options and some commented examples.
Still, I feel like it could be better - especially regarding informing in which version a given option was added, discoverability, etc.. I'm just not sure how to make it so.
That said, I wonder: what is the best software configuration documentation you have ever seen?
This was quite a feat, considering most people only ever saw m4 language in sendmail configs. It's not very easy to read.