{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rage.fail/schemas/0.1/manifest.schema.json",
  "title": "RAGE Manifest",
  "type": "object",
  "required": [
    "kind",
    "spec_version"
  ],
  "additionalProperties": true,
  "properties": {
    "kind": {
      "const": "manifest"
    },
    "spec_version": {
      "type": "string"
    },
    "taxonomy_version": {
      "type": "string",
      "description": "version of the RAGE vocab/rules registries this graph was built against"
    },
    "media_type": {
      "const": "application/vnd.rage.graph+ndjson",
      "description": "the RAGE media type; present so the format is self-declaring"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "snapshot_at": {
      "type": "string",
      "format": "date-time",
      "description": "the collection snapshot time this whole graph represents"
    },
    "scope": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "foothold": {
          "type": "string"
        }
      }
    },
    "producer": {
      "type": "object"
    },
    "counts": {
      "type": "object"
    }
  }
}