@dgl I've been doing a bunch of thinking on your "shells should have json as a first class citizen" thing.
I want to follow the "shape" of rc(1) which had lists as a first class type. So extending that to objects can't be that hard, right?
@dgl Some decisions:
* () Is used for grouping commands (instead of {} in rc) this leaving {} free for objects. Use [] for lists (instead of () for rc).
* Use $foo[name] to make it possible to use $foo[$bar[baz]] and $foo[$bar][baz] (instead of $foo.$bar.baz which is ambiguous).
* (Optionally) require , between items in [] lists.
* Support multidimensional ifs splitting.
* Extend rc ^ to support mapping a function (to allow mapping over an object's key/vales)
@robryk @dgl `[$nul](find . -print0) should dtrt as I'm not using nul terminated strings.
(A list between ` and () is the ifs override for this parse).
But yes, this is a very good point. I should have a test that this works.