(Sorry; I forgot to include a cover letter.) This series is intended to help with our long-standing output format versioning issue. While the JSON format is amenable to extension, there's still a high barrier to extensions because of the need to support them going forward, and an even higher barrier to modifications that break backwards compatibility. Versioning will make the format more dynamic, enabling us to easily improve and iterate on it. It will also address the slew of confusing bugs that people encounter when they use a mismatched CLI and front-end. On IRC we've talking about adding version information to the output format itself. This series takes a different and, I think, better approach: callers request a specific output format version on the command line. This allows notmuch to remain backwards compatible with older format versions when it's easy or necessary. This also doesn't require shoehorning a version number into the output, which would be awkward for both the CLI and the consumer. I called the argument --use-schema, but I'm open to other suggestions. --use-schema is technically accurate, but perhaps not as self-describing as something like --schema-version or --format-version (to parallel --format).