{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://sneakoscope.local/schemas/architecture-map-manifest.v1.schema.json",
  "title": "SKS Architecture Map Manifest V1",
  "type": "object",
  "additionalProperties": true,
  "required": [
    "schema",
    "graphHash",
    "policyHash",
    "serializerVersion",
    "views",
    "projectionAccounting"
  ],
  "properties": {
    "schema": { "const": "sks.architecture-map-manifest.v1" },
    "missionId": { "type": ["string", "null"] },
    "graphHash": { "type": "string", "minLength": 1 },
    "topologyHash": { "type": "string" },
    "policyHash": { "type": "string", "minLength": 1 },
    "inputBundleHash": { "type": "string" },
    "analyzerVersion": { "type": "string", "minLength": 1 },
    "serializerVersion": { "type": "string", "minLength": 1 },
    "views": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["viewId", "contentHash", "byteLength"],
        "properties": {
          "viewId": { "type": "string", "minLength": 1 },
          "contentHash": { "type": "string", "minLength": 1 },
          "byteLength": { "type": "integer", "minimum": 0 }
        }
      }
    },
    "projectionAccounting": { "type": "object" },
    "sourceBinding": { "type": "object" }
  }
}
