{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "edges": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "carriesDecisionInfluence": {
            "type": "boolean"
          },
          "from": {
            "type": "string"
          },
          "rationale": {
            "minLength": 10,
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        },
        "required": [
          "from",
          "to",
          "carriesDecisionInfluence",
          "rationale"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "nodes": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "unsafe": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "kind",
          "unsafe"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "protectedDecisions": {
      "type": "array",
      "uniqueItems": true
    },
    "requiredSurfaceKinds": {
      "type": "array",
      "uniqueItems": true
    },
    "schemaVersion": {
      "const": "1.0.0"
    },
    "unsafeCapabilityClasses": {
      "type": "array",
      "uniqueItems": true
    }
  },
  "required": [
    "schemaVersion",
    "unsafeCapabilityClasses",
    "protectedDecisions",
    "requiredSurfaceKinds",
    "nodes",
    "edges"
  ],
  "title": "Transitive mission-boundary influence graph",
  "type": "object"
}
