{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.1/commands/project.information.schema.json",
  "$comment": "Written by hand from Part V and the member names of the reference vocabulary; tools/generate-schemas.mjs does not make it yet (schemas/commands/README.md).",
  "title": "project.information",
  "description": "Sets the project information: information replaces it whole; patch changes the fields it names, null taking one away and custom merged name by name. One of the two. A member the kind does not define is refused, not dropped (Part V, 1.4).",
  "type": "object",
  "properties": {
    "kind": {
      "const": "project.information"
    },
    "information": {
      "$ref": "../project/project.schema.json#/properties/projectInformation"
    },
    "patch": {
      "type": "object",
      "properties": {
        "custom": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 400
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "expectedInformation": {
      "$ref": "../project/project.schema.json#/properties/projectInformation"
    }
  },
  "required": [
    "kind"
  ],
  "additionalProperties": false,
  "oneOf": [
    {
      "required": [
        "information"
      ]
    },
    {
      "required": [
        "patch"
      ]
    }
  ]
}
