{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://iarpg.com/scenario-modeling-methods.schema.json",
  "title": "IARPG Scenario Modeling Methods",
  "type": "object",
  "required": [
    "$schema",
    "id",
    "release",
    "version",
    "status",
    "title",
    "truth_boundary",
    "model_families",
    "required_model_card_fields",
    "content_applications",
    "publication_rules"
  ],
  "properties": {
    "$schema": {
      "const": "https://iarpg.com/scenario-modeling-methods.schema.json"
    },
    "id": {
      "const": "https://iarpg.com/scenario-modeling-methods.json"
    },
    "release": {
      "const": "IARPG-OPS-2"
    },
    "version": {
      "const": "2.0.32-wip"
    },
    "status": {
      "const": "work-in-progress"
    },
    "title": {
      "type": "string"
    },
    "truth_boundary": {
      "type": "string",
      "minLength": 80
    },
    "model_families": {
      "type": "array",
      "minItems": 5,
      "items": {
        "type": "object",
        "required": [
          "id",
          "label",
          "question",
          "state",
          "best_for",
          "must_show",
          "not_for"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "best_for": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "must_show": {
            "type": "array",
            "minItems": 4,
            "items": {
              "type": "string"
            }
          },
          "not_for": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "required_model_card_fields": {
      "type": "array",
      "minItems": 12,
      "items": {
        "type": "string"
      }
    },
    "content_applications": {
      "type": "array",
      "minItems": 5,
      "items": {
        "type": "object",
        "required": [
          "id",
          "label",
          "description"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "publication_rules": {
      "type": "array",
      "minItems": 7,
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
