Starts with all of JSON, so needs ", {, [, number literals, true, false, null (and :, , in context).
Metadata looks like data @ metadata, and the "extended" types are all encoded with it. E.g. "<z85-encoded string>" @ { "ejson.type": "ejson.binary" }.
MapFunc is all functions of zero, one, two, or three arguments. So probably you can write it with parens as in: