{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://mnstry.org/contracts/org/org-publication-index.v1.schema.json",
  "title": "MNSTRY.org publication index v1",
  "description": "A stable discovery document that separates human routes from agent resources and enumerates the reviewed public corpus.",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "contract", "publisher", "human", "agent", "resources", "topics"],
  "properties": {
    "schema": { "const": "org-publication-index@v1" },
    "contract": { "const": "https://mnstry.org/contracts/org/org-publication-index.v1.schema.json" },
    "publisher": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "name", "canonical"],
      "properties": {
        "id": { "const": "org:site:mnstry" },
        "name": { "type": "string", "minLength": 1 },
        "canonical": { "$ref": "#/$defs/absoluteUrl" }
      }
    },
    "human": { "$ref": "#/$defs/humanRoutes" },
    "agent": { "$ref": "#/$defs/agentRoutes" },
    "resources": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/resource" }
    },
    "topics": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/topic" }
    }
  },
  "$defs": {
    "absoluteUrl": { "type": "string", "format": "uri", "pattern": "^https://" },
    "kgId": { "type": "string", "pattern": "^org:[a-z0-9][a-z0-9:.-]*$" },
    "humanRoutes": {
      "type": "object",
      "additionalProperties": false,
      "required": ["home", "writing", "topics"],
      "properties": {
        "home": { "$ref": "#/$defs/absoluteUrl" },
        "writing": { "$ref": "#/$defs/absoluteUrl" },
        "topics": { "$ref": "#/$defs/absoluteUrl" },
        "contribute": { "$ref": "#/$defs/absoluteUrl" }
      }
    },
    "agentRoutes": {
      "type": "object",
      "additionalProperties": false,
      "required": ["graph", "search", "llms"],
      "properties": {
        "graph": { "$ref": "#/$defs/absoluteUrl" },
        "search": { "$ref": "#/$defs/absoluteUrl" },
        "llms": { "$ref": "#/$defs/absoluteUrl" },
        "manifest": { "$ref": "#/$defs/absoluteUrl" },
        "resources": { "$ref": "#/$defs/absoluteUrl" },
        "contributionPort": { "$ref": "#/$defs/absoluteUrl" }
      }
    },
    "resource": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "type", "title", "reviewState", "prominence", "human", "json"],
      "properties": {
        "id": { "$ref": "#/$defs/kgId" },
        "type": { "enum": ["essay", "note", "research", "brick"] },
        "title": { "type": "string", "minLength": 1 },
        "reviewState": { "const": "reviewed" },
        "reviewMaintenance": { "enum": ["current", "due"] },
        "reviewedUnder": { "type": "integer", "minimum": 1 },
        "currentGuidelinesVersion": { "type": "integer", "minimum": 1 },
        "prominence": { "enum": ["featured", "latest", "library"] },
        "human": { "$ref": "#/$defs/absoluteUrl" },
        "json": { "$ref": "#/$defs/absoluteUrl" }
      }
    },
    "topic": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "title", "reviewState", "human", "json"],
      "properties": {
        "id": { "$ref": "#/$defs/kgId" },
        "title": { "type": "string", "minLength": 1 },
        "reviewState": { "const": "reviewed" },
        "human": { "$ref": "#/$defs/absoluteUrl" },
        "json": { "$ref": "#/$defs/absoluteUrl" }
      }
    }
  }
}
