{
  "$defs": {
    "Author": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "person",
            "assistant",
            "tool"
          ],
          "title": "Kind",
          "type": "string"
        },
        "name": {
          "minLength": 1,
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name",
        "kind"
      ],
      "title": "Author",
      "type": "object"
    }
  },
  "$id": "mokili.proposal/1",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "A change someone suggests to a model, a scenario or a sweep. It changes\nnothing until a person accepts it.",
  "properties": {
    "author": {
      "$ref": "#/$defs/Author"
    },
    "base": {
      "anyOf": [
        {
          "pattern": "^sha256:[0-9a-f]{64}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The record this one would replace; none for a new one",
      "title": "Base"
    },
    "created_at": {
      "title": "Created At",
      "type": "string"
    },
    "kind": {
      "enum": [
        "model",
        "scenario",
        "sweep"
      ],
      "title": "Kind",
      "type": "string"
    },
    "proposed": {
      "additionalProperties": true,
      "description": "The proposed record, in full",
      "title": "Proposed",
      "type": "object"
    },
    "proposed_digest": {
      "pattern": "^sha256:[0-9a-f]{64}$",
      "title": "Proposed Digest",
      "type": "string"
    },
    "rationale": {
      "description": "Why the change is proposed, for the reviewer",
      "minLength": 1,
      "title": "Rationale",
      "type": "string"
    },
    "schema": {
      "const": "mokili.proposal/1",
      "title": "Schema",
      "type": "string"
    }
  },
  "required": [
    "schema",
    "created_at",
    "author",
    "rationale",
    "kind",
    "proposed",
    "proposed_digest"
  ],
  "title": "Proposal",
  "type": "object"
}
