25 lines
1.1 KiB
JSON
25 lines
1.1 KiB
JSON
|
|
{
|
||
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
|
|
"$id": "https://docforge.local/schema/node-v1.json",
|
||
|
|
"title": "DocForge generic node metadata",
|
||
|
|
"type": "object",
|
||
|
|
"required": ["schema_version", "id", "title", "family", "authority", "status", "tags", "summary"],
|
||
|
|
"properties": {
|
||
|
|
"schema_version": { "const": 1 },
|
||
|
|
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{1,127}$" },
|
||
|
|
"title": { "type": "string", "minLength": 1 },
|
||
|
|
"family": { "type": "string", "minLength": 1 },
|
||
|
|
"authority": { "enum": ["authoritative", "approved_plan", "derived", "proposal", "historical"] },
|
||
|
|
"status": { "type": "string", "minLength": 1 },
|
||
|
|
"tags": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true },
|
||
|
|
"summary": { "type": "string", "minLength": 1 },
|
||
|
|
"source_anchor": { "type": "string", "minLength": 1 },
|
||
|
|
"content": { "type": "string", "minLength": 1 }
|
||
|
|
},
|
||
|
|
"additionalProperties": {
|
||
|
|
"type": "array",
|
||
|
|
"items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{1,127}$" },
|
||
|
|
"uniqueItems": true
|
||
|
|
}
|
||
|
|
}
|