Machine-readable models

The requirements, values, and provenance records behind the specification clauses. CAD, BOM, and requirements tools read these files, not the PDF tables.

File Holds Generator
document.json The document model: parts and clauses with their pages, identifier prefixes, roles and interfaces, conditions, annexes, and data files tools/model.py loads it with every other file here; every generator, builder, card, test, and the site read the model
requirements.json The requirements register: every requirement's level, product types, the condition that brings it in, the role or interface it binds, how it is verified, clause, provenance, and rationale tools/requirements.py validates it, cross-checks every clause citation, and writes spec/requirements.md; tools/document.py writes the structure tables of the front matter and the annexes
register.lock.json The identifiers and text as last locked: an identifier is never reused or resequenced, and a changed requirement gets a new one python tools/model.py --lock rewrites it deliberately; the checks fail on any other change
standards.json, module.json, rail.json, insert.json, screw.json, screw-fits.json Mechanical figures and their provenance tools/standards.py, module.py, rail.py, insert.py, insert_card.py, screw.py check them and draw the figure cards
signals.json Patch and bus signal classes and their ranges; the external port names of Annex C are marked normative: false tools/signals.py injects the class tables and signal maps into clauses 6.6, 7.2, and 7.3 and Annexes B and C
video_timings.json The video timing formats; the raster figures match the timing contract in tests/fixtures/ tools/video_timings.py injects clause 8.3
video_75.json, dc_12.json the VID-75 video sync ports (COAX-IN, COAX-OUT, COAX-THRU, buffered or looped) and star topology; PWR-DC12 entry variants, multi-pin pin maps, and distribution outputs tools/video_75.py, dc_12.py inject clauses 8.2 and 8.1
power_interfaces.json The power interfaces of clause 6.1: rails and their claim-file keys, how each is made, distributed, and taken, the clauses, and each interface's ripple limit (SUP-007) tools/power_interfaces.py injects the tables of 6.1 and 6.2
power_ribbon.json The ribbon length and conductor limits of BUS-015
doepfer_comparison.json Each statement of Doepfer's A-100 documents on which EIS differs, with what EIS says and the requirements that say it (informative) tools/doepfer_compare.py writes Annex J
sources.json The external sources EIS quotes or inherits from, with retrieval dates
claim.schema.json, examples/claim-*.yaml The claim file a product publishes: product type and every figure the register requires; a worked example per product type tools/claim.py --check validates a claim file and prints the claim line
row_budget.schema.json, examples/row_budget_two_row.yaml Informative row-budget worksheet, budgeted per power interface: schema and example tools/row_budget.py --check

License: CC BY 4.0 on the curated data and expression (see COPYRIGHT.md and LICENSE). Code that reads or renders these files (tools/*.py) is MIT (LICENSE-CODE).