Additive minor — schema_version unchanged. Existing v1 consumers that ignore unknown fields stay compatible; consumers that validate strictly will reject pre-fb-32 payloads, which matches the wire contract escape hatch (recipient version >= producer required). Cross-task placeholders: kebab-eval / kebab-tui synthetic test fixtures pin UNIX_EPOCH + stale=false (same pattern as hybrid.rs / vector.rs). These don't exercise staleness — Task 11 adds dedicated TUI staleness rendering tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
915 B
JSON
22 lines
915 B
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://kb.local/wire/v1/citation.schema.json",
|
|
"title": "Citation v1",
|
|
"description": "Stub schema — declares the schema_version label and the always-present fields. Variant-discriminated property validation lands in a later phase.",
|
|
"type": "object",
|
|
"required": ["schema_version", "kind", "path", "uri", "indexed_at", "stale"],
|
|
"properties": {
|
|
"schema_version": { "const": "citation.v1" },
|
|
"kind": { "enum": ["line", "page", "region", "caption", "time"] },
|
|
"path": { "type": "string" },
|
|
"uri": { "type": "string" },
|
|
"line": { "type": "object" },
|
|
"page": { "type": "object" },
|
|
"region": { "type": "object" },
|
|
"caption": { "type": "object" },
|
|
"time": { "type": "object" },
|
|
"indexed_at": { "type": "string", "format": "date-time" },
|
|
"stale": { "type": "boolean" }
|
|
}
|
|
}
|