It's a good trick. In the long run, I would like to handle data structures that have varying shapes by building off of things like generic.Map, and creating more human readable interfaces for these situations.  It's been working well for us in the push command, dealing with things like manifest files where we don't really know what we're going to get until runtime.  We'll be revisiting the JSON layer at some point to see if this approach will help us with code de-duplication.