Single live colour database for /color/, /colors/, /plates/, /tools/ and /tech/. Machine shown everywhere: ComMarker B4 60W MOPA, 110 mm lens, LightBurn 1.7.08 (other charts only as “adapted from”).
GET /api/materials — materials + all coloursGET /api/materials/{id}/colors — one material (supports filter query params)GET /api/colors / GET /api/colors/query — unified list with filters:confidence=hank_verified,high · material= / materials= · status= · vivid=1|0mode=fill,line,image · wobble=1|0 / wobble_enable= · fill_grouping=1|0power=10..40 · speed= · freq= · pulse= · interval= · passes=dot_width= / dot_width_mm= · line_width= · line_interval=sort=confidence or power_pct:asc / dot-width / line-width / mode …q= text search · plate= · group= (client-side also)GET /api/colors/{id} — one colour (full cut_settings + sublayers[])GET /api/plates · GET /api/plates/P031GET /api/cite?q=Plate%2031,%20A8 — also P5 A5, P031-A8 (includes cut_settings / sublayers)GET /api/legendGET /api/library.clb?... — LightBurn material library download (same filters as /api/colors). Content-Disposition: attachment; filename="library.clb". Sub-layer CutSetting siblings are UNVERIFIED until Hank does one LightBurn open-test.cut_settings (first sub-layer / primary) and sublayers[] with the full Cut Settings Editor field set (Fill / Line / Image). Unknown = null; defaulted fields listed in settings_defaulted.lines_per_inch and min_tabs_per_shape are DB/site only (no LightBurn XML element). Do not promise they round-trip.<Entry> per colour, one sibling <CutSetting> per sub-layer. Serialization shape is a guess — not verified in LightBurn 1.7.08.laserview-admin + user hank)POST /api/colors/{id}/save — body {color: {...}} full record (incl. cut_settings / sublayers); auto confidence=hank_verified; timestamped backup + audit logPOST /api/plates/P###/cells/A8/save — {cell:{...}} full cell savePOST /api/plates/P###/save — full plate objectPOST /api/materials/save — full materials.json/plates/P031/photo.jpg/plates/P010/<file>.lbrn2/color/LEGEND.md · /api/legend/docs/VPS_UPDATE.md · /docs/EXPORTER.mdb4_measured.json is regenerated from this DB (not a divergent cache)/color/ and /colors/ — identical unified browser (filters/sort/group in URL query; cut-settings panels + sub-layer tabs; library download buttons)/plates/ — plate list + same browser; /plates/P###/ — grid + photo + lbrn2/tech/ · /tools/ — same DB/APICategorical query params accept comma lists (OR within a param, AND across params):
confidence, material/materials, status, mode, plate, vivid (1/0), wobble, fill_grouping.
Shared browsers use checkbox multi-select with Select all / Clear per group.
managed by laser-rules-build (/opt/laser-rules/build.py) · source editable via SSH as grokbot in rules-src · /rules/ · /lessons