The Open Protocol

A wire contract you can check, not take on faith.

Infrastructure you wire into a restaurant should not be able to disappear behind a pricing change, an acquisition, or a dead cloud. So the contract your software depends on is documented, simulated, and testable — today, for free, before you buy anything.

Inspectable today

What you can verify before spending a dollar.

The wire contract

Every node serves one documented HTTP/JSON API on the LAN — POST /print, GET /status, SSE /events, GET/PUT /config, /drawer/kick, /raw, /peers, /scans, GET/PUT /cloud — plus raw ESC/POS on :9100 with DLE EOT status replies. One schema definition is shared by the firmware, the twin, the tools, and this website: there is exactly one description of the wire format, and everything is tested against it.

The digital twin

A byte-compatible simulator of a node, free to run: pnpm sim starts a network service with the same HTTP API, the same :9100 port, and fault injection for paper out, cover open, offline, drawer, weight, and scans. Your integration can't tell it from hardware — which is the point.

The conformance suite

75 specs, runnable by anyone, that pass identically against the twin or a physical node. “Implements the protocol” is a claim you can check with one command, not a line of marketing.

Honest state, by design

When a node can't read something, it says so: the driver layer models unreadable state as known: false instead of guessing. Scanner reads are labeled by provenance — transmitted by the scanner or inferred — and /scans keeps rejected reads with the reason. The protocol is designed to be audited, not to look good.

Why it matters

An open contract outlives any vendor — including this one.

Restaurant hardware outlives companies. A node speaks a documented protocol on your own network, with nothing in the print path depending on the internet or a hosted service. If you can reproduce the contract from the docs and verify it with the conformance suite, you are never locked to us — and that is a deliberate design constraint, not a concession.

Source publication is on the engineering docket. In the meantime, the contract itself is the open surface: read the API guide, run the twin, and hold us to the 123 specs. The telemetry leg is inspectable the same way: point a node at your own server instead of ours, over the same open PUT /cloud contract — see the self-hosted telemetry guide.