I've had to change the output of `git annex metadata --json`. The old output looked like this: {"command":"metadata","file":"foo","key":"...","author":["bar"],...,"note":"...","success":true} That was not good, because it didn't separate the metadata fields from the rest of the JSON object. What if a metadata field is named "note" or "success"? It would collide with the other "note" and "success" in the JSON. So, changed this to a new format, which moves the metadata fields into a "fields" object: {"command":"metadata","file":"foo","key":"...","fields":{"author":["bar"],...},"note":"...","success":true} I don't like breaking backwards compatability of JSON output, but in this case I could see no real alternative. I don't know if anyone is using `metadata --batch` anyway. If you are and this will cause a problem, get in touch. ---- While making that change, I also improved the JSON output layer, so it can use Aeson. Update: And switched everything over to using Aeson, so git-annex no longer depends on two different JSON libraries. This let me use Aeson to generate the "fields" object for `metadata --json`. And it was also easy enough to use Aeson to parse the output of that command (and some simplified forms of it). So, I've laid the groundwork for `git annex metadata --batch` today.