Goal
Define a spec / mechanism so the main logic — read/write flow, material handling, tag (spoolData) format — is authored once and shared, instead of re-implemented per client.
Firmware is the source of truth today (owns AES keys, 48-char spoolData format, weight→length codes, UI lists). Desktop and web are thin clients that fetch UI lists at startup. Keep the web UI working the same way; minimize logic duplication as much as possible.
Scope
- Formalize the wire contracts (
getspec//api/spec, write/read/status/config/db/ota) into a versioned spec doc.
- Identify any logic that currently risks duplication across firmware / desktop / web and pin it to one owner.
- Decide shared-artifact format (JSON schema? generated types?) consumable by desktop (Go) + web (TS).
Related: repo split (spec repo), Reader refactor.
Goal
Define a spec / mechanism so the main logic — read/write flow, material handling, tag (spoolData) format — is authored once and shared, instead of re-implemented per client.
Firmware is the source of truth today (owns AES keys, 48-char spoolData format, weight→length codes, UI lists). Desktop and web are thin clients that fetch UI lists at startup. Keep the web UI working the same way; minimize logic duplication as much as possible.
Scope
getspec//api/spec, write/read/status/config/db/ota) into a versioned spec doc.Related: repo split (spec repo), Reader refactor.