{
  "created_at": "2026-11-12T07:59:08Z",
  "result": {
    "engine": "lab_preflight",
    "limits": "SIMULATED: checks each proposed step against the supplied authority and lab state; no instrument is contacted. A wrong state gives a wrong verdict. It does not judge whether the protocol is scientifically sound. The run is Ed25519-signed; pin the issuer key out of band.",
    "module": "cain_a75_engines/labpreflight/engine.py",
    "profile": "pcr_protocol",
    "run": {
      "halted_at": null,
      "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
      "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
      "records": [
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "dispense:liquid-handler-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "20.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "liquid-handler-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "20.0 uL vs [1.0, 1000.0]",
              "id": "instrument.volume_range",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            },
            {
              "detail": "sealed=False",
              "id": "labware.destination_unsealed",
              "ok": true
            },
            {
              "detail": "0.0 + 20.0 uL vs capacity 200.0",
              "id": "labware.no_overflow",
              "ok": true
            },
            {
              "detail": "master-mix-lot-7",
              "id": "reagent.known",
              "ok": true
            },
            {
              "detail": "5000 uL in stock, 20.0 uL needed",
              "id": "reagent.in_stock",
              "ok": true
            },
            {
              "detail": "lot expires 2027-03-01T00:00:00Z",
              "id": "reagent.lot_not_expired",
              "ok": true
            },
            {
              "detail": "every reagent must declare its hazard block",
              "id": "reagent.hazard_declared",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, lab BSL-2",
              "id": "biosafety.lab_level",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "57f194016d7b9ad7e0b17502404d742ab1f76b85b5ed480f527581a4ac82ad5c",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 5000,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 800,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 0,
                  "sealed": false,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "dispense",
              "destination": "plate-96-1",
              "instrument": "liquid-handler-1",
              "reagent": "master-mix-lot-7",
              "seq": 1,
              "volume_ul": 20
            }
          },
          "proposal_sha256": "93ab201a6eb17d8f4bb8572e1ab0e8f4d9e3d5a9725dbccfa4ad5a0e4b67a1cc",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "2dae5d8b7d1ceb60ef8f75f573e03926df663f36497b54331bac6479342de563",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "Wvry+Ax02PMnsOnvvUUwYyXMSFyFl+SB49KbsSaWTpHmKETFzYTmDQwv2PJRAA61NbUHY9qSIaMdEgAyz43/Cw==",
          "simulated": true,
          "verdict": "ALLOW"
        },
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "dispense:liquid-handler-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "5.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "liquid-handler-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "5.0 uL vs [1.0, 1000.0]",
              "id": "instrument.volume_range",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            },
            {
              "detail": "sealed=False",
              "id": "labware.destination_unsealed",
              "ok": true
            },
            {
              "detail": "20.0 + 5.0 uL vs capacity 200.0",
              "id": "labware.no_overflow",
              "ok": true
            },
            {
              "detail": "primer-set-12",
              "id": "reagent.known",
              "ok": true
            },
            {
              "detail": "800 uL in stock, 5.0 uL needed",
              "id": "reagent.in_stock",
              "ok": true
            },
            {
              "detail": "lot expires 2027-01-15T00:00:00Z",
              "id": "reagent.lot_not_expired",
              "ok": true
            },
            {
              "detail": "every reagent must declare its hazard block",
              "id": "reagent.hazard_declared",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, lab BSL-2",
              "id": "biosafety.lab_level",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "2dae5d8b7d1ceb60ef8f75f573e03926df663f36497b54331bac6479342de563",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 4980.0,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 800,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 20.0,
                  "sealed": false,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "dispense",
              "destination": "plate-96-1",
              "instrument": "liquid-handler-1",
              "reagent": "primer-set-12",
              "seq": 2,
              "volume_ul": 5
            }
          },
          "proposal_sha256": "6373b1f9a6a37671ce71a6771b8bef3826adacea98658558018dbb6a397cb607",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "afabc551b4a193400f375f4f43759a41a2c042961ec55bf08cd132c2509ac2df",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "OJgOaUvdR5w0TI6QSfsGw8pLj2kY7u/XGz3wyuAsG8xGjYMtkmucucqk1vb1dQ+4msXCrFJy+qHA3L+rSyjCCA==",
          "simulated": true,
          "verdict": "ALLOW"
        },
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "mix:liquid-handler-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "15.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "liquid-handler-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "15.0 uL vs [1.0, 1000.0]",
              "id": "instrument.volume_range",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            },
            {
              "detail": "master-mix-lot-7",
              "id": "reagent.known",
              "ok": true
            },
            {
              "detail": "4980.0 uL in stock, 15.0 uL needed",
              "id": "reagent.in_stock",
              "ok": true
            },
            {
              "detail": "lot expires 2027-03-01T00:00:00Z",
              "id": "reagent.lot_not_expired",
              "ok": true
            },
            {
              "detail": "every reagent must declare its hazard block",
              "id": "reagent.hazard_declared",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, lab BSL-2",
              "id": "biosafety.lab_level",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "afabc551b4a193400f375f4f43759a41a2c042961ec55bf08cd132c2509ac2df",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 4980.0,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 795.0,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 25.0,
                  "sealed": false,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "mix",
              "destination": "plate-96-1",
              "instrument": "liquid-handler-1",
              "reagent": "master-mix-lot-7",
              "seq": 3,
              "volume_ul": 15
            }
          },
          "proposal_sha256": "489dc3a7f6a39fa4c6af9fed738047ef639968d615a533058f37419e49fd1522",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "e6edae2b599e4f00331e5a6dfe9b45d407aa7bd459fe33b272753f7212877f37",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "S1aLtVmWfHz69V99TYdpi6UPWx4SPmjSICT65QnQMz/Oo/TWmGFOT1/WF7kY9fXv44KZ9Plmw5gXGkxxcRnnCw==",
          "simulated": true,
          "verdict": "ALLOW"
        },
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "seal:plate-sealer-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "0.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "plate-sealer-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "e6edae2b599e4f00331e5a6dfe9b45d407aa7bd459fe33b272753f7212877f37",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 4980.0,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 795.0,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 25.0,
                  "sealed": false,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "seal",
              "destination": "plate-96-1",
              "instrument": "plate-sealer-1",
              "seq": 4
            }
          },
          "proposal_sha256": "90e8707e3af2a2a3582f2506a6587509cdec7bc2819a182272c81bc31c5277d0",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "5c6b92601969491fe10000b788a3a0a6851aac8226096e505beb8615cb5d0c88",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "AbbodnwHfOA2EMnODmB5bJJqUzYQUmkP3v7hLgTvwSIQocdg/QO8KsAr31kjdE+dUu4gdczxZOW9/qXYo2b0DA==",
          "simulated": true,
          "verdict": "ALLOW"
        },
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "centrifuge:centrifuge-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "0.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "centrifuge-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "1000.0 rpm vs max 15000",
              "id": "instrument.speed",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "5c6b92601969491fe10000b788a3a0a6851aac8226096e505beb8615cb5d0c88",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 4980.0,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 795.0,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 25.0,
                  "sealed": true,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "centrifuge",
              "destination": "plate-96-1",
              "instrument": "centrifuge-1",
              "seq": 5,
              "speed_rpm": 1000
            }
          },
          "proposal_sha256": "35278ee95ec36f6277f2dfc57791749e75f187ca5393ac0e2c2f4be0fe3189c0",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "b7c6c11cf5a553946486abfa2ede318e307b1060a59073e136860a74c40466d5",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "gI5cXBo7U/nZ9qGjwSYQGZlPe8JbOHWWR2D6rRZzw/FyqmuXdug8cPKVRBGY/pSBup2urGNCDa+tAxliX0zlCg==",
          "simulated": true,
          "verdict": "ALLOW"
        },
        {
          "checks": [
            {
              "detail": "subject 'agent:pcr-runner', agent 'agent:pcr-runner'",
              "id": "authority.subject",
              "ok": true
            },
            {
              "detail": "expires 2026-11-12T18:00:00Z",
              "id": "authority.not_expired",
              "ok": true
            },
            {
              "detail": "heat:thermocycler-1",
              "id": "authority.scope",
              "ok": true
            },
            {
              "detail": "0.0 uL vs 500 uL",
              "id": "authority.max_volume",
              "ok": true
            },
            {
              "detail": "reagent BSL-1, authority ceiling BSL-1",
              "id": "authority.max_bsl",
              "ok": true
            },
            {
              "detail": "thermocycler-1",
              "id": "instrument.known",
              "ok": true
            },
            {
              "detail": "status 'READY'",
              "id": "instrument.ready",
              "ok": true
            },
            {
              "detail": "calibrated until 2026-12-31T00:00:00Z",
              "id": "instrument.calibrated",
              "ok": true
            },
            {
              "detail": "95.0 C vs [4, 99]",
              "id": "instrument.temperature",
              "ok": true
            },
            {
              "detail": "plate-96-1",
              "id": "labware.destination_known",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-002/1.0.0",
          "failed": [],
          "label": "SIMULATED: checked against the supplied proposal and lab state; no instrument was contacted and nothing was sent to hardware.",
          "needs_human": [],
          "prev_record_hash": "b7c6c11cf5a553946486abfa2ede318e307b1060a59073e136860a74c40466d5",
          "proposal": {
            "agent": "agent:pcr-runner",
            "approvals": [],
            "authority": {
              "expires_at": "2026-11-12T18:00:00Z",
              "issuer": "lab-manager@example-lab",
              "max_biosafety_level": 1,
              "max_volume_ul": 500,
              "scope": [
                "aspirate:liquid-handler-1",
                "dispense:liquid-handler-1",
                "transfer:liquid-handler-1",
                "mix:liquid-handler-1",
                "seal:plate-sealer-1",
                "heat:thermocycler-1",
                "centrifuge:centrifuge-1"
              ],
              "subject": "agent:pcr-runner"
            },
            "lab": {
              "biosafety_level": 2,
              "id": "example-lab"
            },
            "now": "2026-11-12T09:00:00Z",
            "schema": "cain42.a75.lab.proposal.v1",
            "state": {
              "exposure": {
                "hazardous_limit_ul": 100,
                "hazardous_used_ul": 0
              },
              "instruments": {
                "centrifuge-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_rpm": 15000
                  },
                  "status": "READY",
                  "type": "centrifuge"
                },
                "liquid-handler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_volume_ul": 1000,
                    "min_volume_ul": 1
                  },
                  "status": "READY",
                  "type": "liquid_handler"
                },
                "plate-sealer-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {},
                  "status": "READY",
                  "type": "sealer"
                },
                "thermocycler-1": {
                  "calibrated_until": "2026-12-31T00:00:00Z",
                  "limits": {
                    "max_temp_c": 99,
                    "min_temp_c": 4
                  },
                  "status": "READY",
                  "type": "thermocycler"
                }
              },
              "inventory": {
                "lentivirus-prep-3": {
                  "available_ul": 500,
                  "expires_at": "2026-12-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 2,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "master-mix-lot-7": {
                  "available_ul": 4980.0,
                  "expires_at": "2027-03-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "primer-set-12": {
                  "available_ul": 795.0,
                  "expires_at": "2027-01-15T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [],
                    "select_agent": false
                  }
                },
                "sodium-azide-1pct": {
                  "available_ul": 1000,
                  "expires_at": "2027-06-01T00:00:00Z",
                  "hazard": {
                    "biosafety_level": 1,
                    "controlled": false,
                    "ghs": [
                      "H300",
                      "H410"
                    ],
                    "select_agent": false
                  }
                }
              },
              "labware": {
                "plate-96-1": {
                  "capacity_ul": 200,
                  "contents_ul": 25.0,
                  "sealed": true,
                  "type": "plate"
                },
                "reservoir-A": {
                  "capacity_ul": 50000,
                  "contents_ul": 20000,
                  "sealed": false,
                  "type": "reservoir"
                }
              }
            },
            "step": {
              "action": "heat",
              "destination": "plate-96-1",
              "duration_s": 180,
              "instrument": "thermocycler-1",
              "seq": 6,
              "temperature_c": 95
            }
          },
          "proposal_sha256": "484f0ea734a7d7478940262c866364e8c38d510928587201c68fb9721d8c0aee",
          "public_key_b64": "uow6SNujj4Cuk0GHsw7fxAuDPldKTC7xuWWinaewO40=",
          "record_hash": "d7ee7bfc0387fc0bc1fdf80a6e45166ce4d19c9a17c34c1d3deda746d476851a",
          "schema": "cain42.a75.lab.preflight.record.v1",
          "signature_b64": "9DA3aeIlScCx9P/st/4s1NQNaKJY59v1Bjz9/ZCBgnjcBu2asJE//LQWOAW0K0Ns+VjmGlKEfBQ7+zva9mYXCA==",
          "simulated": true,
          "verdict": "ALLOW"
        }
      ],
      "run_hash": "845bd486ed042ce5c4b3fc2ba1e27042ecaf83003e8b7200c8cdcba33171fb80",
      "schema": "cain42.a75.lab.preflight.run.v1",
      "steps_allowed": 6,
      "steps_total": 6,
      "verdict": "ALLOW"
    },
    "scenarios": [
      {
        "name": "pcr_plate_setup",
        "run_hash": "845bd486ed042ce5c4b3fc2ba1e27042ecaf83003e8b7200c8cdcba33171fb80",
        "steps_allowed": 6,
        "steps_total": 6,
        "verdict": "ALLOW"
      },
      {
        "expected": "ALLOW",
        "name": "valid_dispense",
        "verdict": "ALLOW"
      },
      {
        "expected": "DENY",
        "name": "authority_for_another_agent",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "expired_authority",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "action_outside_scope",
        "verdict": "DENY"
      },
      {
        "expected": "ALLOW",
        "name": "aspirate_in_scope_is_allowed",
        "verdict": "ALLOW"
      },
      {
        "expected": "DENY",
        "name": "volume_over_authority",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "instrument_fault",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "calibration_lapsed",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "volume_below_instrument_minimum",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "overflow_well",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "dispense_into_sealed_plate",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "out_of_stock",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "expired_lot",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "unknown_reagent",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "bsl2_reagent_with_bsl1_authority",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "bsl2_reagent_in_bsl1_lab",
        "verdict": "DENY"
      },
      {
        "expected": "REQUIRE_APPROVAL",
        "name": "acutely_toxic_needs_a_human",
        "verdict": "REQUIRE_APPROVAL"
      },
      {
        "expected": "REQUIRE_APPROVAL",
        "name": "agent_cannot_approve_itself",
        "verdict": "REQUIRE_APPROVAL"
      },
      {
        "expected": "ALLOW",
        "name": "acutely_toxic_with_named_approval",
        "verdict": "ALLOW"
      },
      {
        "expected": "REQUIRE_APPROVAL",
        "name": "approval_for_another_step",
        "verdict": "REQUIRE_APPROVAL"
      },
      {
        "expected": "DENY",
        "name": "exposure_budget_exceeded",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "temperature_over_instrument_max",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "centrifuge_over_rpm",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "unknown_action",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "nan_volume",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "negative_volume",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "string_volume",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "unknown_instrument",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "undeclared_hazard",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "not_a_proposal",
        "verdict": "DENY"
      },
      {
        "expected": "DENY",
        "name": "garbage",
        "verdict": "DENY"
      }
    ],
    "summary": "ALLOW: 6/6 steps of the sample protocol; 31/31 refusal cases as expected"
  },
  "schema": "cain42.agentic75.findings.v1",
  "sku": "CAIN-A75-002"
}
