Contributing
August 26, 2026 ยท View on GitHub
This schema is only as good as the real vendor tags in it. Mappings from real equipment are the most valuable thing you can send.
What is most useful
- Vendor tags for existing fields. If your Mazak emits
SpindleRPM_Actand it is not inmazak.json, that is a one-line pull request. - A new OEM family. Any manufacturer not already in
schema/oem-mappings/. - Process manufacturing tags.
schema/verticals/process.jsonlists 74 declared fields with no vendor mappings at all. This is the largest gap in the schema. - Better descriptions. The current ones are generated from field names. A domain-accurate sentence is better than a generated gloss.
- Units and types. 308 fields have no recorded unit and 194 have no type. If you know one from a vendor manual, cite it.
Adding a mapping
Edit the relevant schema/oem-mappings/<oem>.json and add an entry to
mappings:
"SpindleRPM_Act": "spindle_speed_rpm"
Rules:
- The canonical field must already exist in
schema/fields.json. If it does not, propose the field first. - Use the tag exactly as the equipment emits it, including case, spaces, and
brackets.
Act Sp Speed (RPM)is a real tag and should not be tidied up. - One manufacturer per file.
Proposing a new field
Open an issue with:
- The proposed name, following the existing conventions: lowercase, underscores,
and a unit suffix where there is a unit, such as
_c,_pct,_rpm,_bar, or_mm_s. - The physical quantity and unit.
- The vertical:
cnc,robotics,additive,vehicle,amr,universal, orprocess. - At least one real vendor tag that maps to it, and the equipment it came from.
Fields with no real tag behind them will not be added. That rule is why the existing 694 can be trusted.
Correcting a mapping
A wrong mapping matters more than a missing one, because it silently corrupts
downstream analytics. Open an issue titled wrong mapping: <tag> with the tag,
the current canonical field, what it should be, and how you know: a manual,
controller documentation, or observed values.
Ground rules
- Real equipment only. No speculative or generated tags.
- Cite the source where you can: controller manual, protocol spec, integration doc.
- Keep JSON sorted with 2-space indentation.
- Contributions are MIT licensed, the same as the rest of the repository.
Out of scope
The resolution engine that translates unseen tags automatically is a commercial product and is not part of this repository. Issues asking for it will be closed with a pointer rather than a patch. This repository is the dictionary, not the translator.