{
  "engine": "igrimaldi.engineering — Physical AI & Robotics cluster control engine",
  "cluster": "physical-ai",
  "schemaVersion": "0.1.0",
  "contracts": [
    {
      "id": "AssetAnomalyDetected",
      "version": "0.1.0",
      "producer": "energy",
      "consumer": "operations",
      "summary": "Energy Intelligence reports an anomaly on an identified asset. Physical AI never consumes this directly.",
      "schema": "https://igrimaldi.engineering/api/cluster/contracts/AssetAnomalyDetected"
    },
    {
      "id": "InspectionWorkOrder",
      "version": "0.1.0",
      "producer": "operations",
      "consumer": "physical-ai",
      "summary": "Operations converts an event into a work order. This is the only input by which work reaches a robot, and it enters the gate at PLAN.",
      "schema": "https://igrimaldi.engineering/api/cluster/contracts/InspectionWorkOrder"
    },
    {
      "id": "InspectionResult",
      "version": "0.1.0",
      "producer": "physical-ai",
      "consumer": "energy",
      "summary": "Physical AI returns evidence and a report. Every step of the gate that ran is recorded; a result without a VERIFY record is invalid.",
      "schema": "https://igrimaldi.engineering/api/cluster/contracts/InspectionResult"
    },
    {
      "id": "PalletizingKpiSnapshot",
      "version": "0.1.0",
      "producer": "physical-ai",
      "consumer": "operations",
      "summary": "The twelve palletizing KPIs as a dated snapshot. What the simulator and, later, a cell must emit; what /palletizer reads.",
      "schema": "https://igrimaldi.engineering/api/cluster/contracts/PalletizingKpiSnapshot"
    }
  ]
}