Protocol buffers use code generation, but the format is not human readable. Also, the format is less expressive than a full grammar, and, in many cases completely unchecked. (It will often "successfully" deserialize data written for the wrong protobuf struct type, which produces random hex gibberish.)
Something like ~/.ssh/config is closer to what I am talking about.
~/.ssh/config has some some wildcard support, but I've been in situations where that wasn't enough, and I had to generate them using python with templates and variables. It got ugly pretty fast.
Something like ~/.ssh/config is closer to what I am talking about.