The main reason we didn’t allow that upfront is to buy us time to get things right. The gut feeling at the time was that dumping a potentially large document on someone’s screen when the user doesn’t know what to ask for wasn’t very friendly. Now that we’ve experimented with it for some time, though, I would actually like to suggest a different behavior, which is much more friendly and also more consistent:
When asking for the root or any configuration options which are themselves set to a subdocument, we print nothing to standard output, and print a table with a “Key” header and a list of keys under it to stderr, with zero exit code. When listing subdocuments, the keys themselves should be a dotted path to the specific value, so that using any of them with the get command works.
To return a document or subdocument (root or otherwise), the -d needs to be passed explicitly, or multiple keys must be explicitly requested in the command line.
What do you think?