Scanners.
Barcode and Digital Link scanners produce reads at a point in a process. Those reads become the epcList of an EPCIS 2.0 event; the gateway does not read the tag, it accepts and validates the event the read produces.
POST /capturePOST /translate
From a scan to a stamped event.
scan: https://id.gs1.org/01/09506000134352/21/A1-9
becomes:
"type": "ObjectEvent", "action": "OBSERVE", "bizStep": "receiving",
"epcList": [ /* the scan, normalized */ ],
"who": "did:human:crew-lead", // asserted, graded
"spine:capturedBy": "acct:store-operator" // stamped
Illustrative: the handheld's read, and the event it becomes. The scan supplies the What; the capture supplies the rest — validated, graded, stamped, hashed, appended.
For the engineer wiring the back door.
The scanner vendor's SDK ends at the string; the standard begins at the event. Keeping that seam explicit is what lets you change hardware without changing the record — the door validates events, not devices.