{
  "schema_version": 1,
  "document_spec_version": 1,
  "reviewed_at": "2026-08-24",
  "features": [
    {"id":"yaml-authoring","label":"YAML authoring","category":"input","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["tests/cli.rs","schema/rusdox-spec-v1.schema.json"]},
    {"id":"json-authoring","label":"JSON authoring","category":"input","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["src/spec.rs","contributor-fixtures/spec/minimal.json"]},
    {"id":"toml-authoring","label":"TOML authoring","category":"input","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["src/spec.rs","contributor-fixtures/spec/minimal.toml"]},
    {"id":"composition","label":"Variables, includes, repeaters, conditions, and filters","category":"input","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["src/spec_expand.rs","examples/yaml_composition_showcase.yaml"]},
    {"id":"schema-migration","label":"Versioned schema, editor tooling, and atomic migration","category":"input","docx":"not-applicable","pdf":"not-applicable","parity":"automated","contract":"supported","evidence":["schema/rusdox-spec-v1.schema.json","tests/cli.rs"]},
    {"id":"text-blocks","label":"Standard text blocks","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["CoverTitle","Title","Subtitle","Hero","CenteredNote","PageHeading","Section","Body","Tagline","LabelValues","Metrics","Spacer"],"evidence":["reports/gallery/product-launch-brief-parity.json"]},
    {"id":"rich-paragraphs","label":"Rich paragraphs and runs","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["Paragraph"],"evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"lists","label":"Semantic bullet and numbered lists","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["Bullets","Numbered"],"evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"tables","label":"Tables, rich cells, spans, repeating headers, and row splitting","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["Table"],"evidence":["reports/gallery/dual-output-contract-parity.json","tests/integration.rs"]},
    {"id":"nested-tables","label":"Nested table semantics","category":"document","docx":"supported","pdf":"bounded","parity":"automated","contract":"partial","evidence":["reports/gallery/dual-output-contract-parity.json","docs/compatibility.md"]},
    {"id":"vertical-cell-merges","label":"Vertical table-cell merges","category":"document","docx":"unsupported","pdf":"unsupported","parity":"not-applicable","contract":"unsupported","evidence":["docs/compatibility.md"]},
    {"id":"visuals","label":"PNG, JPEG, SVG, semantic kind, sizing, and required alternative text","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["Image","Logo","Signature","Chart"],"evidence":["reports/gallery/dual-output-contract-parity.json","docs/international-accessibility.md"]},
    {"id":"metadata","label":"Core, custom, and document-language metadata","category":"document","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["reports/gallery/dual-output-contract-parity.json","docs/international-accessibility.md"]},
    {"id":"page-layout","label":"Page size, orientation, margins, and gutter","category":"layout","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"headers-footers","label":"Headers, footers, page numbering, and total pages","category":"layout","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"page-breaks","label":"Explicit page breaks","category":"layout","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","spec_variants":["PageBreak"],"evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"section-breaks","label":"Next-page section breaks with shared geometry","category":"layout","docx":"supported","pdf":"supported","parity":"automated","contract":"partial","spec_variants":["SectionBreak"],"evidence":["reports/gallery/dual-output-contract-parity.json","docs/compatibility.md"]},
    {"id":"links-bookmarks","label":"Hyperlinks and bookmarks","category":"interactive","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"table-of-contents","label":"Table of contents","category":"interactive","docx":"supported","pdf":"fallback","parity":"automated","contract":"partial","spec_variants":["TableOfContents"],"evidence":["reports/gallery/dual-output-contract-parity.json","docs/compatibility.md"]},
    {"id":"footnotes","label":"Footnotes","category":"interactive","docx":"supported","pdf":"fallback","parity":"automated","contract":"partial","evidence":["reports/gallery/dual-output-contract-parity.json"]},
    {"id":"comments-tracked-changes","label":"Comments and tracked changes","category":"interactive","docx":"unsupported","pdf":"unsupported","parity":"not-applicable","contract":"unsupported","evidence":["docs/compatibility.md"]},
    {"id":"word-templates","label":"Word-native placeholders, loops, conditions, filters, and partials","category":"template","docx":"supported","pdf":"bounded","parity":"automated","contract":"partial","evidence":["template-evidence/invoice/reports/invoice-parity.json","docs/word-templates.md"]},
    {"id":"existing-docx","label":"Existing DOCX open, modify, and save","category":"package","docx":"bounded","pdf":"not-applicable","parity":"automated","contract":"partial","evidence":["tests/fixtures/external-macos-textutil.docx","tests/integration.rs"]},
    {"id":"latin","label":"Latin text and embedded TrueType PDF fonts","category":"international","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["reports/gallery/international-scripts-parity.json"]},
    {"id":"rtl","label":"Arabic and right-to-left layout","category":"international","docx":"bounded","pdf":"bounded","parity":"automated","contract":"experimental","evidence":["reports/gallery/international-scripts-parity.json","docs/compatibility.md"]},
    {"id":"cjk","label":"CJK glyph fallback and layout","category":"international","docx":"bounded","pdf":"bounded","parity":"automated","contract":"experimental","evidence":["reports/gallery/international-scripts-parity.json","docs/compatibility.md"]},
    {"id":"emoji","label":"Emoji fallback","category":"international","docx":"bounded","pdf":"bounded","parity":"automated","contract":"experimental","evidence":["reports/gallery/international-scripts-parity.json","docs/compatibility.md"]},
    {"id":"pdf-conformance","label":"Tagged PDF, PDF/UA, and PDF/A conformance","category":"accessibility","docx":"not-applicable","pdf":"unsupported","parity":"not-applicable","contract":"unsupported","evidence":["docs/pdf-conformance-research.md"]},
    {"id":"viewer-evidence","label":"Dated real-viewer compatibility","category":"viewer","docx":"supported","pdf":"supported","parity":"viewer","contract":"partial","evidence":["compatibility/viewer-results.json","docs/compatibility-scorecard.md"]},
    {"id":"local-protocol","label":"Rust renderer, stdio, and loopback HTTP integration","category":"integration","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["src/renderer.rs","src/protocol.rs","scripts/test_integrations.mjs"]},
    {"id":"bounded-batch","label":"Bounded concurrency and cooperative cancellation","category":"integration","docx":"supported","pdf":"supported","parity":"automated","contract":"supported","evidence":["src/batch.rs"]}
  ]
}
