{
  "schema": "aetec-ogp-interface-proposal-v1",
  "status": "DESIGN CONTRACT - NOT A VERIFIED ZONE3 API",
  "transport": "Local protocol adapter to installed Zone3/Q++; binding to prove",
  "correlation": [
    "batch_id",
    "tray_id",
    "slot",
    "part_number",
    "recipe_revision",
    "setup",
    "attempt",
    "request_id"
  ],
  "requests": [
    "select_recipe",
    "request_load",
    "part_loaded",
    "start_inspection",
    "ack_result",
    "request_unload",
    "abort_hold"
  ],
  "responses": [
    "recipe_ack",
    "load_permitted",
    "busy",
    "complete",
    "result_committed",
    "unload_permitted",
    "fault"
  ],
  "rules": [
    "Exactly one active request per machine.",
    "Idempotent request_id; do not start twice after reconnect.",
    "Robot clear and chuck retained before start.",
    "Timeout holds sequence; never interprets missing response as success.",
    "A+B coverage and report commit before part return.",
    "First out-of-limit triggers complete unload/reload repeat once.",
    "Persistent failure returns original slot with REVIEW flag.",
    "No motion command is sent by the web app."
  ]
}