{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "required": ["id","name","acronym","aliases","collisions","step","parties","form","track","scope","question","analog",
                 "origin","governance","native_status","phase","implementation","adoption","version","spec_url",
                 "discovery","probe","evidence","last_verified","dispute","summary_md","history","part_of","group"],
    "properties": {
      "id": {"type":"string","pattern":"^[a-z0-9-]+$"},
      "name": {"type":"string","minLength":2},
      "acronym": {"type":"string"},
      "aliases": {"type":"array","items":{"type":"string"}},
      "collisions": {"type":"array","items":{"type":"string"}},
      "step": {"type":"string"},
      "parties": {"type":"array","minItems":1,"items":{"type":"string"}},
      "form": {"type":"string"}, "track": {"type":"string"}, "scope": {"type":"string"},
      "question": {"type":"string","minLength":5}, "analog": {"type":"string"},
      "origin": {"type":"object","required":["org","date"],"properties":{"org":{"type":"string"},"date":{"type":["string","null"]}}},
      "governance": {"type":"string"},
      "native_status": {"type":"string"}, "phase": {"type":"string"}, "implementation": {"type":"string"},
      "adoption": {"type":"object","required":["level","by","probe_run"],
        "properties":{"level":{"type":"string"},"by":{"type":["string","null"]},
          "probe_run": {"type": ["object", "null"], "required": ["origins_probed", "origins_found", "last"], "additionalProperties": false,
            "properties": {"origins_probed": {"type": "integer", "minimum": 0}, "origins_found": {"type": "integer", "minimum": 0}, "last": {"type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$"}}}}},
      "version": {"type":"object","required":["label","date"],"properties":{"label":{"type":"string"},"date":{"type":["string","null"]}}},
      "spec_url": {"type":"string","pattern":"^https?://"},
      "discovery": {"type":"object","required":["mechanism","path"],"properties":{"mechanism":{"type":"string"},"path":{"type":["string","null"]}}},
      "probe": {"type":"object","required":["method","path","parse","on_absent"],
        "properties":{"method":{"type":"string"},"path":{"type":"string"},"parse":{"type":"string"},"on_absent":{"type":"string"}}},
      "evidence": {"type":"array","minItems":1,"items":{"type":"object","required":["claim","label","url","date"],
        "properties":{"claim":{"type":"string"},"label":{"type":"string"},"url":{"type":"string","pattern":"^https?://"},"date":{"type":["string","null"]}}}},
      "last_verified": {"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$"},
      "dispute": {"type":["object","null"],"properties":{"summary":{"type":"string"},"claims":{"type":"array","items":{"type":"string"}}}},
      "summary_md": {"type":"string"},
      "history": {"type":"array","items":{"type":"object","required":["date","note"],"properties":{"date":{"type":"string"},"note":{"type":"string"}}}},
      "part_of": {"type":["string","null"]},
      "group": {"type":["string","null"]}
    },
    "additionalProperties": false
  }
}
