{
  "$comment": "Agent discovery for epcis.dev. Ledger first: live on this origin, no key — POST /translate, POST /validate, POST /hash. No conformance attestation has ever been issued. The dated launch ledger at /what-ships-today/ is authoritative for everything else; treat its open column as open, not live.",
  "name": "epcis.dev",
  "description": "An EPCIS 2.0 capture gateway: validated against GS1's pinned official schema, gateway-stamped (who = attested observer; capturedBy = warrantor account — never collapsed), hashed by CBV 2.0 §8.9, append-only. One door for people and agents.",
  "surfaces": {
    "llms": "/llms.txt",
    "icp": "/icp.json",
    "agent_classes": "/agent-classes.json",
    "ledger": "/what-ships-today/"
  },
  "doors": {
    "translate": "POST /translate — EPCIS 1.1/1.2/2.0 XML in, 2.0 JSON-LD + FidelityReport out; no key",
    "validate": "POST /validate — document/event in, verdict + per-path errors against the pinned schema; no key",
    "hash": "POST /hash — event(s) in, CBV 2.0 §8.9 ni URIs out; no key"
  },
  "mcp": {
    "door": "POST /mcp on this origin (JSON-RPC 2.0) — translate answers with no key; capture/query/get_event/trace_epc open with a capture key; local: npx epcis.dev mcp",
    "tools": "capture, query, get_event, trace_epc, translate (+ resolve and subscribe as honest refusals)",
    "ledger": "/what-ships-today/"
  },
  "waitlist": {
    "action": "POST /waitlist",
    "page": "/get-a-key/",
    "promise": "keys are provisioned from the list, in order; one email when the seat is ready; write-only"
  }
}
