# YAML Schema for source type type: object properties: type: type: string const: "types/source.md" description: Must reference the source type-spec source_type: type: string enum: [transcript, analysis, article, document, notes, tracker, unclassified] description: >- The category of source material. No default - the machine must not pick the vaguest value on the author's behalf (Gitea #66). Use `unclassified` when the category is genuinely unclear; it is a visible, advisory-lint catalog slot, not a silent fallback. author: type: string description: Author of the source material minLength: 1 raw_files: type: array items: type: string description: List of raw file paths this source covers minItems: 1 source_url: type: [string, "null"] description: Upstream URL for external sources format: uri source_language: type: string pattern: "^[a-z]{2}$" description: >- ISO 639-1 code for the language of the raw material, e.g. de, en, fr. The page itself is written in the KB language regardless; this records what had to be translated. Optional - absent on pages predating the rule. date: type: string format: date pattern: "^\\d{4}-\\d{2}-\\d{2}$" description: Publication or creation date in YYYY-MM-DD format tags: type: array items: type: string description: Navigation tags for categorization entities: type: array items: type: string description: Entity titles mentioned in this source concepts: type: array items: type: string description: Concept titles mentioned in this source summary: type: string description: 1-line summary for index.md minLength: 1 required: - type - source_type - author - raw_files - date - summary additionalProperties: false