{
  "$defs": {
    "CredibilityEvidence": {
      "additionalProperties": false,
      "properties": {
        "campaigns": {
          "default": [],
          "description": "Campaign runs",
          "items": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          },
          "title": "Campaigns",
          "type": "array"
        },
        "studies": {
          "default": [],
          "description": "Study runs: uncertainty, sensitivity",
          "items": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          },
          "title": "Studies",
          "type": "array"
        },
        "validations": {
          "default": [],
          "description": "Calibrations, and runs whose conformance was checked",
          "items": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          },
          "title": "Validations",
          "type": "array"
        },
        "verifications": {
          "default": [],
          "description": "Study runs of kind convergence",
          "items": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          },
          "title": "Verifications",
          "type": "array"
        }
      },
      "title": "CredibilityEvidence",
      "type": "object"
    }
  },
  "$id": "mokili.credibility/1",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "The case that a model can be trusted for one use: the question, how the\nmodel answers it, what is at stake, and the evidence gathered. The report\norganises it following ASME V&V 40 and NASA-STD-7009B; it does not certify.",
  "properties": {
    "context_of_use": {
      "description": "What the model is used for in answering it, and what else informs the decision",
      "minLength": 1,
      "title": "Context Of Use",
      "type": "string"
    },
    "decision_consequence": {
      "description": "What a wrong decision costs",
      "enum": [
        "low",
        "medium",
        "high"
      ],
      "title": "Decision Consequence",
      "type": "string"
    },
    "evidence": {
      "$ref": "#/$defs/CredibilityEvidence",
      "default": {
        "campaigns": [],
        "studies": [],
        "validations": [],
        "verifications": []
      }
    },
    "model": {
      "pattern": "^sha256:[0-9a-f]{64}$",
      "title": "Model",
      "type": "string"
    },
    "model_influence": {
      "description": "How much the decision rests on the model",
      "enum": [
        "low",
        "medium",
        "high"
      ],
      "title": "Model Influence",
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "question": {
      "description": "The question of interest",
      "minLength": 1,
      "title": "Question",
      "type": "string"
    },
    "requirements": {
      "default": [],
      "items": {
        "pattern": "^sha256:[0-9a-f]{64}$",
        "type": "string"
      },
      "title": "Requirements",
      "type": "array"
    },
    "schema": {
      "const": "mokili.credibility/1",
      "title": "Schema",
      "type": "string"
    },
    "statements": {
      "additionalProperties": {
        "type": "string"
      },
      "default": {},
      "description": "What the evidence records cannot say, by factor: e.g. use_history, people, code_verification",
      "title": "Statements",
      "type": "object"
    }
  },
  "required": [
    "schema",
    "name",
    "question",
    "context_of_use",
    "model",
    "model_influence",
    "decision_consequence"
  ],
  "title": "Credibility",
  "type": "object"
}
