{
  "$defs": {
    "AgreementItemTag": {
      "additionalProperties": false,
      "description": "Subject and concept tags assigned to a single sample item by one tagger.",
      "properties": {
        "concepts": {
          "description": "Field concept identifiers assigned by the tagger.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "n": {
          "description": "1-based sample index matching AgreementSampleItem.n.",
          "minimum": 1,
          "type": "integer"
        },
        "proposed": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Candidate concept proposed by the tagger when existing concepts were insufficient."
        },
        "reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Reason recorded when no existing concept was assigned."
        },
        "subject": {
          "description": "Subject row identifier assigned by the tagger.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        }
      },
      "required": [
        "n",
        "subject"
      ],
      "type": "object"
    },
    "AgreementRecordModel": {
      "additionalProperties": false,
      "description": "Root document for inter-tagger agreement benchmark records (taxonomy/agreement/*.yml).",
      "properties": {
        "basis": {
          "description": "Sampling methodology and experimental protocol for the agreement runs.",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this agreement sample.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "items": {
          "description": "Fixed sample of items tagged across all runs in this record.",
          "items": {
            "$ref": "#/$defs/AgreementSampleItem"
          },
          "type": "array"
        },
        "runs": {
          "description": "Recorded independent tagging runs over the fixed item sample.",
          "items": {
            "$ref": "#/$defs/AgreementRun"
          },
          "type": "array"
        },
        "schema_version": {
          "anyOf": [
            {
              "const": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Integer schema version of the document (must equal 1)."
        },
        "title": {
          "description": "Human-readable title of the agreement benchmark sample.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "basis",
        "items",
        "runs"
      ],
      "type": "object"
    },
    "AgreementRun": {
      "additionalProperties": false,
      "description": "Single multi-tagger evaluation run over the fixed agreement sample.",
      "properties": {
        "held_out": {
          "description": "Whether this run evaluated a fresh sample that did not shape the tagging rules.",
          "type": "boolean"
        },
        "id": {
          "description": "Identifier of the agreement run within the record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Context note describing the taxonomy version and rule set tested in this run."
        },
        "taggers": {
          "additionalProperties": {
            "items": {
              "$ref": "#/$defs/AgreementItemTag"
            },
            "type": "array"
          },
          "description": "Mapping from independent tagger identifier to its list of AgreementItemTag records.",
          "propertyNames": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._-]*$"
          },
          "type": "object"
        }
      },
      "required": [
        "id",
        "held_out",
        "taggers"
      ],
      "type": "object"
    },
    "AgreementSampleItem": {
      "additionalProperties": false,
      "description": "Single sampled item in an inter-tagger agreement benchmark.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Stable identifier of the sampled question or artifact."
        },
        "level": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Depth or seniority level of the sampled item (e.g., L1 to L6+)."
        },
        "n": {
          "description": "1-based sample index within the agreement record.",
          "minimum": 1,
          "type": "integer"
        },
        "track": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Domain track of the sampled item (e.g., cloud, edge, mobile, global)."
        }
      },
      "required": [
        "n"
      ],
      "type": "object"
    },
    "AlignmentDepthEnum": {
      "description": "Teaching depth assessment status for a textbook passage link.",
      "enum": [
        "not-assessed"
      ],
      "type": "string"
    },
    "AlignmentRelationEnum": {
      "description": "Semantic relationship between a field concept and a textbook learner-graph node.",
      "enum": [
        "related-passage"
      ],
      "type": "string"
    },
    "AnyValue": {
      "description": "Dynamic mapping value used for arbitrary tagger-name keys in agreement records.",
      "type": "object"
    },
    "BookAlignmentLink": {
      "additionalProperties": false,
      "description": "Candidate passage link from a field concept to a section-backed book concept node.",
      "properties": {
        "book_concept": {
          "description": "Identifier of the section-backed concept node in the book learner graph.",
          "type": "string"
        },
        "concept": {
          "description": "Identifier of the field concept.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "depth": {
          "$ref": "#/$defs/AlignmentDepthEnum",
          "description": "Assessment status of teaching depth for the linked passage."
        },
        "relation": {
          "anyOf": [
            {
              "$ref": "#/$defs/AlignmentRelationEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Controlled relation identifier from the 17-verb vocabulary."
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "concept",
        "book_concept",
        "status",
        "depth"
      ],
      "type": "object"
    },
    "BookAlignmentModel": {
      "additionalProperties": false,
      "description": "Root document for taxonomy/mlsysbook-alignment.yml recording candidate section links between field concepts and MLSysBook chapters.",
      "properties": {
        "links": {
          "description": "Candidate passage links between field concepts and book sections.",
          "items": {
            "$ref": "#/$defs/BookAlignmentLink"
          },
          "type": "array"
        },
        "meaning": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Formal definition of what the controlled relationship verb asserts."
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        },
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/DraftStatusEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "schema_version",
        "links"
      ],
      "type": "object"
    },
    "ChecklistStatusEnum": {
      "description": "Coverage judgment for an external benchmark topic against the taxonomy.",
      "enum": [
        "covered",
        "partial",
        "missing",
        "out-of-scope"
      ],
      "type": "string"
    },
    "Concept": {
      "additionalProperties": false,
      "description": "A permanent, chapter-independent technical concept in machine learning systems.",
      "properties": {
        "added_in": {
          "anyOf": [
            {
              "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?(-(draft|rc[0-9]+))?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Release that first admitted this concept, the date-of-entry part of a Z39.19 history note (section 6.2.3)."
        },
        "aliases": {
          "description": "Search entry terms retained for retrieval; legacy entries may denote narrower mechanisms or implementations and do not assert synonymy.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "definition": {
          "description": "Single-sentence technical definition stating what the item is and what it changes.",
          "type": "string"
        },
        "family": {
          "description": "Identifier of the owning concept family.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "home": {
          "anyOf": [
            {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Identifier of the primary candidate home subject row (every concept in UnifiedTaxonomyModel names its home subject row; optional only in standalone FieldModel fixtures)."
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "references": {
          "description": "Identifiers of external reading sources warranting this record.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/ConceptScopeEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Declared scope boundary or scope note."
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "id",
        "label",
        "definition",
        "family",
        "status"
      ],
      "type": "object"
    },
    "ConceptFamily": {
      "additionalProperties": false,
      "description": "Coarse navigation grouping of field concepts sharing a core engineering question.",
      "properties": {
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this group, area, or family.",
          "type": "string"
        },
        "references": {
          "description": "Identifiers of external reading sources warranting this record.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": "array"
        },
        "scope": {
          "$ref": "#/$defs/ConceptScopeEnum",
          "description": "Declared scope boundary or scope note."
        }
      },
      "required": [
        "id",
        "label",
        "scope",
        "question",
        "references"
      ],
      "type": "object"
    },
    "ConceptRoleEnum": {
      "description": "Role of a chapter concept declaration in a chapter contract.",
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string"
    },
    "ConceptScopeEnum": {
      "description": "Scope boundary of a concept or concept family within ML systems engineering.",
      "enum": [
        "core",
        "background",
        "model-extension",
        "generative-extension",
        "agent-extension",
        "physical-extension",
        "specialist"
      ],
      "type": "string"
    },
    "ControlledRelation": {
      "additionalProperties": false,
      "description": "Controlled verb in the relationship vocabulary with explicit forward and inverse readings.",
      "properties": {
        "forward": {
          "description": "Active verb phrase read from source concept to target concept.",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "inverse": {
          "description": "Passive verb phrase read from target concept back to source concept.",
          "type": "string"
        },
        "kind": {
          "$ref": "#/$defs/RelationKindEnum",
          "description": "Category of source or semantic category of relationship."
        },
        "meaning": {
          "description": "Formal definition of what the controlled relationship verb asserts.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "forward",
        "inverse",
        "kind",
        "meaning"
      ],
      "type": "object"
    },
    "CoverageChecklistModel": {
      "additionalProperties": false,
      "description": "Root document for external coverage benchmark checklists (taxonomy/coverage/*.yml).",
      "properties": {
        "basis": {
          "description": "Epistemic basis of the relationship assertion.",
          "type": "string"
        },
        "held_out": {
          "description": "Whether this benchmark or agreement run was held out from design.",
          "type": "boolean"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "type": "string"
        },
        "schema_version": {
          "anyOf": [
            {
              "const": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Integer schema version of the document (must equal 1)."
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "topics": {
          "description": "Topics in the SKOS hierarchy pilot or external coverage checklist.",
          "items": {
            "$ref": "#/$defs/CoverageChecklistTopic"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "title",
        "basis",
        "held_out",
        "topics"
      ],
      "type": "object"
    },
    "CoverageChecklistTopic": {
      "additionalProperties": false,
      "description": "Single benchmark topic evaluated against the taxonomy.",
      "properties": {
        "concepts": {
          "description": "Technical concepts belonging to this model, subject, or view.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial justification naming which definition clause covers the topic."
        },
        "sources": {
          "description": "External curricula, standards, documentation, or research sources.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "status": {
          "$ref": "#/$defs/ChecklistStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "subject": {
          "anyOf": [
            {
              "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Permanent identifier of the target subject row."
        },
        "topic": {
          "description": "Name of the external benchmark topic or candidate gap topic.",
          "type": "string"
        }
      },
      "required": [
        "topic",
        "status"
      ],
      "type": "object"
    },
    "CoverageLedgerDecision": {
      "additionalProperties": false,
      "description": "Audited reconciliation decision for a chapter primary concept declaration.",
      "properties": {
        "chapter": {
          "description": "Volume and chapter folder identifier (e.g., vol2/08_fleet_orchestration).",
          "type": "string"
        },
        "disposition": {
          "$ref": "#/$defs/LedgerDispositionEnum",
          "description": "Reconciliation disposition of the chapter concept against field concepts."
        },
        "evidence": {
          "description": "Verbatim manuscript section quotes supporting the reconciliation decision.",
          "items": {
            "$ref": "#/$defs/LedgerEvidenceQuote"
          },
          "type": "array"
        },
        "field_concepts": {
          "description": "Field concept identifiers mapped to this chapter concept declaration.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "field_hash": {
          "anyOf": [
            {
              "pattern": "^[0-9a-f]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "SHA-256 digest of the mapped field concept definitions."
        },
        "inventory_id": {
          "description": "Deterministic hash identifier of the chapter concept declaration.",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "rationale": {
          "description": "Editorial placement principles or justification for a hierarchy/ledger assertion.",
          "type": "string"
        },
        "reviewed_on": {
          "description": "ISO-8601 date on which the reconciliation decision was recorded.",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        "reviewer": {
          "description": "Human or model reviewer that audited the reconciliation decision.",
          "type": "string"
        },
        "reviewer_kind": {
          "$ref": "#/$defs/ReviewerKindEnum",
          "description": "Whether the reviewer was human or ai."
        },
        "role": {
          "$ref": "#/$defs/ConceptRoleEnum",
          "description": "Role played by an external source or a chapter concept declaration."
        },
        "source_hash": {
          "description": "SHA-256 digest of the manuscript section text.",
          "pattern": "^[0-9a-f]{64}$",
          "type": "string"
        }
      },
      "required": [
        "chapter",
        "label",
        "role",
        "disposition",
        "rationale",
        "evidence",
        "inventory_id",
        "reviewer",
        "reviewer_kind",
        "reviewed_on",
        "source_hash"
      ],
      "type": "object"
    },
    "CoverageLedgerModel": {
      "additionalProperties": false,
      "description": "Root document for taxonomy/coverage-ledger.yml reconciling chapter primary declarations against field concepts.",
      "properties": {
        "decisions": {
          "description": "Audited reconciliation decisions for chapter primary concept declarations.",
          "items": {
            "$ref": "#/$defs/CoverageLedgerDecision"
          },
          "type": "array"
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        }
      },
      "required": [
        "schema_version",
        "decisions"
      ],
      "type": "object"
    },
    "DimensionFacet": {
      "additionalProperties": false,
      "description": "A single facet term within an activity, layer, concern, or context dimension.",
      "properties": {
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "label"
      ],
      "type": "object"
    },
    "DimensionSet": {
      "additionalProperties": false,
      "description": "Cross-cutting facet vocabularies for classifying subject rows.",
      "properties": {
        "activities": {
          "description": "Engineering lifecycle activities involved in this subject.",
          "items": {
            "$ref": "#/$defs/DimensionFacet"
          },
          "type": "array"
        },
        "concerns": {
          "description": "Cross-cutting system qualities and concerns addressed by this subject.",
          "items": {
            "$ref": "#/$defs/DimensionFacet"
          },
          "type": "array"
        },
        "contexts": {
          "description": "Deployment or workload context lenses applicable to this subject.",
          "items": {
            "$ref": "#/$defs/DimensionFacet"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "layers": {
          "description": "System stack layers involved in this subject.",
          "items": {
            "$ref": "#/$defs/DimensionFacet"
          },
          "type": "array"
        }
      },
      "required": [
        "activities",
        "layers",
        "concerns"
      ],
      "type": "object"
    },
    "DraftStatusEnum": {
      "description": "Review status of individual concept, relationship, subject, or alignment assertions.",
      "enum": [
        "draft"
      ],
      "type": "string"
    },
    "FieldModel": {
      "additionalProperties": false,
      "description": "Aspect model projected from the single canonical taxonomy (taxonomy/taxonomy.yml) defining the field concept inventory, controlled relation vocabulary, propositional edges, and views.",
      "properties": {
        "background_boundary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Rule distinguishing core ML systems concepts from imported background concepts."
        },
        "concepts": {
          "description": "Technical concepts belonging to this model, subject, or view.",
          "items": {
            "$ref": "#/$defs/Concept"
          },
          "type": "array"
        },
        "families": {
          "description": "Coarse navigation groupings of field concepts.",
          "items": {
            "$ref": "#/$defs/ConceptFamily"
          },
          "type": "array"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "learning_paths": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy note or ordered list of guided learning paths."
        },
        "limitations": {
          "description": "Explicit caveats on what the model does and does not claim.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "relations": {
          "description": "Controlled relationship verbs with forward and inverse readings.",
          "items": {
            "$ref": "#/$defs/ControlledRelation"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "relationships": {
          "description": "Directed, condition-qualified technical propositions between concepts.",
          "items": {
            "$ref": "#/$defs/Relationship"
          },
          "type": "array"
        },
        "retired": {
          "description": "Permanent redirect records for withdrawn or merged concept identities.",
          "items": {
            "$ref": "#/$defs/RetiredConcept"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        },
        "scope": {
          "description": "Declared scope boundary or scope note.",
          "type": "string"
        },
        "sources": {
          "description": "External curricula, standards, documentation, or research sources.",
          "items": {
            "$ref": "#/$defs/FieldSource"
          },
          "type": "array"
        },
        "status": {
          "$ref": "#/$defs/ModelStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "views": {
          "description": "Named subsets of field concepts rendered as diagrams.",
          "items": {
            "$ref": "#/$defs/FieldView"
          },
          "type": "array"
        }
      },
      "required": [
        "schema_version",
        "id",
        "title",
        "scope",
        "status",
        "sources",
        "families",
        "concepts",
        "relationships",
        "views"
      ],
      "type": "object"
    },
    "FieldSource": {
      "additionalProperties": false,
      "description": "External curriculum, standard, documentation, or research source warranting field concepts.",
      "properties": {
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "kind": {
          "$ref": "#/$defs/SourceKindEnum",
          "description": "Category of source or semantic category of relationship."
        },
        "scope": {
          "description": "Declared scope boundary or scope note.",
          "type": "string"
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "url": {
          "description": "Canonical HTTPS URL for the external reference source.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "url",
        "kind",
        "scope"
      ],
      "type": "object"
    },
    "FieldView": {
      "additionalProperties": false,
      "description": "Named subset of field concepts for overview or thematic diagram generation.",
      "properties": {
        "concepts": {
          "description": "Technical concepts belonging to this model, subject, or view.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "type": "string"
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "concepts"
      ],
      "type": "object"
    },
    "FrameworkModel": {
      "additionalProperties": false,
      "description": "Aspect model projected from the single canonical taxonomy (taxonomy/taxonomy.yml) organizing field concepts into groups, areas, and subjects with multi-dimensional facets and scope notes.",
      "properties": {
        "areas": {
          "description": "Subject areas organized under the top-level groups.",
          "items": {
            "$ref": "#/$defs/SubjectArea"
          },
          "type": "array"
        },
        "book_mapping_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing chapter pointers and section-level passage links."
        },
        "competency_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy separating subject knowledge from observable task competency."
        },
        "context_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing context lenses vs dedicated system-type areas."
        },
        "dimensions": {
          "$ref": "#/$defs/DimensionSet",
          "description": "Cross-cutting facet vocabularies (activities, layers, concerns, contexts)."
        },
        "gaps": {
          "description": "Declared candidate scope gaps tracked for future taxonomy versions.",
          "items": {
            "$ref": "#/$defs/ScopeGap"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "groups": {
          "description": "Top-level structural bands of the taxonomy.",
          "items": {
            "$ref": "#/$defs/SubjectGroup"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "placement_examples": {
          "description": "Worked examples illustrating the home rule on boundary concepts.",
          "items": {
            "$ref": "#/$defs/PlacementExample"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "rationale": {
          "description": "Editorial placement principles or justification for a hierarchy/ledger assertion.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "relationship_semantics": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Explanation of how subject membership differs from SKOS broader/narrower."
        },
        "row_rule": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial rule defining what qualifies as a subject row."
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        },
        "scope": {
          "description": "Declared scope boundary or scope note.",
          "type": "string"
        },
        "secondary_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing secondary concept links across subject rows."
        },
        "sources": {
          "description": "External curricula, standards, documentation, or research sources.",
          "items": {
            "$ref": "#/$defs/FrameworkSource"
          },
          "type": "array"
        },
        "status": {
          "$ref": "#/$defs/ModelStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "tagging_rules": {
          "description": "Operational rules for tagging questions, chapters, slides, and labs.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "version": {
          "$ref": "#/$defs/FrameworkVersionEnum",
          "description": "Taxonomy version in which this record or retirement took effect."
        },
        "warrant_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing how external sources warrant subject boundaries."
        }
      },
      "required": [
        "schema_version",
        "id",
        "title",
        "version",
        "status",
        "scope",
        "sources",
        "dimensions",
        "areas"
      ],
      "type": "object"
    },
    "FrameworkSource": {
      "additionalProperties": false,
      "description": "External body of knowledge, curriculum, or benchmark warranting subject boundaries.",
      "properties": {
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "role": {
          "description": "Role played by an external source or a chapter concept declaration.",
          "type": "string"
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "url": {
          "description": "Canonical HTTPS URL for the external reference source.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "url",
        "role"
      ],
      "type": "object"
    },
    "FrameworkVersionEnum": {
      "description": "Supported versions of the ML Systems Taxonomy framework.",
      "enum": [
        "0.1-draft",
        "0.2-draft",
        "0.3-draft",
        "0.4-draft"
      ],
      "type": "string"
    },
    "GapStatusEnum": {
      "description": "Status of a declared candidate scope gap in the framework.",
      "enum": [
        "candidate"
      ],
      "type": "string"
    },
    "GuidesModel": {
      "additionalProperties": false,
      "description": "Aspect model projected from the single canonical taxonomy (taxonomy/taxonomy.yml) defining role profiles, production symptom triage guides, and sequential learning paths.",
      "properties": {
        "learning_paths": {
          "description": "Policy note or ordered list of guided learning paths.",
          "items": {
            "$ref": "#/$defs/LearningPath"
          },
          "type": "array"
        },
        "paths_note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Methodological note explaining how learning paths work."
        },
        "roles": {
          "description": "Practitioner role profiles mapping core and working subjects.",
          "items": {
            "$ref": "#/$defs/RoleProfile"
          },
          "type": "array"
        },
        "roles_note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Methodological note explaining how role profiles should be read."
        },
        "schema_version": {
          "anyOf": [
            {
              "const": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Integer schema version of the document (must equal 1)."
        },
        "symptoms": {
          "description": "Production failure symptoms mapped to causes, checks, and levers.",
          "items": {
            "$ref": "#/$defs/ProductionSymptom"
          },
          "type": "array"
        },
        "symptoms_note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Methodological note explaining how production symptom guides work."
        }
      },
      "required": [
        "roles",
        "symptoms",
        "learning_paths"
      ],
      "type": "object"
    },
    "HierarchyAssertion": {
      "additionalProperties": false,
      "description": "Asserted SKOS broader/narrower relationship with explicit editorial rationale.",
      "properties": {
        "broader": {
          "description": "More general umbrella topic in a SKOS hierarchy assertion.",
          "pattern": "^mlsys\\.topic\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "narrower": {
          "description": "More specific concept or topic in a SKOS hierarchy assertion.",
          "pattern": "^mlsys\\.([a-z0-9]+(-[a-z0-9]+)*|topic\\.[a-z0-9]+(-[a-z0-9]+)*)$",
          "type": "string"
        },
        "rationale": {
          "description": "Editorial placement principles or justification for a hierarchy/ledger assertion.",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "narrower",
        "broader",
        "rationale",
        "status"
      ],
      "type": "object"
    },
    "LearningPath": {
      "additionalProperties": false,
      "description": "Ordered sequence of subjects forming a study path for a target audience.",
      "properties": {
        "audience": {
          "description": "Target reader or engineering persona for a learning path.",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "steps": {
          "description": "Ordered sequence of subject steps forming the learning path.",
          "items": {
            "$ref": "#/$defs/LearningPathStep"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "label",
        "audience",
        "steps"
      ],
      "type": "object"
    },
    "LearningPathStep": {
      "additionalProperties": false,
      "description": "Single step in a learning path pointing to a subject row and explaining why it comes at this stage.",
      "properties": {
        "subject": {
          "description": "Identifier or code of the target subject row.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "why": {
          "description": "One-sentence explanation of why this placement or step order holds.",
          "type": "string"
        }
      },
      "required": [
        "subject",
        "why"
      ],
      "type": "object"
    },
    "LedgerDispositionEnum": {
      "description": "Reconciliation disposition of a chapter primary concept declaration against field concepts.",
      "enum": [
        "mapped-to",
        "broader-than",
        "narrower-than",
        "candidate-new",
        "out-of-scope"
      ],
      "type": "string"
    },
    "LedgerEvidenceQuote": {
      "additionalProperties": false,
      "description": "Verbatim section quote from a chapter supporting a coverage ledger decision.",
      "properties": {
        "quote": {
          "description": "Verbatim quote from the manuscript section.",
          "type": "string"
        },
        "section": {
          "description": "Quarto section anchor identifier (#sec-...) in the chapter manuscript.",
          "type": "string"
        }
      },
      "required": [
        "section",
        "quote"
      ],
      "type": "object"
    },
    "ModelStatusEnum": {
      "description": "Lifecycle status of a top-level taxonomy model document.",
      "enum": [
        "editorial-draft",
        "release-candidate",
        "normative-release"
      ],
      "type": "string"
    },
    "PlacementExample": {
      "additionalProperties": false,
      "description": "Worked example explaining why a concept lives in its primary subject home.",
      "properties": {
        "concept": {
          "description": "Identifier of the field concept.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "home": {
          "description": "Identifier of the primary home subject row.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "why": {
          "description": "One-sentence explanation of why this placement or step order holds.",
          "type": "string"
        }
      },
      "required": [
        "concept",
        "home",
        "why"
      ],
      "type": "object"
    },
    "ProductionSymptom": {
      "additionalProperties": false,
      "description": "Production failure symptom mapped to graph-connected root causes, diagnostic checks, and mitigation levers.",
      "properties": {
        "causes": {
          "description": "Field concepts representing likely root causes or bottlenecks.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "checks": {
          "description": "Field concepts representing diagnostic metrics, profilers, or tests.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "levers": {
          "description": "Field concepts representing architectural or operational mitigations.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "quantities": {
          "description": "Field concepts naming the measured quantity the symptom is observed through (the metric that moves), listed apart from causes so a check or lever may connect through it without the metric posing as a cause.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "signal": {
          "description": "Observable production telemetry or failure behavior triggering triage.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "label",
        "signal",
        "causes",
        "levers"
      ],
      "type": "object"
    },
    "RelationIdEnum": {
      "description": "Controlled 17-verb relationship vocabulary used across the ML Systems Taxonomy graph.",
      "enum": [
        "specializes",
        "part-of",
        "alternative-to",
        "requires",
        "uses",
        "implements",
        "enables",
        "produces",
        "reduces",
        "increases",
        "determines",
        "limits",
        "trades-off",
        "measures",
        "detects",
        "causes",
        "mitigates"
      ],
      "type": "string"
    },
    "RelationKindEnum": {
      "description": "High-level semantic category of a controlled relationship verb.",
      "enum": [
        "mechanism",
        "constraint",
        "tradeoff",
        "evaluation",
        "dependency",
        "failure",
        "composition"
      ],
      "type": "string"
    },
    "Relationship": {
      "additionalProperties": false,
      "description": "Directed, condition-qualified technical proposition linking two field concepts.",
      "properties": {
        "basis": {
          "$ref": "#/$defs/RelationshipBasisEnum",
          "description": "Epistemic basis of the relationship assertion."
        },
        "conditions": {
          "description": "Explicit regime, workload, or assumption under which the proposition holds.",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "kind": {
          "$ref": "#/$defs/RelationKindEnum",
          "description": "Category of source or semantic category of relationship."
        },
        "predicate": {
          "description": "Specific verb phrase refining the controlled relation for this edge.",
          "type": "string"
        },
        "reference_role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Role played by the cited reading sources for this relationship."
        },
        "references": {
          "description": "Identifiers of external reading sources warranting this record.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": "array"
        },
        "relation": {
          "anyOf": [
            {
              "$ref": "#/$defs/RelationIdEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Controlled relation identifier from the 17-verb vocabulary."
        },
        "source": {
          "description": "Subject concept identifier at the tail of the directed relationship.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "target": {
          "description": "Object concept identifier at the head of the directed relationship.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        }
      },
      "required": [
        "id",
        "source",
        "target",
        "kind",
        "predicate",
        "conditions",
        "references",
        "basis",
        "status"
      ],
      "type": "object"
    },
    "RelationshipBasisEnum": {
      "description": "Epistemic basis for a relationship assertion between two concepts.",
      "enum": [
        "editorial-synthesis"
      ],
      "type": "string"
    },
    "ReleaseArea": {
      "additionalProperties": false,
      "description": "Subject area entry in the compiled taxonomy JSON release outline.",
      "properties": {
        "code": {
          "description": "Hierarchical area code (e.g., P4).",
          "pattern": "^[A-Z]\\d+$",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable area identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Human-readable area title.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this area.",
          "type": "string"
        },
        "scope": {
          "description": "Scope boundary of this subject area.",
          "type": "string"
        },
        "subjects": {
          "description": "Citeable subjects belonging to this area.",
          "items": {
            "$ref": "#/$defs/ReleaseSubject"
          },
          "type": "array"
        }
      },
      "required": [
        "code",
        "id",
        "label",
        "question",
        "scope",
        "subjects"
      ],
      "type": "object"
    },
    "ReleaseChapterPointer": {
      "additionalProperties": false,
      "description": "Resolved chapter pointer in the compiled taxonomy JSON release.",
      "properties": {
        "chapter": {
          "description": "Human-readable chapter title.",
          "type": "string"
        },
        "url": {
          "description": "Canonical URL to the chapter or section on mlsysbook.ai.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        },
        "volume": {
          "description": "Book volume identifier (vol1 to vol4).",
          "pattern": "^vol[1-4]$",
          "type": "string"
        }
      },
      "required": [
        "volume",
        "chapter",
        "url"
      ],
      "type": "object"
    },
    "ReleaseConcept": {
      "additionalProperties": false,
      "description": "Concept record in the compiled taxonomy JSON release.",
      "properties": {
        "added_in": {
          "anyOf": [
            {
              "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?(-(draft|rc[0-9]+))?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Release that first admitted this concept, the date-of-entry part of a Z39.19 history note (section 6.2.3)."
        },
        "aliases": {
          "description": "Search entry terms retained for retrieval, without an assertion of lexical equivalence.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "background": {
          "description": "True when the concept originated outside ML systems (scope=background).",
          "type": "boolean"
        },
        "book_passages": {
          "description": "Candidate section-level book passages discussing this concept.",
          "items": {
            "$ref": "#/$defs/ReleaseChapterPointer"
          },
          "type": "array"
        },
        "definition": {
          "description": "Single-sentence technical definition.",
          "type": "string"
        },
        "home": {
          "description": "Readable code of the concept's home subject.",
          "pattern": "^[A-Z]\\d+\\.\\d+$",
          "type": "string"
        },
        "home_id": {
          "description": "Permanent identifier of the concept's home subject.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable concept identifier.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable concept term.",
          "type": "string"
        },
        "warrant": {
          "$ref": "#/$defs/ReleaseWarrant",
          "description": "Computed Z39.19 section 5.3.5 warrant counts for this concept."
        }
      },
      "required": [
        "id",
        "label",
        "aliases",
        "definition",
        "background",
        "home",
        "home_id",
        "warrant",
        "book_passages"
      ],
      "type": "object"
    },
    "ReleaseGap": {
      "additionalProperties": false,
      "description": "Declared scope gap entry in the compiled taxonomy JSON release.",
      "properties": {
        "id": {
          "description": "Permanent identifier of the declared gap.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "reason": {
          "description": "Reason the topic remains a declared gap in this version.",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/GapStatusEnum",
          "description": "Status of the declared gap (candidate)."
        },
        "subject": {
          "description": "Readable code of the subject row where the gap resides.",
          "pattern": "^[A-Z]\\d+\\.\\d+$",
          "type": "string"
        },
        "topic": {
          "description": "Name of the candidate topic left open.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "topic",
        "subject",
        "status",
        "reason"
      ],
      "type": "object"
    },
    "ReleaseGroup": {
      "additionalProperties": false,
      "description": "Top-level group entry in the compiled taxonomy JSON release outline.",
      "properties": {
        "areas": {
          "description": "Subject areas belonging to this group.",
          "items": {
            "$ref": "#/$defs/ReleaseArea"
          },
          "type": "array"
        },
        "code": {
          "description": "Single-letter group code (F, S, P, Q, T).",
          "pattern": "^[A-Z]$",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable group identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Human-readable group title.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this group.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "id",
        "label",
        "question",
        "areas"
      ],
      "type": "object"
    },
    "ReleaseLicense": {
      "additionalProperties": false,
      "description": "License metadata block in the compiled taxonomy JSON release.",
      "properties": {
        "name": {
          "description": "Short license identifier (e.g., CC BY 4.0).",
          "type": "string"
        },
        "url": {
          "description": "Canonical URL for the license deed.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        }
      },
      "required": [
        "name",
        "url"
      ],
      "type": "object"
    },
    "ReleaseRelationship": {
      "additionalProperties": false,
      "description": "Relationship entry in the compiled taxonomy JSON release.",
      "properties": {
        "conditions": {
          "description": "Explicit condition under which the relationship holds.",
          "type": "string"
        },
        "relation": {
          "$ref": "#/$defs/RelationIdEnum",
          "description": "Controlled relation verb from the 17-relation vocabulary."
        },
        "source": {
          "description": "Source concept identifier.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "statement": {
          "description": "Specific forward predicate phrase refining the relation.",
          "type": "string"
        },
        "target": {
          "description": "Target concept identifier.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        }
      },
      "required": [
        "source",
        "relation",
        "target",
        "statement",
        "conditions"
      ],
      "type": "object"
    },
    "ReleaseSubject": {
      "additionalProperties": false,
      "description": "Subject entry in the compiled taxonomy JSON release outline.",
      "properties": {
        "code": {
          "description": "Hierarchical subject code (e.g., P4.3).",
          "pattern": "^[A-Z]\\d+\\.\\d+$",
          "type": "string"
        },
        "concepts": {
          "description": "Primary concepts homed in this subject.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "contexts": {
          "description": "Applicable system context lenses for this subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "definition": {
          "description": "Single-sentence definition of the subject boundary.",
          "type": "string"
        },
        "excludes": {
          "description": "Neighboring topics excluded from this subject with [[row-id]] cross-references.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "Permanent machine-readable subject identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "includes": {
          "description": "Topics explicitly included in this subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "label": {
          "description": "Human-readable subject title.",
          "type": "string"
        },
        "related_concepts": {
          "description": "Secondary concepts cross-linked to this subject.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "taught_in": {
          "description": "MLSysBook chapters that teach this subject at chapter grain.",
          "items": {
            "$ref": "#/$defs/ReleaseChapterPointer"
          },
          "type": "array"
        }
      },
      "required": [
        "code",
        "id",
        "label",
        "definition",
        "includes",
        "excludes",
        "contexts",
        "concepts",
        "related_concepts",
        "taught_in"
      ],
      "type": "object"
    },
    "ReleaseWarrant": {
      "additionalProperties": false,
      "description": "Warrant counts computed from recorded evidence at build time; never authored by hand.",
      "properties": {
        "corpus_chapters": {
          "description": "Book chapters whose text contains the concept's label or an alias.",
          "type": "integer"
        },
        "literary": {
          "description": "Covered topics citing this concept in non-book checklists (papers, courses, standards).",
          "type": "integer"
        },
        "organizational": {
          "description": "Covered MLSysBook chapter topics citing this concept plus section-level book links.",
          "type": "integer"
        },
        "user_proxy": {
          "description": "StaffML questions tagged with this concept; term-assignment frequency, a proxy, not user search data.",
          "type": "integer"
        }
      },
      "required": [
        "literary",
        "corpus_chapters",
        "organizational",
        "user_proxy"
      ],
      "type": "object"
    },
    "RetiredConcept": {
      "additionalProperties": false,
      "description": "Permanent redirect record for a retired concept identity pointing to its active replacement.",
      "properties": {
        "aliases": {
          "description": "Former alternative entry terms of the retired concept.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Former canonical human-readable term of the retired concept, retained to prevent label collision reuse."
        },
        "reason": {
          "description": "Editorial explanation for a retirement, scope gap, or tagging disagreement.",
          "type": "string"
        },
        "replaced_by": {
          "description": "Active concept identifier that supersedes the retired identity.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "version": {
          "$ref": "#/$defs/FrameworkVersionEnum",
          "description": "Taxonomy version in which this record or retirement took effect."
        }
      },
      "required": [
        "id",
        "replaced_by",
        "version",
        "reason"
      ],
      "type": "object"
    },
    "ReviewerKindEnum": {
      "description": "Kind of reviewer that recorded a chapter reconciliation decision.",
      "enum": [
        "human",
        "ai"
      ],
      "type": "string"
    },
    "RoleProfile": {
      "additionalProperties": false,
      "description": "Practitioner role profile mapping core and working-knowledge subjects.",
      "properties": {
        "core": {
          "description": "Subject rows a strong practitioner in this role is expected to know deeply.",
          "items": {
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "summary": {
          "description": "One-sentence summary of the engineering responsibilities of this role.",
          "type": "string"
        },
        "working": {
          "description": "Subject rows a practitioner in this role is expected to work with.",
          "items": {
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "label",
        "summary",
        "core"
      ],
      "type": "object"
    },
    "ScopeGap": {
      "additionalProperties": false,
      "description": "Declared candidate topic boundary or gap tracked for future taxonomy versions.",
      "properties": {
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Canonical human-readable term or heading in sentence case."
        },
        "reason": {
          "description": "Editorial explanation for a retirement, scope gap, or tagging disagreement.",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/GapStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "subject_row": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Identifier of the subject row where a candidate gap would live."
        },
        "topic": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Name of the external benchmark topic or candidate gap topic."
        }
      },
      "required": [
        "id",
        "reason",
        "status"
      ],
      "type": "object"
    },
    "SourceKindEnum": {
      "description": "Kind of external design reference or reading source.",
      "enum": [
        "curriculum",
        "documentation",
        "engineering-guide",
        "research",
        "paper",
        "standard",
        "taxonomy",
        "textbook"
      ],
      "type": "string"
    },
    "StaffMLLabelArea": {
      "additionalProperties": false,
      "description": "Area entry in the compact StaffML taxonomy labels projection.",
      "properties": {
        "group": {
          "description": "Human-readable title of the parent group.",
          "type": "string"
        },
        "group_code": {
          "description": "Single-letter code of the parent group.",
          "pattern": "^[A-Z]$",
          "type": "string"
        },
        "group_id": {
          "description": "Permanent machine-readable parent group slug identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "id": {
          "description": "Hierarchical area code (e.g., F1, P4).",
          "pattern": "^[A-Z]\\d+$",
          "type": "string"
        },
        "label": {
          "description": "Full human-readable area title.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this area.",
          "type": "string"
        },
        "short": {
          "description": "Short display label for UI cards and sidebar navigation.",
          "type": "string"
        },
        "slug": {
          "description": "Permanent machine-readable area slug identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "subjects": {
          "description": "Ordered subject row identifiers belonging to this area.",
          "items": {
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "slug",
        "label",
        "short",
        "group",
        "group_id",
        "group_code",
        "question",
        "subjects"
      ],
      "type": "object"
    },
    "StaffMLLabelConcept": {
      "additionalProperties": false,
      "description": "Concept metadata entry in the compact StaffML taxonomy labels projection.",
      "properties": {
        "label": {
          "description": "Canonical human-readable concept term.",
          "type": "string"
        },
        "subject": {
          "description": "Home subject row identifier (empty string for background concepts).",
          "pattern": "^(|[a-z0-9]+(-[a-z0-9]+)*)$",
          "type": "string"
        }
      },
      "required": [
        "label",
        "subject"
      ],
      "type": "object"
    },
    "StaffMLLabelSubject": {
      "additionalProperties": false,
      "description": "Subject metadata entry in the compact StaffML taxonomy labels projection.",
      "properties": {
        "area": {
          "description": "Full human-readable parent area title.",
          "type": "string"
        },
        "area_id": {
          "description": "Hierarchical parent area code.",
          "pattern": "^[A-Z]\\d+$",
          "type": "string"
        },
        "area_slug": {
          "description": "Permanent machine-readable parent area slug identifier.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "code": {
          "description": "Hierarchical subject code (e.g., P4.3).",
          "pattern": "^[A-Z]\\d+\\.\\d+$",
          "type": "string"
        },
        "definition": {
          "description": "Single-sentence definition of the subject boundary.",
          "type": "string"
        },
        "label": {
          "description": "Full human-readable subject title.",
          "type": "string"
        },
        "short": {
          "description": "Short display label for UI cards.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "label",
        "short",
        "area",
        "area_id",
        "area_slug",
        "definition"
      ],
      "type": "object"
    },
    "StaffMLLabelsDocument": {
      "additionalProperties": false,
      "description": "Compact StaffML consumer labels projection (staffml/app/src/data/mlsys-taxonomy.json) generated from the compiled framework and field models.",
      "properties": {
        "areas": {
          "description": "Ordered taxonomy areas with display codes, group metadata, and subject IDs.",
          "items": {
            "$ref": "#/$defs/StaffMLLabelArea"
          },
          "type": "array"
        },
        "concepts": {
          "additionalProperties": {
            "$ref": "#/$defs/StaffMLLabelConcept"
          },
          "description": "Mapping from concept identifier (mlsys.*) to StaffMLLabelConcept metadata.",
          "propertyNames": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$"
          },
          "type": "object"
        },
        "explorer": {
          "description": "Canonical landing URL for the taxonomy explorer.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        },
        "subjects": {
          "additionalProperties": {
            "$ref": "#/$defs/StaffMLLabelSubject"
          },
          "description": "Mapping from subject row identifier to StaffMLLabelSubject metadata.",
          "propertyNames": {
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
          },
          "type": "object"
        },
        "version": {
          "$ref": "#/$defs/FrameworkVersionEnum",
          "description": "Published version string of the taxonomy release."
        }
      },
      "required": [
        "version",
        "explorer",
        "areas",
        "subjects",
        "concepts"
      ],
      "type": "object"
    },
    "SubjectArea": {
      "additionalProperties": false,
      "description": "One of the 20 subject areas grouping cohesive engineering subjects under a group band.",
      "properties": {
        "code": {
          "anyOf": [
            {
              "pattern": "^[A-Z]\\d+$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Short hierarchical human-readable code (e.g., P, P4, P4.5)."
        },
        "display_label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Compact label used in tight matrix cells and navigation sidebars."
        },
        "excludes": {
          "description": "Neighboring topics explicitly excluded and cross-referenced via [[id]].",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "group": {
          "anyOf": [
            {
              "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Identifier of the parent top-level subject group."
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "includes": {
          "description": "Topics explicitly included within this area or subject boundary.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "inventory_status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Population status of the subject row concept inventory."
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this group, area, or family.",
          "type": "string"
        },
        "rows": {
          "description": "Citeable subject rows belonging to this subject area.",
          "items": {
            "$ref": "#/$defs/SubjectRow"
          },
          "type": "array"
        },
        "scope": {
          "description": "Declared scope boundary or scope note.",
          "type": "string"
        },
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/DraftStatusEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial review lifecycle status of the record."
        },
        "warrant_role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Epistemic role of the cited design warrants."
        },
        "warrants": {
          "description": "External source identifiers warranting this area or subject boundary.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "label",
        "question",
        "scope",
        "rows"
      ],
      "type": "object"
    },
    "SubjectGroup": {
      "additionalProperties": false,
      "description": "Top-level structural band of the ML Systems Taxonomy (e.g., Foundations, Stack, Lifecycle, Qualities, System types).",
      "properties": {
        "code": {
          "anyOf": [
            {
              "pattern": "^[A-Z]$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Short hierarchical human-readable code (e.g., P, P4, P4.5)."
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "question": {
          "description": "Core engineering question answered by this group, area, or family.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "label",
        "question"
      ],
      "type": "object"
    },
    "SubjectRow": {
      "additionalProperties": false,
      "description": "A citeable subject row owning the primary home for a set of technical concepts.",
      "properties": {
        "activities": {
          "description": "Engineering lifecycle activities involved in this subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "book_chapters": {
          "description": "MLSysBook volume/chapter codes (vN/NN) teaching this subject.",
          "items": {
            "pattern": "^v(?:ol)?[1-4]/\\d{2}$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "code": {
          "anyOf": [
            {
              "pattern": "^[A-Z]\\d+\\.\\d+$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Short hierarchical human-readable code (e.g., P, P4, P4.5)."
        },
        "concepts": {
          "description": "Technical concepts belonging to this model, subject, or view (optional when derived from Concept.home).",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "concerns": {
          "description": "Cross-cutting system qualities and concerns addressed by this subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "contexts": {
          "description": "Deployment or workload context lenses applicable to this subject.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "definition": {
          "description": "Single-sentence technical definition stating what the item is and what it changes.",
          "type": "string"
        },
        "display_label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Compact label used in tight matrix cells and navigation sidebars."
        },
        "excludes": {
          "description": "Neighboring topics explicitly excluded and cross-referenced via [[id]].",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "includes": {
          "description": "Topics explicitly included within this area or subject boundary.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "inventory_status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Population status of the subject row concept inventory."
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "layers": {
          "description": "System stack layers involved in this subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "secondary_concepts": {
          "description": "Concepts homed elsewhere that have strong secondary relevance here.",
          "items": {
            "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/DraftStatusEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial review lifecycle status of the record."
        },
        "warrant_role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Epistemic role of the cited design warrants."
        },
        "warrants": {
          "description": "External source identifiers warranting this area or subject boundary.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "label",
        "definition",
        "activities",
        "layers",
        "concerns"
      ],
      "type": "object"
    },
    "TaxonomyCollection": {
      "additionalProperties": false,
      "description": "Navigation collection derived from a field concept family.",
      "properties": {
        "family": {
          "description": "Identifier of the owning concept family.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^mlsys\\.collection\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "scope_note": {
          "description": "Note explaining the browsing scope of a SKOS collection.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "label",
        "scope_note",
        "family"
      ],
      "type": "object"
    },
    "TaxonomyHierarchyModel": {
      "additionalProperties": false,
      "description": "Aspect model projected from the single canonical taxonomy (taxonomy/taxonomy.yml) defining the polyhierarchical SKOS broader/narrower slice.",
      "properties": {
        "collections": {
          "description": "Navigation collections derived from field concept families.",
          "items": {
            "$ref": "#/$defs/TaxonomyCollection"
          },
          "type": "array"
        },
        "hierarchy": {
          "description": "Explicit SKOS broader/narrower assertions between topics and concepts.",
          "items": {
            "$ref": "#/$defs/HierarchyAssertion"
          },
          "type": "array"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "type": "string"
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        },
        "scope": {
          "description": "Declared scope boundary or scope note.",
          "type": "string"
        },
        "sources": {
          "description": "External curricula, standards, documentation, or research sources.",
          "items": {
            "$ref": "#/$defs/FrameworkSource"
          },
          "type": "array"
        },
        "status": {
          "$ref": "#/$defs/ModelStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        },
        "title": {
          "description": "Human-readable title of the document or source.",
          "type": "string"
        },
        "top_concepts": {
          "description": "Root topic identifiers in the SKOS hierarchy pilot.",
          "items": {
            "pattern": "^mlsys\\.topic\\.[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "type": "array"
        },
        "topics": {
          "description": "Topics in the SKOS hierarchy pilot or external coverage checklist.",
          "items": {
            "$ref": "#/$defs/TaxonomyTopic"
          },
          "type": "array"
        }
      },
      "required": [
        "schema_version",
        "id",
        "title",
        "scope",
        "status",
        "sources",
        "topics",
        "top_concepts",
        "hierarchy",
        "collections"
      ],
      "type": "object"
    },
    "TaxonomyReleaseDocument": {
      "additionalProperties": false,
      "description": "Root schema for the compiled public JSON release (downloads/mlsys-taxonomy.json) published alongside mlsys-taxonomy.schema.json.",
      "properties": {
        "citation": {
          "description": "Formatted plain-text citation for the current taxonomy release.",
          "type": "string"
        },
        "concepts": {
          "description": "Full inventory of field concepts with home subject pointers and book passages.",
          "items": {
            "$ref": "#/$defs/ReleaseConcept"
          },
          "type": "array"
        },
        "gaps": {
          "description": "Declared candidate scope gaps published with the release.",
          "items": {
            "$ref": "#/$defs/ReleaseGap"
          },
          "type": "array"
        },
        "groups": {
          "description": "Top-level structural bands containing subject areas and subjects.",
          "items": {
            "$ref": "#/$defs/ReleaseGroup"
          },
          "type": "array"
        },
        "guides": {
          "$ref": "#/$defs/GuidesModel",
          "description": "Practitioner role profiles, production symptom triage guides, and learning paths."
        },
        "license": {
          "$ref": "#/$defs/ReleaseLicense",
          "description": "License governing reuse of the taxonomy release artifacts."
        },
        "name": {
          "description": "Official name of the published taxonomy release.",
          "type": "string"
        },
        "note": {
          "description": "Scope and review disclaimer accompanying the release.",
          "type": "string"
        },
        "placement_examples": {
          "description": "Worked examples illustrating the home rule on boundary concepts.",
          "items": {
            "$ref": "#/$defs/PlacementExample"
          },
          "type": "array"
        },
        "relations": {
          "description": "Controlled 17-verb relationship vocabulary with forward and inverse phrases.",
          "items": {
            "$ref": "#/$defs/ControlledRelation"
          },
          "type": "array"
        },
        "relationships": {
          "description": "Directed, condition-qualified propositions between field concepts.",
          "items": {
            "$ref": "#/$defs/ReleaseRelationship"
          },
          "type": "array"
        },
        "retired": {
          "description": "Permanent redirect records for retired concept identities.",
          "items": {
            "$ref": "#/$defs/RetiredConcept"
          },
          "type": "array"
        },
        "status": {
          "$ref": "#/$defs/ModelStatusEnum",
          "description": "Editorial lifecycle status of the release."
        },
        "tagging_rules": {
          "description": "Operational rules for tagging external items with subject and concept identities.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "url": {
          "description": "Canonical landing URL for the taxonomy explorer.",
          "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
          "type": "string"
        },
        "version": {
          "$ref": "#/$defs/FrameworkVersionEnum",
          "description": "Published version string of the taxonomy release."
        }
      },
      "required": [
        "name",
        "version",
        "status",
        "url",
        "license",
        "citation",
        "note",
        "tagging_rules",
        "placement_examples",
        "groups",
        "concepts",
        "gaps",
        "relations",
        "relationships",
        "retired",
        "guides"
      ],
      "type": "object"
    },
    "TaxonomyTopic": {
      "additionalProperties": false,
      "description": "Umbrella topic node in the SKOS broader/narrower hierarchy pilot.",
      "properties": {
        "definition": {
          "description": "Single-sentence technical definition stating what the item is and what it changes.",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^mlsys\\.topic\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "id",
        "label",
        "definition",
        "status"
      ],
      "type": "object"
    },
    "UnifiedConcept": {
      "additionalProperties": false,
      "description": "A permanent technical concept in UnifiedTaxonomyModel with a required primary subject home.",
      "properties": {
        "added_in": {
          "anyOf": [
            {
              "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?(-(draft|rc[0-9]+))?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Release that first admitted this concept, the date-of-entry part of a Z39.19 history note (section 6.2.3)."
        },
        "aliases": {
          "description": "Search entry terms retained for retrieval, without an assertion of lexical equivalence.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "definition": {
          "description": "Single-sentence technical definition stating what the item is and what it changes.",
          "type": "string"
        },
        "family": {
          "description": "Identifier of the owning concept family.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "home": {
          "description": "Identifier of the primary candidate home subject row.",
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "id": {
          "description": "Permanent machine-readable identifier for this record.",
          "pattern": "^mlsys\\.[a-z0-9]+(-[a-z0-9]+)*$",
          "type": "string"
        },
        "label": {
          "description": "Canonical human-readable term or heading in sentence case.",
          "type": "string"
        },
        "references": {
          "description": "Identifiers of external reading sources warranting this record.",
          "items": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/ConceptScopeEnum"
            },
            {
              "type": "null"
            }
          ],
          "description": "Whether the record belongs to core ML systems or imported background knowledge."
        },
        "status": {
          "$ref": "#/$defs/DraftStatusEnum",
          "description": "Editorial review lifecycle status of the record."
        }
      },
      "required": [
        "id",
        "label",
        "home",
        "definition",
        "family",
        "status"
      ],
      "type": "object"
    },
    "UnifiedTaxonomyModel": {
      "additionalProperties": false,
      "description": "Canonical single-source-of-truth document (taxonomy/taxonomy.yml) unifying the subject classification framework, field concept graph, practitioner guides, and SKOS hierarchy.",
      "properties": {
        "areas": {
          "description": "Subject areas organized under the top-level groups.",
          "items": {
            "$ref": "#/$defs/SubjectArea"
          },
          "type": "array"
        },
        "background_boundary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Rule distinguishing core ML systems concepts from imported background concepts."
        },
        "book_mapping_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing chapter pointers and section-level passage links."
        },
        "competency_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy separating subject knowledge from observable task competency."
        },
        "concepts": {
          "description": "Full inventory of technical concepts with required primary subject `home` pointers.",
          "items": {
            "$ref": "#/$defs/UnifiedConcept"
          },
          "type": "array"
        },
        "context_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing context lenses vs dedicated system-type areas."
        },
        "dimensions": {
          "$ref": "#/$defs/DimensionSet",
          "description": "Cross-cutting facet vocabularies (activities, layers, concerns, contexts)."
        },
        "families": {
          "description": "Coarse navigation groupings of field concepts.",
          "items": {
            "$ref": "#/$defs/ConceptFamily"
          },
          "type": "array"
        },
        "field_id": {
          "description": "Permanent machine-readable identifier for the field concept graph.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "field_scope": {
          "description": "Declared scope boundary of the field concept graph.",
          "type": "string"
        },
        "field_sources": {
          "description": "External reading sources warranting field concepts and relationships.",
          "items": {
            "$ref": "#/$defs/FieldSource"
          },
          "type": "array"
        },
        "field_title": {
          "description": "Human-readable title of the field concept graph.",
          "type": "string"
        },
        "gaps": {
          "description": "Declared candidate scope gaps tracked for future taxonomy versions.",
          "items": {
            "$ref": "#/$defs/ScopeGap"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "groups": {
          "description": "Top-level structural bands of the taxonomy.",
          "items": {
            "$ref": "#/$defs/SubjectGroup"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "guides": {
          "$ref": "#/$defs/GuidesModel",
          "description": "Practitioner role profiles, production symptom triage guides, and learning paths."
        },
        "id": {
          "description": "Permanent machine-readable identifier for the subject framework.",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
          "type": "string"
        },
        "learning_paths": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy note or ordered list of guided learning paths."
        },
        "limitations": {
          "description": "Explicit caveats on what the model does and does not claim.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "placement_examples": {
          "description": "Worked examples illustrating the home rule on boundary concepts.",
          "items": {
            "$ref": "#/$defs/PlacementExample"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "rationale": {
          "description": "Editorial placement principles for concepts and subjects.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "relations": {
          "description": "Controlled 17-verb relationship vocabulary with forward and inverse readings.",
          "items": {
            "$ref": "#/$defs/ControlledRelation"
          },
          "minItems": 17,
          "type": "array"
        },
        "relationship_semantics": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Explanation of how subject membership differs from SKOS broader/narrower."
        },
        "relationships": {
          "description": "Directed, condition-qualified technical propositions between concepts.",
          "items": {
            "$ref": "#/$defs/Relationship"
          },
          "type": "array"
        },
        "retired": {
          "description": "Permanent redirect records for withdrawn or merged concept identities.",
          "items": {
            "$ref": "#/$defs/RetiredConcept"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "row_rule": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Editorial rule defining what qualifies as a subject row."
        },
        "schema_version": {
          "const": 1,
          "description": "Integer schema version of the document (must equal 1).",
          "type": "integer"
        },
        "scope": {
          "description": "Declared scope boundary of the subject classification framework.",
          "type": "string"
        },
        "secondary_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing secondary concept links across subject rows."
        },
        "skos_hierarchy": {
          "anyOf": [
            {
              "$ref": "#/$defs/TaxonomyHierarchyModel"
            },
            {
              "type": "null"
            }
          ],
          "description": "Explicit SKOS broader/narrower hierarchy assertions and family collections."
        },
        "sources": {
          "description": "External curricula, standards, and benchmarks warranting subject boundaries.",
          "items": {
            "$ref": "#/$defs/FrameworkSource"
          },
          "type": "array"
        },
        "status": {
          "$ref": "#/$defs/ModelStatusEnum",
          "description": "Editorial lifecycle status of the taxonomy."
        },
        "tagging_rules": {
          "description": "Operational rules for tagging questions, chapters, slides, and labs.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "title": {
          "description": "Human-readable title of the taxonomy.",
          "type": "string"
        },
        "version": {
          "$ref": "#/$defs/FrameworkVersionEnum",
          "description": "Current taxonomy release version string."
        },
        "views": {
          "description": "Named curated subsets of field concepts (`all` view is auto-derived).",
          "items": {
            "$ref": "#/$defs/FieldView"
          },
          "type": "array"
        },
        "warrant_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Policy governing how external sources warrant subject boundaries."
        }
      },
      "required": [
        "schema_version",
        "id",
        "status",
        "version",
        "title",
        "scope",
        "dimensions",
        "areas",
        "sources",
        "field_id",
        "field_title",
        "field_scope",
        "field_sources",
        "families",
        "concepts",
        "relations",
        "relationships",
        "views",
        "guides"
      ],
      "type": "object"
    }
  },
  "$id": "https://mlsysbook.ai/taxonomy/schema",
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "additionalProperties": false,
  "description": "Root schema for the compiled public JSON release (downloads/mlsys-taxonomy.json) published alongside mlsys-taxonomy.schema.json.",
  "properties": {
    "citation": {
      "description": "Formatted plain-text citation for the current taxonomy release.",
      "type": "string"
    },
    "concepts": {
      "description": "Full inventory of field concepts with home subject pointers and book passages.",
      "items": {
        "$ref": "#/$defs/ReleaseConcept"
      },
      "type": "array"
    },
    "gaps": {
      "description": "Declared candidate scope gaps published with the release.",
      "items": {
        "$ref": "#/$defs/ReleaseGap"
      },
      "type": "array"
    },
    "groups": {
      "description": "Top-level structural bands containing subject areas and subjects.",
      "items": {
        "$ref": "#/$defs/ReleaseGroup"
      },
      "type": "array"
    },
    "guides": {
      "$ref": "#/$defs/GuidesModel",
      "description": "Practitioner role profiles, production symptom triage guides, and learning paths."
    },
    "license": {
      "$ref": "#/$defs/ReleaseLicense",
      "description": "License governing reuse of the taxonomy release artifacts."
    },
    "name": {
      "description": "Official name of the published taxonomy release.",
      "type": "string"
    },
    "note": {
      "description": "Scope and review disclaimer accompanying the release.",
      "type": "string"
    },
    "placement_examples": {
      "description": "Worked examples illustrating the home rule on boundary concepts.",
      "items": {
        "$ref": "#/$defs/PlacementExample"
      },
      "type": "array"
    },
    "relations": {
      "description": "Controlled 17-verb relationship vocabulary with forward and inverse phrases.",
      "items": {
        "$ref": "#/$defs/ControlledRelation"
      },
      "type": "array"
    },
    "relationships": {
      "description": "Directed, condition-qualified propositions between field concepts.",
      "items": {
        "$ref": "#/$defs/ReleaseRelationship"
      },
      "type": "array"
    },
    "retired": {
      "description": "Permanent redirect records for retired concept identities.",
      "items": {
        "$ref": "#/$defs/RetiredConcept"
      },
      "type": "array"
    },
    "status": {
      "$ref": "#/$defs/ModelStatusEnum",
      "description": "Editorial lifecycle status of the release."
    },
    "tagging_rules": {
      "description": "Operational rules for tagging external items with subject and concept identities.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "url": {
      "description": "Canonical landing URL for the taxonomy explorer.",
      "pattern": "^https://[^\\s<>\"{}|\\\\^`]+$",
      "type": "string"
    },
    "version": {
      "$ref": "#/$defs/FrameworkVersionEnum",
      "description": "Published version string of the taxonomy release."
    }
  },
  "required": [
    "name",
    "version",
    "status",
    "url",
    "license",
    "citation",
    "note",
    "tagging_rules",
    "placement_examples",
    "groups",
    "concepts",
    "gaps",
    "relations",
    "relationships",
    "retired",
    "guides"
  ],
  "title": "ML Systems Taxonomy Metamodel (LinkML)",
  "type": "object"
}
