{
 "about": {
  "date": "2026-10-24",
  "python": "3.12.14",
  "oracle": "Python standard library: fractions.Fraction for elapsed time, hashlib SHA-256 for the source, payload and snapshot hashes, and the comparison's validation, verification and projection rules restated from Contract 11A",
  "method": {
   "id": "measured-comparison-time-alignment",
   "version": "1.0.0"
  },
  "ruling": "docs/board/memos/2026-10-24-cso-bioreactor-stage.md, section 6 (SCI-186)",
  "generator": "pipeline/bioreactor-simulator/reference-measured-comparison-3.py",
  "generatorSha256": "f3e3ab454e55b26f3e92b78abb4d2e93158e1220ea6418c7b242cb722b414922"
 },
 "conventions": {
  "canonicalJson": "Keys sorted by code unit, no whitespace, numbers as ECMAScript Number.prototype.toString, strings as JSON.stringify.",
  "inputHash": "sha256 of the canonical JSON of the growth input: v, sourceId, settings, readings, and source, example, history when present.",
  "payloadHash": "sha256 of the canonical JSON of the imported growth-review payload with source.analysisRef set to null.",
  "snapshotHash": "sha256 of the canonical JSON of the snapshot without key and contentHash.",
  "elapsedHours": "(entered time - anchor) / (1 for h, 60 for min) on the entered decimal values as exact rationals, rounded once to binary64; -0 is 0.",
  "tolerance": "0 when the entered time, the anchor and the result are binary64 numbers; otherwise (ulp(time) + ulp(anchor)) / divisor + 2 ulp(result).",
  "expand": "Reading i (0-based) of a rule is {id: idPrefix + i, sourceRow: i + 1, time: i, ...template}, placed at path; the stored record's window and hashes already describe the expanded record; check expandedSha256 before running the case.",
  "operations": "validate: the record is refused at validation with code. verify: the record validates and verification refuses it. verify-and-project: the record validates, the pair verifies, and the projection is as expected."
 },
 "base": {
  "v": 1,
  "kind": "measured-comparison",
  "sharedEventLabel": "Inoculation (OD600 = 0.15)",
  "slotA": {
   "slotId": "slot-a",
   "imported": {
    "schema": "drybench.growth-review",
    "v": 1,
    "capturedAt": "2026-10-24T09:00:00.000Z",
    "source": {
     "label": "Run A (hours)",
     "analysisRef": null,
     "revision": null,
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
    },
    "growth": {
     "v": 1,
     "sourceId": "source-slot-a-run-a",
     "source": {
      "kind": "paste",
      "at": "2026-10-24T09:00:00.000Z"
     },
     "settings": {
      "timeUnit": "h",
      "responseLabel": "OD600",
      "window": [
       0,
       2
      ]
     },
     "readings": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "time": 0,
       "response": 0.15,
       "role": "sample"
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "time": 1,
       "response": 0.31,
       "role": "sample"
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "time": 2,
       "response": 0.64,
       "role": "sample"
      }
     ],
     "result": null
    },
    "context": {
     "origin": "measured",
     "responseUnit": "OD600",
     "basis": "1 cm cuvette, unblanked",
     "timeZero": null,
     "instrument": null,
     "geometry": null,
     "validRange": null,
     "calibration": null,
     "calibrationUncertainty": null,
     "processEvents": null,
     "sampleIds": {}
    }
   },
   "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
   "context": {
    "origin": "measured",
    "responseUnit": "OD600",
    "basis": "1 cm cuvette, unblanked",
    "timeZero": null,
    "instrument": null,
    "geometry": null,
    "validRange": null,
    "calibration": null,
    "calibrationUncertainty": null,
    "processEvents": null,
    "sampleIds": {}
   },
   "alignment": {
    "kind": "elapsed-from-declared-event",
    "anchorInSourceUnits": 0,
    "sourceTimeUnit": "h",
    "basis": "Inoculation recorded at 0 h in bench log"
   }
  },
  "slotB": {
   "slotId": "slot-b",
   "imported": {
    "schema": "drybench.growth-review",
    "v": 1,
    "capturedAt": "2026-10-24T09:00:00.000Z",
    "source": {
     "label": "Run B (minutes)",
     "analysisRef": null,
     "revision": null,
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
    },
    "growth": {
     "v": 1,
     "sourceId": "source-slot-b-run-b",
     "source": {
      "kind": "paste",
      "at": "2026-10-24T09:00:00.000Z"
     },
     "settings": {
      "timeUnit": "min",
      "responseLabel": "OD600",
      "window": [
       30,
       150
      ]
     },
     "readings": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "time": 30,
       "response": 0.14,
       "role": "sample"
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "time": 90,
       "response": 0.29,
       "role": "sample"
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "time": 150,
       "response": 0.61,
       "role": "sample"
      }
     ],
     "result": null
    },
    "context": {
     "origin": "measured",
     "responseUnit": "OD600",
     "basis": "1 cm cuvette, unblanked",
     "timeZero": null,
     "instrument": null,
     "geometry": null,
     "validRange": null,
     "calibration": null,
     "calibrationUncertainty": null,
     "processEvents": null,
     "sampleIds": {}
    }
   },
   "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
   "context": {
    "origin": "measured",
    "responseUnit": "OD600",
    "basis": "1 cm cuvette, unblanked",
    "timeZero": null,
    "instrument": null,
    "geometry": null,
    "validRange": null,
    "calibration": null,
    "calibrationUncertainty": null,
    "processEvents": null,
    "sampleIds": {}
   },
   "alignment": {
    "kind": "elapsed-from-declared-event",
    "anchorInSourceUnits": 30,
    "sourceTimeUnit": "min",
    "basis": "Inoculation at 30 min after pre-warm"
   }
  }
 },
 "cases": [
  {
   "id": "refuse-malformed-unknown-key",
   "kind": "refusal",
   "description": "The base comparison with one unknown top-level key, notes; everything else verifies.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "notes": "Unknown top-level key"
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "malformed-comparison-payload",
    "rule": "envelope: v 1, kind measured-comparison, known keys, a clean label"
   }
  },
  {
   "id": "refuse-malformed-kind",
   "kind": "refusal",
   "description": "The base comparison with kind measured-comparison-v0.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison-v0",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "malformed-comparison-payload",
    "rule": "envelope: v 1, kind measured-comparison, known keys, a clean label"
   }
  },
  {
   "id": "refuse-aggregate-bytes",
   "kind": "refusal",
   "description": "Two sources of 2,000 readings each (4,000 in all, within the reading bound), every reading excluded with a 480-character reason. Each source alone is a readable drybench.growth-review under its own 2,000,000-byte limit; the record together exceeds the comparison's 2,000,000-byte bound. Stored without its readings: expand by the rule, then check expandedSha256.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:9de59d264220a974dd4eff8ba82d385fd1ec6126f3be6944132bcecbaebb23ef"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         1999
        ]
       },
       "readings": [],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:3e7267ff77d642de34fc79b2d87d79d45d11cdc06b2563d17989a3b3f59c7c82",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:b64d881c264e3a0263a58b97450f9af9904d6fb6569f4b6b79c42d6104d7b469"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         1999
        ]
       },
       "readings": [],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:effa32d08b990d13e36fac99d832fe373887221ec962e1959a80dba8dbdc2e24",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation at 0 h"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "aggregate-byte-limit-exceeded",
    "rule": "the record exceeds 2000000 UTF-8 bytes",
    "perSourceUtf8Bytes": {
     "slotA": 1183357,
     "slotB": 1183359
    },
    "limitBytes": 2000000
   },
   "expand": [
    {
     "path": [
      "slotA",
      "imported",
      "growth",
      "readings"
     ],
     "count": 2000,
     "idPrefix": "a-",
     "template": {
      "response": 0.2,
      "role": "sample",
      "excluded": true,
      "exclusionReason": "Excluded on review: condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window conde"
     }
    },
    {
     "path": [
      "slotB",
      "imported",
      "growth",
      "readings"
     ],
     "count": 2000,
     "idPrefix": "b-",
     "template": {
      "response": 0.2,
      "role": "sample",
      "excluded": true,
      "exclusionReason": "Excluded on review: condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window condensation on the cuvette window conde"
     }
    }
   ],
   "expandedSha256": "sha256:f18a03ebb1e959f8b77c627b77ad2fab6cc3a07a2b0cd58bd8b5984f44d0969f",
   "expandedUtf8Bytes": 2367812,
   "expandedReadings": {
    "slotA": 2000,
    "slotB": 2000
   }
  },
  {
   "id": "refuse-aggregate-readings",
   "kind": "refusal",
   "description": "Source A with 2,001 readings and source B with 2,000: 4,001 in all. The combined bound (4,000) is twice the transport's per-source bound (2,000), so two readable sources can never exceed it; it is reached only when a source is itself over 2,000, and the combined count is checked before either source is read, so this code (whose message names both bounds) is given rather than invalid-growth-review-payload. Stored without its readings: expand by the rule, then check expandedSha256.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:e312fe394283ba683e3c2eb053da61c945f3d1e2061dcb66a1ad3ccf4f168c83"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2000
        ]
       },
       "readings": [],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:462902f2c008034383292cb362ccb12d6625f9821b61e3d6cbe07d66e0f9a9cb",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:ff18f11b942b3c8433b9a2e71be18524c4d7a3df3e7376a24687a3320b419ef4"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         1999
        ]
       },
       "readings": [],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:5d64ae86066a82e01c529bfc247a0913a6c5c872a48420df818f65fe63406364",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation at 0 h"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "aggregate-reading-limit-exceeded",
    "rule": "more than 4000 readings across the two sources, counted before either is read",
    "limitReadings": 4000,
    "perSourceLimitReadings": 2000
   },
   "expand": [
    {
     "path": [
      "slotA",
      "imported",
      "growth",
      "readings"
     ],
     "count": 2001,
     "idPrefix": "a-",
     "template": {
      "response": 0.2,
      "role": "sample"
     }
    },
    {
     "path": [
      "slotB",
      "imported",
      "growth",
      "readings"
     ],
     "count": 2000,
     "idPrefix": "b-",
     "template": {
      "response": 0.2,
      "role": "sample"
     }
    }
   ],
   "expandedSha256": "sha256:b51a5fb437d96de42e2580274c58bd9b65d5fb9cc98571b14720ee162808a301",
   "expandedUtf8Bytes": 299888,
   "expandedReadings": {
    "slotA": 2001,
    "slotB": 2000
   }
  },
  {
   "id": "refuse-invalid-growth-review-role",
   "kind": "refusal",
   "description": "Source A's second reading has role standard; its source and payload hashes are recomputed on the faulty record, so the transport reader is the only rule that fails.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:40dbef56b5f34e955d8a7f36baf465fae106059a1663077f6a3dce2fa74190c3"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "standard"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6ac5a86adfb35be0fcf7863746b445c70a053e28d4f86095649107b97641daec",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "invalid-growth-review-payload",
    "rule": "slotA: the imported file is not a valid drybench.growth-review v1"
   }
  },
  {
   "id": "refuse-invalid-growth-review-schema",
   "kind": "refusal",
   "description": "Source B's imported file names schema drybench.growth-review-v2.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review-v2",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:5955b326c14992f07b30f5618f4e10fad27646c998624faeb111b612d64c8fb3",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "invalid-growth-review-payload",
    "rule": "slotB: the imported file is not a valid drybench.growth-review v1"
   }
  },
  {
   "id": "refuse-source-input-hash",
   "kind": "refusal",
   "description": "Source A's first response changed from 0.15 to 0.65 after its source.inputHash and payloadHash were recorded. The record reads; verification refuses it. Creating a slot from this imported file refuses with the same code.",
   "operation": "verify",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.65,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "verify",
    "code": "source-input-hash-mismatch",
    "rule": "slotA: source.inputHash is not the hash of the growth input",
    "createSlot": {
     "slotA": "source-input-hash-mismatch",
     "slotB": "ok"
    }
   }
  },
  {
   "id": "refuse-payload-hash",
   "kind": "refusal",
   "description": "Source B's imported context (instrument) changed after its payloadHash was recorded; source.inputHash still matches the growth input. Verification refuses the pair; a slot created afresh from the file recomputes its payload hash and is accepted.",
   "operation": "verify",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": "Plate reader, second unit",
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "verify",
    "code": "source-input-hash-mismatch",
    "rule": "slotB: payloadHash is not the hash of the imported payload (analysisRef null)",
    "createSlot": {
     "slotA": "ok",
     "slotB": "ok"
    }
   }
  },
  {
   "id": "refuse-synthetic-downgrade",
   "kind": "refusal",
   "description": "Source B is the shipped synthetic textbook course (example and source kind synthetic, imported origin synthetic); its arrival context says measured.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Textbook course (synthetic)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:9fa37dd2f53e2d734cf66627a5bbe3a2c9ced0288ac4090f1e62bff827246bbd"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-textbook",
       "source": {
        "kind": "synthetic",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.1,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.2,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.4,
         "role": "sample"
        }
       ],
       "result": null,
       "example": "textbook-course"
      },
      "context": {
       "origin": "synthetic",
       "responseUnit": null,
       "basis": null,
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:ff41b968e9353902c21c95211e1e88109b45414a974832eca58b6390c5ddc118",
     "context": {
      "origin": "measured",
      "responseUnit": null,
      "basis": null,
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Synthetic start at 0 h"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "synthetic-origin-downgrade-refused",
    "rule": "slotB: a synthetic source keeps its synthetic origin"
   }
  },
  {
   "id": "refuse-alignment-unit",
   "kind": "refusal",
   "description": "Source A is in hours; its alignment declares minutes.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "min",
      "basis": "Mismatched unit"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "invalid-time-alignment-unit",
    "rule": "the alignment unit must be h or min and equal the source's unit (h)"
   }
  },
  {
   "id": "refuse-nonfinite-anchor",
   "kind": "refusal",
   "description": "Source A's third reading at 1e308 h with the anchor at -1e308 h: the elapsed time, exactly 2e308 h, exceeds the largest binary64 number. Witnesses recomputed on the record.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:c07136e5a7d9a119e20a4ce074735375613cc24bfcc31d1663aae7deeb14f43b"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         1e+308
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 1e+308,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:d5e0dc1f97d5d477400da79c0bed34f93b1eee4cfd551c006400dc76ceac90f6",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": -1e+308,
      "sourceTimeUnit": "h",
      "basis": "Overflow anchor"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "nonfinite-time-anchor",
    "rule": "an elapsed time is not finite in binary64",
    "exactElapsedHours": "200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/1"
   }
  },
  {
   "id": "refuse-blank-basis",
   "kind": "refusal",
   "description": "Source A's declared alignment has a basis of three spaces.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "   "
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "missing-time-alignment-basis",
    "rule": "a declared alignment needs a basis and the shared event label"
   }
  },
  {
   "id": "refuse-blank-shared-event",
   "kind": "refusal",
   "description": "Both alignments are declared with a basis, and the shared event label is blank.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "  ",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "missing-time-alignment-basis",
    "rule": "a declared alignment needs a basis and the shared event label"
   }
  },
  {
   "id": "reference-unavailable-input-schema",
   "kind": "reference-unavailable",
   "description": "The reference's input snapshot names bioreactor-simulator.scenario version 3; its hashes are correct. Code invalid-simulation-reference-schema: the reference is dropped and the two sources compare on [0, 2] h.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 3
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:357a2a35bc3a0a178d9956ba3087b11692d09289597dca1ab3bcc55d3ae7e252"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "unavailable",
     "code": "invalid-simulation-reference-schema",
     "claimedInputHash": "sha256:357a2a35bc3a0a178d9956ba3087b11692d09289597dca1ab3bcc55d3ae7e252",
     "claimedResultHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     2.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-unavailable"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": null,
    "simulationReferenceUnavailable": {
     "code": "invalid-simulation-reference-schema",
     "claimedInputHash": "sha256:357a2a35bc3a0a178d9956ba3087b11692d09289597dca1ab3bcc55d3ae7e252",
     "claimedResultHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
    },
    "unavailableRule": "input schema is not bioreactor-simulator.scenario v1 or v2"
   }
  },
  {
   "id": "reference-unavailable-missing-input",
   "kind": "reference-unavailable",
   "description": "The reference's result names a different input id from the input snapshot it travels with: the exact input set is missing. Code simulation-reference-hash-mismatch; dropped; the pair compares.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "0b5fcd7e-4a6c-4d8b-9e9f-2a3b4c5d6e7f"
      ],
      "contentHash": "sha256:0653c264946b9b182c0d57d1ce0ab541ea0be1800a9f02bf0d0c1f2d6373f94f"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "unavailable",
     "code": "simulation-reference-hash-mismatch",
     "claimedInputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "claimedResultHash": "sha256:0653c264946b9b182c0d57d1ce0ab541ea0be1800a9f02bf0d0c1f2d6373f94f"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     2.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-unavailable"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": null,
    "simulationReferenceUnavailable": {
     "code": "simulation-reference-hash-mismatch",
     "claimedInputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "claimedResultHash": "sha256:0653c264946b9b182c0d57d1ce0ab541ea0be1800a9f02bf0d0c1f2d6373f94f"
    },
    "unavailableRule": "the result does not name its exact input in the same scope"
   }
  },
  {
   "id": "reference-unavailable-time-origin",
   "kind": "reference-unavailable",
   "description": "The reference's t starts at 1 h, not 0. Code unsupported-simulation-reference-output; dropped; the pair compares; its alignment is checked against no times.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         1,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:3fbe6213c26efc9287a5d1612f6fbc61120ce0d2880dd32f4df71726b18505c4"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "unavailable",
     "code": "unsupported-simulation-reference-output",
     "claimedInputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "claimedResultHash": "sha256:3fbe6213c26efc9287a5d1612f6fbc61120ce0d2880dd32f4df71726b18505c4"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     2.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-unavailable"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": null,
    "simulationReferenceUnavailable": {
     "code": "unsupported-simulation-reference-output",
     "claimedInputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "claimedResultHash": "sha256:3fbe6213c26efc9287a5d1612f6fbc61120ce0d2880dd32f4df71726b18505c4"
    },
    "unavailableRule": "t must start at 0 and increase strictly"
   }
  },
  {
   "id": "reference-aligned-zero",
   "kind": "reference-alignment",
   "description": "A verified reference anchored at 0 h beside two aligned sources: its t maps to [0, 6, 12, 24] h and the common extent is the union [0, 24] h, not the sources' [0, 2] h.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     24.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedRationals": [
      "0/1",
      "6/1",
      "12/1",
      "24/1"
     ],
     "elapsedExactBinary64": [
      true,
      true,
      true,
      true
     ],
     "elapsedTolerance": [
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      24.0
     ]
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "reference-aligned-dyadic",
   "kind": "reference-alignment",
   "description": "Anchor 1.5 h: the reference maps to [-1.5, 4.5, 10.5, 22.5] h exactly in binary64; the union starts at -1.5 h.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 1.5,
      "sourceTimeUnit": "h",
      "basis": "Reference inoculated 1.5 h after its t = 0"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     -1.5,
     22.5
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 1.5,
      "sourceTimeUnit": "h",
      "basis": "Reference inoculated 1.5 h after its t = 0"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": [
      -1.5,
      4.5,
      10.5,
      22.5
     ],
     "elapsedRationals": [
      "-3/2",
      "9/2",
      "21/2",
      "45/2"
     ],
     "elapsedExactBinary64": [
      true,
      true,
      true,
      true
     ],
     "elapsedTolerance": [
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": [
      -1.5,
      22.5
     ]
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "reference-aligned-decimal",
   "kind": "reference-alignment",
   "description": "Anchor 0.1 h, which binary64 cannot hold: each elapsed time is the exact rational t - 1/10, compared within its stated tolerance.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0.1,
      "sourceTimeUnit": "h",
      "basis": "Reference inoculated 6 min after its t = 0"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     -0.1,
     23.9
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0.1,
      "sourceTimeUnit": "h",
      "basis": "Reference inoculated 6 min after its t = 0"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": [
      -0.1,
      5.9,
      11.9,
      23.9
     ],
     "elapsedRationals": [
      "-1/10",
      "59/10",
      "119/10",
      "239/10"
     ],
     "elapsedExactBinary64": [
      false,
      false,
      false,
      false
     ],
     "elapsedTolerance": [
      4.163336342344337e-17,
      2.67841304690819e-15,
      5.342948306008566e-15,
      1.0672018824209317e-14
     ],
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": [
      -0.1,
      23.9
     ]
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "reference-unresolved",
   "kind": "reference-alignment",
   "description": "A verified reference whose alignment is unresolved: drawn as context with no elapsed times, outside the common extent, which stays the sources' [0, 2] h.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "unresolved"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     2.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "unresolved"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": null,
     "elapsedRationals": null,
     "elapsedExactBinary64": null,
     "elapsedTolerance": null,
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": null
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "reference-sources-unaligned",
   "kind": "reference-alignment",
   "description": "Source B is unresolved, so time alignment is not established: no row and no reference point has an elapsed time and there is no common extent, although the reference's own alignment is declared.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "unresolved"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "not-established",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": null,
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "time-alignment-not-established",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": null,
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": null,
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": null,
       "rational": null,
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": null,
     "elapsedRationals": null,
     "elapsedExactBinary64": null,
     "elapsedTolerance": null,
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": null
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "reference-rq-undefined",
   "kind": "reference-alignment",
   "description": "The selected series is RQ, undefined at t = 0 where OUR is 0 and declared so: the value is null, the index is listed, and the other points are drawn.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "RQ"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     24.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "RQ",
     "seriesUnit": "mol/mol",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedRationals": [
      "0/1",
      "6/1",
      "12/1",
      "24/1"
     ],
     "elapsedExactBinary64": [
      true,
      true,
      true,
      true
     ],
     "elapsedTolerance": [
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "values": [
      null,
      1.0,
      1.05,
      1.1
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      24.0
     ]
    },
    "simulationReferenceUnavailable": null
   }
  },
  {
   "id": "refuse-reference-alignment-unit",
   "kind": "refusal",
   "description": "A verified reference whose alignment declares minutes: a simulation is in hours, so the record's alignment is malformed and the record is refused (the envelope boundary the CSO confirmed, SCI-184).",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "min",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "invalid-time-alignment-unit",
    "rule": "the alignment unit must be h or min and equal the source's unit (h)"
   }
  },
  {
   "id": "refuse-reference-blank-basis",
   "kind": "refusal",
   "description": "A verified reference whose declared alignment has an empty basis: refused as for a source.",
   "operation": "validate",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:6d4f7385ff1c09604508e62b0265a0d82880058483e6243772b5fe0d0ca9e6ce",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": ""
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": false,
    "stage": "validate",
    "code": "missing-time-alignment-basis",
    "rule": "a declared alignment needs a basis and the shared event label"
   }
  },
  {
   "id": "reference-with-assay-ref",
   "kind": "reference-alignment",
   "description": "Source A carries its Assay analysis reference and revision 3. Its payloadHash is the canonical hash of the imported payload with analysisRef set to null (and the revision kept), which differs from the whole payload's hash; the pair verifies by that rule alone.",
   "operation": "verify-and-project",
   "input": {
    "v": 1,
    "kind": "measured-comparison",
    "sharedEventLabel": "Inoculation (OD600 = 0.15)",
    "slotA": {
     "slotId": "slot-a",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run A (hours)",
       "analysisRef": "mine:assay/aaaaaaaa-1111-4111-8111-111111111111",
       "revision": 3,
       "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-a-run-a",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "h",
        "responseLabel": "OD600",
        "window": [
         0,
         2
        ]
       },
       "readings": [
        {
         "id": "a-1",
         "sourceRow": 1,
         "time": 0,
         "response": 0.15,
         "role": "sample"
        },
        {
         "id": "a-2",
         "sourceRow": 2,
         "time": 1,
         "response": 0.31,
         "role": "sample"
        },
        {
         "id": "a-3",
         "sourceRow": 3,
         "time": 2,
         "response": 0.64,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:2035e552f1583ee3d2ac922b4dca09686567de8c4b787a5d18a294fcfe4db415",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Inoculation recorded at 0 h in bench log"
     }
    },
    "slotB": {
     "slotId": "slot-b",
     "imported": {
      "schema": "drybench.growth-review",
      "v": 1,
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "source": {
       "label": "Run B (minutes)",
       "analysisRef": null,
       "revision": null,
       "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e"
      },
      "growth": {
       "v": 1,
       "sourceId": "source-slot-b-run-b",
       "source": {
        "kind": "paste",
        "at": "2026-10-24T09:00:00.000Z"
       },
       "settings": {
        "timeUnit": "min",
        "responseLabel": "OD600",
        "window": [
         30,
         150
        ]
       },
       "readings": [
        {
         "id": "b-1",
         "sourceRow": 1,
         "time": 30,
         "response": 0.14,
         "role": "sample"
        },
        {
         "id": "b-2",
         "sourceRow": 2,
         "time": 90,
         "response": 0.29,
         "role": "sample"
        },
        {
         "id": "b-3",
         "sourceRow": 3,
         "time": 150,
         "response": 0.61,
         "role": "sample"
        }
       ],
       "result": null
      },
      "context": {
       "origin": "measured",
       "responseUnit": "OD600",
       "basis": "1 cm cuvette, unblanked",
       "timeZero": null,
       "instrument": null,
       "geometry": null,
       "validRange": null,
       "calibration": null,
       "calibrationUncertainty": null,
       "processEvents": null,
       "sampleIds": {}
      }
     },
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "context": {
      "origin": "measured",
      "responseUnit": "OD600",
      "basis": "1 cm cuvette, unblanked",
      "timeZero": null,
      "instrument": null,
      "geometry": null,
      "validRange": null,
      "calibration": null,
      "calibrationUncertainty": null,
      "processEvents": null,
      "sampleIds": {}
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 30,
      "sourceTimeUnit": "min",
      "basis": "Inoculation at 30 min after pre-warm"
     }
    },
    "simulationReference": {
     "v": 1,
     "referenceRunRef": "mine:run/11111111-2222-4333-8444-555555555555",
     "inputSnapshot": {
      "id": "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "scopeId": "browser",
      "schema": {
       "id": "bioreactor-simulator.scenario",
       "version": 2
      },
      "source": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1
      },
      "payload": {
       "v": 2,
       "ex": "e-coli-batch@1"
      },
      "evidence": {
       "origin": "manual-assertion",
       "derivation": "raw",
       "execution": "planned"
      },
      "provenance": {},
      "capturedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:input:7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c",
      "schemaVersion": 1,
      "contentHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346"
     },
     "resultSnapshot": {
      "id": "8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "label": "Recorded reference simulation",
      "schema": {
       "id": "bioreactor-simulator.recorded-simulation",
       "version": 1
      },
      "settings": {
       "scenario": {
        "preset": "e-coli-batch@1"
       }
      },
      "output": {
       "origin": "simulation",
       "timeUnit": "h",
       "seriesUnits": {
        "X": "g/L",
        "S": "unit",
        "P": "unit",
        "V": "unit",
        "DOpct": "unit",
        "F": "unit",
        "mu": "unit",
        "OUR": "unit",
        "OTR": "unit",
        "CER": "unit",
        "RQ": "mol/mol",
        "kLa": "unit",
        "yO2out": "unit",
        "Cstar": "unit"
       },
       "run": {
        "horizon": 24,
        "t": [
         0,
         6,
         12,
         24
        ],
        "series": {
         "X": [
          0.1,
          0.4,
          1.6,
          6.4
         ],
         "S": [
          1,
          2,
          3,
          4
         ],
         "P": [
          1,
          2,
          3,
          4
         ],
         "V": [
          1,
          2,
          3,
          4
         ],
         "DOpct": [
          1,
          2,
          3,
          4
         ],
         "F": [
          1,
          2,
          3,
          4
         ],
         "mu": [
          1,
          2,
          3,
          4
         ],
         "OUR": [
          0,
          2,
          3,
          4
         ],
         "OTR": [
          1,
          2,
          3,
          4
         ],
         "CER": [
          1,
          2,
          3,
          4
         ],
         "RQ": [
          null,
          1,
          1.05,
          1.1
         ],
         "kLa": [
          1,
          2,
          3,
          4
         ],
         "yO2out": [
          1,
          2,
          3,
          4
         ],
         "Cstar": [
          1,
          2,
          3,
          4
         ]
        },
        "undefinedValues": [
         {
          "series": "RQ",
          "reason": "zero-oxygen-uptake",
          "indices": [
           0
          ]
         }
        ]
       }
      },
      "methods": [
       {
        "id": "unstructured-growth-model",
        "version": "2.0.0"
       },
       {
        "id": "modified-rosenbrock",
        "version": "1.1.0"
       }
      ],
      "dataVersions": [],
      "qualifications": [],
      "reporting": {
       "status": "qualified",
       "reasons": [
        "Simulation"
       ]
      },
      "provenance": {},
      "computedAt": "2026-10-24T09:00:00.000Z",
      "recordedAt": "2026-10-24T09:00:00.000Z",
      "key": "workspace:7:browser:result:8f3dab5c-2e4a-4b6f-9c7d-0e1f2a3b4c5d",
      "schemaVersion": 1,
      "scopeId": "browser",
      "workId": "9a4ebc6d-3f5b-4c7a-8d8e-1f2a3b4c5d6e",
      "workRev": 1,
      "app": "bioreactor-simulator",
      "stateRef": {
       "kind": "object",
       "ref": "mine:run/11111111-2222-4333-8444-555555555555",
       "rev": 1,
       "schema": {
        "id": "bioreactor-simulator.scenario",
        "version": 2
       }
      },
      "context": {},
      "inputIds": [
       "7e2c9a4b-1d3f-4a5e-8b6c-9d0e1f2a3b4c"
      ],
      "contentHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95"
     },
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X"
    }
   },
   "expected": {
    "ok": true,
    "pairVerified": true,
    "simulationReferenceStatus": {
     "status": "verified"
    },
    "method": {
     "id": "measured-comparison-time-alignment",
     "version": "1.0.0"
    },
    "timeAlignment": "elapsed-from-declared-event",
    "responseBasis": "separate-panels",
    "conversionApplied": false,
    "modelParametersChanged": false,
    "commonElapsedExtentHours": [
     0.0,
     24.0
    ],
    "qualificationCodes": [
     "raw-response-separate-axes",
     "elapsed-time-not-equivalence",
     "simulation-reference-qualification"
    ],
    "slotA": {
     "slotId": "slot-a",
     "origin": "measured",
     "sourceTimeUnit": "h",
     "inputHash": "sha256:0128fe82bc998798c63513a46d1a0d7b0dc4d7ed8eac3507c83b49eb3fd27003",
     "payloadHash": "sha256:2035e552f1583ee3d2ac922b4dca09686567de8c4b787a5d18a294fcfe4db415",
     "enteredTimeExtent": [
      0.0,
      2.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "a-1",
       "sourceRow": 1,
       "sourceTime": 0.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.15,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-2",
       "sourceRow": 2,
       "sourceTime": 1.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.31,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "a-3",
       "sourceRow": 3,
       "sourceTime": 2.0,
       "sourceTimeUnit": "h",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.64,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "slotB": {
     "slotId": "slot-b",
     "origin": "measured",
     "sourceTimeUnit": "min",
     "inputHash": "sha256:a294ba4c895209f9c19297e04363b4fe314aae460ece0c30c37168fca07d386e",
     "payloadHash": "sha256:b57f11c262effd792333dea6fa4e398d007c4aef5a0a9e2f2c8bc8ce2d4095c1",
     "enteredTimeExtent": [
      30.0,
      150.0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      2.0
     ],
     "rows": [
      {
       "id": "b-1",
       "sourceRow": 1,
       "sourceTime": 30.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 0.0,
       "rational": "0/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.14,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-2",
       "sourceRow": 2,
       "sourceTime": 90.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 1.0,
       "rational": "1/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.29,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      },
      {
       "id": "b-3",
       "sourceRow": 3,
       "sourceTime": 150.0,
       "sourceTimeUnit": "min",
       "elapsedHours": 2.0,
       "rational": "2/1",
       "exactBinary64": true,
       "tolerance": 0.0,
       "response": 0.61,
       "role": "sample",
       "excluded": false,
       "exclusionReason": null,
       "plotted": true,
       "hollow": false
      }
     ]
    },
    "simulationReference": {
     "label": "Recorded reference simulation",
     "preset": "e-coli-batch@1",
     "completedAt": "2026-10-24T09:00:00.000Z",
     "inputHash": "sha256:8120ba39e760ec68b75f18f11e0eb5ea9521953d9ce3b38f3638cc8db4397346",
     "outputHash": "sha256:39e43e7556b416be7781c4bfd2067d480308e1b0e53c28df1a88be4fb27c1f95",
     "alignment": {
      "kind": "elapsed-from-declared-event",
      "anchorInSourceUnits": 0,
      "sourceTimeUnit": "h",
      "basis": "Simulation t = 0 h at inoculation"
     },
     "selectedSeries": "X",
     "seriesUnit": "g/L",
     "t": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedHours": [
      0.0,
      6.0,
      12.0,
      24.0
     ],
     "elapsedRationals": [
      "0/1",
      "6/1",
      "12/1",
      "24/1"
     ],
     "elapsedExactBinary64": [
      true,
      true,
      true,
      true
     ],
     "elapsedTolerance": [
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "values": [
      0.1,
      0.4,
      1.6,
      6.4
     ],
     "undefinedRqIndices": [
      0
     ],
     "alignedElapsedExtentHours": [
      0.0,
      24.0
     ]
    },
    "simulationReferenceUnavailable": null,
    "wholePayloadHashSlotA": "sha256:fdfca80fb425fc1daef5a8d9bbac25d4d337836209a01882059f8a58d078a928"
   }
  }
 ]
}
