jsonify schema and taste files, and add docs.

It's not immediately obvious that `names` and `formats` have the same length, but the code relies on that to be correct. It requires going over a fair bit of the above code and seeing that both vals come from essentially identical pieces of code. Could we restructure this slightly to make it more obvious?