{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://andraxion.net/docforge/schemas/reference-adapter.schema.json", "title": "DocForge Reference Adapter Configuration", "type": "object", "additionalProperties": false, "required": [ "schema_version", "project_id", "title", "language", "source_roots" ], "properties": { "schema_version": { "const": 1 }, "project_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{1,127}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 256 }, "language": { "enum": [ "python", "javascript", "typescript", "cpp" ] }, "source_roots": { "type": "array", "minItems": 1, "maxItems": 64, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$)).+$" } }, "compilation_database": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$)).+$" } }, "allOf": [ { "if": { "properties": { "language": { "const": "cpp" } }, "required": [ "language" ] }, "then": { "required": [ "compilation_database" ] }, "else": { "not": { "required": [ "compilation_database" ] } } } ] }