Move to JSON as the metadata format for DiffX.

Review Request #11702 — Created July 5, 2021 and submitted — Latest diff uploaded




Initially, DiffX was envisioned as having a YAML-style metadata format.
This was an attempt to keep the appearance of metadata similar to that
of several diff variants, such as Git-style diffs. However, none of
these variants had any sort of grammar defined for their format. They
were just entirely ad-hoc.

We couldn't depend on YAML itself, due to numerous parser
inconsistencies. A home-grown grammar was defined, but this would be yet
another custom structured data format, and this seemed to be the wrong
place to introduce this.

Instead, we're now using JSON as the metadata format. This has a couple
significant advantages:

  1. JSON is widely available in nearly any language, and through command
    line tools, making it very easy to support.

  2. No part of JSON output should conflict with the syntax of DiffX,
    unified diffs, or any known custom diff format.

This change updates the spec to make it clear that JSON is the official
format used for DiffX, and to update all the example diffs and metadata
to use it.

Built the docs. Checked all the example diffs and metadata examples to
ensure they had correct syntax and was rendering correctly.