{
  "cycles": 3,
  "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
  "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
  "records": [
    {
      "checks": [
        {
          "detail": "class 'OBSERVED'",
          "id": "c1-B-binds.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c1-B-binds.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m1-B']",
          "id": "c1-B-binds.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c1-B-binds.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c1-B-binds.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c1-B-binds.metric_matches",
          "ok": true
        },
        {
          "detail": "m1-B=42.0 vs < 100.0 (tol 0.0)",
          "id": "c1-B-binds.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c1-B-binds.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'OBSERVED'",
          "id": "c1-A-weak.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c1-A-weak.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m1-A']",
          "id": "c1-A-weak.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c1-A-weak.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c1-A-weak.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c1-A-weak.metric_matches",
          "ok": true
        },
        {
          "detail": "m1-A=850.0 vs > 500.0 (tol 0.0)",
          "id": "c1-A-weak.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c1-A-weak.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'OBSERVED'",
          "id": "c1-C-weak.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c1-C-weak.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m1-C']",
          "id": "c1-C-weak.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c1-C-weak.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c1-C-weak.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c1-C-weak.metric_matches",
          "ok": true
        },
        {
          "detail": "m1-C=1200.0 vs > 500.0 (tol 0.0)",
          "id": "c1-C-weak.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c1-C-weak.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'UNVERIFIED'",
          "id": "c1-hyp-loop.class",
          "ok": true
        },
        {
          "detail": "every measurement accounted for",
          "id": "cycle.no_silent_drops",
          "ok": true
        },
        {
          "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
          "id": "cycle.raw_data_kept",
          "ok": true
        },
        {
          "detail": "based on ['c1-B-binds', 'c1-hyp-loop']",
          "id": "revision.basis_exists",
          "ok": true
        },
        {
          "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
          "id": "revision.evidential",
          "ok": true
        },
        {
          "detail": "",
          "id": "revision.no_counterfactual",
          "ok": true
        },
        {
          "detail": "the revision must use what this cycle produced (or a derivation over it)",
          "id": "revision.uses_this_cycle",
          "ok": true
        }
      ],
      "created_at": "2026-11-12T07:59:12Z",
      "engine": "a75-003/1.0.0",
      "extra": {
        "by_class": {
          "COUNTERFACTUAL": 0,
          "DERIVED": 0,
          "OBSERVED": 3,
          "UNVERIFIED": 1,
          "VERIFIED": 0
        },
        "claims": 4,
        "cycle": 1,
        "measurements": 4
      },
      "failed": [],
      "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
      "prev_record_hash": "1c9f5c185b0f3a015b6987c0e697141cda60b56d981a1693556e3e691408ef45",
      "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
      "record_hash": "ad2e79e40b7adbe7de8f2da7355d002127c1eec43a9606bcc1d3c111cfa60c7f",
      "schema": "cain42.a75.discovery.record.v1",
      "signature_b64": "T3UXxo7vOjrh9M6yssAqe7JCFr1aocgUppeUXoaGHaMU1ZT8FdFdR7HOU4xi2iaWpyUTMhsH8FjT0YWpkGZZDw==",
      "sku": "CAIN-A75-003",
      "subject": {
        "agent": "agent:discovery-1",
        "campaign": "aptamer-screen-7",
        "claims": [
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 100
            },
            "class": "OBSERVED",
            "id": "c1-B-binds",
            "measurements": [
              "m1-B"
            ],
            "text": "candidate B binds (Kd < 100 nM)"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-A-weak",
            "measurements": [
              "m1-A"
            ],
            "text": "candidate A is weak"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-C-weak",
            "measurements": [
              "m1-C"
            ],
            "text": "candidate C is weak"
          },
          {
            "class": "UNVERIFIED",
            "id": "c1-hyp-loop",
            "text": "the stem-loop motif may drive binding"
          }
        ],
        "cycle": 1,
        "exclusions": [
          {
            "measurement": "m1-D",
            "reason": "sensor chip saturated; rerun scheduled"
          }
        ],
        "measurements": [
          {
            "cycle": 1,
            "id": "m1-A",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "87d14ecdab220d71e4f78eb31857d151b708bcbcb6596597061d32f820e2d7e8",
            "value": 850.0
          },
          {
            "cycle": 1,
            "id": "m1-B",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "48b707a09c8e5eb4f610b65d3110aed4d2bd6537066d17ae6efbf7c5b961439f",
            "value": 42.0
          },
          {
            "cycle": 1,
            "id": "m1-C",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "6930edc8e632d3c018a858b2da248645f1224295f7c514e65de494885d8de1e9",
            "value": 1200.0
          },
          {
            "cycle": 1,
            "id": "m1-D",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "41db4271794b0d849acf15a8afec3c5212e806572656d0a8deb1f8ea98314f1f",
            "value": 9999.0
          }
        ],
        "prior_claims": [],
        "revision": {
          "based_on": [
            "c1-B-binds",
            "c1-hyp-loop"
          ],
          "next": "confirm B on a second instrument; test two loop variants"
        },
        "schema": "cain42.a75.discovery.cycle.v1"
      },
      "subject_sha256": "cae4bb38168955922c7767998502a6e2193113f71daafde906fed6f07b8761fb",
      "verdict": "SUPPORTED"
    },
    {
      "checks": [
        {
          "detail": "class 'VERIFIED'",
          "id": "c2-B-verified.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c2-B-verified.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m2-B-spr', 'm2-B-bli']",
          "id": "c2-B-verified.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c2-B-verified.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c2-B-verified.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c2-B-verified.metric_matches",
          "ok": true
        },
        {
          "detail": "m2-B-spr=40.0; m2-B-bli=46.0 vs < 100.0 (tol 5.0)",
          "id": "c2-B-verified.assertion_holds",
          "ok": true
        },
        {
          "detail": "VERIFIED needs >= 2 measurements from different instruments, or a named non-agent verifier",
          "id": "c2-B-verified.independent_sources",
          "ok": true
        },
        {
          "detail": "spread 6 vs 2x tolerance 10",
          "id": "c2-B-verified.replicates_agree",
          "ok": true
        },
        {
          "detail": "class 'OBSERVED'",
          "id": "c2-V1-binds.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c2-V1-binds.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m2-V1']",
          "id": "c2-V1-binds.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c2-V1-binds.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c2-V1-binds.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c2-V1-binds.metric_matches",
          "ok": true
        },
        {
          "detail": "m2-V1=18.0 vs < 50.0 (tol 0.0)",
          "id": "c2-V1-binds.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c2-V1-binds.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'OBSERVED'",
          "id": "c2-V2-worse.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c2-V2-worse.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m2-V2']",
          "id": "c2-V2-worse.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c2-V2-worse.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c2-V2-worse.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c2-V2-worse.metric_matches",
          "ok": true
        },
        {
          "detail": "m2-V2=310.0 vs > 100.0 (tol 0.0)",
          "id": "c2-V2-worse.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c2-V2-worse.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'COUNTERFACTUAL'",
          "id": "c2-what-if.class",
          "ok": true
        },
        {
          "detail": "a counterfactual is not an observation",
          "id": "c2-what-if.no_measurement_refs",
          "ok": true
        },
        {
          "detail": "every measurement accounted for",
          "id": "cycle.no_silent_drops",
          "ok": true
        },
        {
          "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
          "id": "cycle.raw_data_kept",
          "ok": true
        },
        {
          "detail": "based on ['c2-B-verified', 'c2-V1-binds']",
          "id": "revision.basis_exists",
          "ok": true
        },
        {
          "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
          "id": "revision.evidential",
          "ok": true
        },
        {
          "detail": "",
          "id": "revision.no_counterfactual",
          "ok": true
        },
        {
          "detail": "the revision must use what this cycle produced (or a derivation over it)",
          "id": "revision.uses_this_cycle",
          "ok": true
        }
      ],
      "created_at": "2026-11-12T07:59:12Z",
      "engine": "a75-003/1.0.0",
      "extra": {
        "by_class": {
          "COUNTERFACTUAL": 1,
          "DERIVED": 0,
          "OBSERVED": 2,
          "UNVERIFIED": 0,
          "VERIFIED": 1
        },
        "claims": 4,
        "cycle": 2,
        "measurements": 4
      },
      "failed": [],
      "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
      "prev_record_hash": "ad2e79e40b7adbe7de8f2da7355d002127c1eec43a9606bcc1d3c111cfa60c7f",
      "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
      "record_hash": "9a4f37fcd6a9a45eb2f595abee4fe80d46cd6c1759b0198b9b3b21ec46e8597d",
      "schema": "cain42.a75.discovery.record.v1",
      "signature_b64": "ROkWA09XpwFfBeHaZ2liP7wTqWGLbzFf0g4MCBAtProHhYLV8Sgi65SaTOiGoudTULt5Emtql3M0QzdtFJpiBw==",
      "sku": "CAIN-A75-003",
      "subject": {
        "agent": "agent:discovery-1",
        "campaign": "aptamer-screen-7",
        "claims": [
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 5,
              "value": 100
            },
            "class": "VERIFIED",
            "id": "c2-B-verified",
            "measurements": [
              "m2-B-spr",
              "m2-B-bli"
            ],
            "text": "B binds on two instruments"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 50
            },
            "class": "OBSERVED",
            "id": "c2-V1-binds",
            "measurements": [
              "m2-V1"
            ],
            "text": "loop variant V1 binds tighter"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 100
            },
            "class": "OBSERVED",
            "id": "c2-V2-worse",
            "measurements": [
              "m2-V2"
            ],
            "text": "variant V2 lost binding"
          },
          {
            "class": "COUNTERFACTUAL",
            "id": "c2-what-if",
            "text": "had we kept the original loop, V1 would not exist"
          }
        ],
        "cycle": 2,
        "exclusions": [],
        "measurements": [
          {
            "cycle": 2,
            "id": "m2-B-spr",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "29c2be809555ae2098a5a5e9b05c36e828f6a7ba5706c1b3856fba59db0005b2",
            "value": 40.0
          },
          {
            "cycle": 2,
            "id": "m2-B-bli",
            "instrument": "bli-1",
            "metric": "kd_nM",
            "raw_sha256": "6e8851bf8715778b67eb36d8edc84f5ed711a69f379be9787c188789c9d407bf",
            "value": 46.0
          },
          {
            "cycle": 2,
            "id": "m2-V1",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "621cd8904210056860dce61bdd40d653dc10be7fdc25add3e93a6cac704f706c",
            "value": 18.0
          },
          {
            "cycle": 2,
            "id": "m2-V2",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "864c4e5657cf49974212be40489a352c19fca538553434583c51aa90556534d6",
            "value": 310.0
          }
        ],
        "prior_claims": [
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 100
            },
            "class": "OBSERVED",
            "id": "c1-B-binds",
            "measurements": [
              "m1-B"
            ],
            "text": "candidate B binds (Kd < 100 nM)"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-A-weak",
            "measurements": [
              "m1-A"
            ],
            "text": "candidate A is weak"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-C-weak",
            "measurements": [
              "m1-C"
            ],
            "text": "candidate C is weak"
          },
          {
            "class": "UNVERIFIED",
            "id": "c1-hyp-loop",
            "text": "the stem-loop motif may drive binding"
          }
        ],
        "revision": {
          "based_on": [
            "c2-B-verified",
            "c2-V1-binds"
          ],
          "next": "explore around V1"
        },
        "schema": "cain42.a75.discovery.cycle.v1"
      },
      "subject_sha256": "59fb014e878717416ed997286441385f9a0acb4819a1e50dce46330f06f77e87",
      "verdict": "SUPPORTED"
    },
    {
      "checks": [
        {
          "detail": "class 'OBSERVED'",
          "id": "c3-V1a-binds.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c3-V1a-binds.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m3-V1a']",
          "id": "c3-V1a-binds.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c3-V1a-binds.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c3-V1a-binds.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c3-V1a-binds.metric_matches",
          "ok": true
        },
        {
          "detail": "m3-V1a=12.0 vs < 15.0 (tol 0.0)",
          "id": "c3-V1a-binds.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c3-V1a-binds.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'OBSERVED'",
          "id": "c3-V1b-binds.class",
          "ok": true
        },
        {
          "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
          "id": "c3-V1b-binds.assertion",
          "ok": true
        },
        {
          "detail": "cites ['m3-V1b']",
          "id": "c3-V1b-binds.measurements_exist",
          "ok": true
        },
        {
          "detail": "observed and verified claims cite this cycle's measurements",
          "id": "c3-V1b-binds.same_cycle",
          "ok": true
        },
        {
          "detail": "every cited measurement needs the SHA-256 of its raw data",
          "id": "c3-V1b-binds.raw_data_hash",
          "ok": true
        },
        {
          "detail": "claim metric 'kd_nM'",
          "id": "c3-V1b-binds.metric_matches",
          "ok": true
        },
        {
          "detail": "m3-V1b=21.0 vs < 50.0 (tol 0.0)",
          "id": "c3-V1b-binds.assertion_holds",
          "ok": true
        },
        {
          "detail": "an OBSERVED claim cites exactly one measurement",
          "id": "c3-V1b-binds.one_measurement",
          "ok": true
        },
        {
          "detail": "class 'DERIVED'",
          "id": "c3-best.class",
          "ok": true
        },
        {
          "detail": "derived from ['c3-V1a-binds', 'c3-V1b-binds', 'c2-V1-binds']",
          "id": "c3-best.sources_exist",
          "ok": true
        },
        {
          "detail": "",
          "id": "c3-best.no_counterfactual_source",
          "ok": true
        },
        {
          "detail": "a derivation needs at least one evidential source",
          "id": "c3-best.no_unverified_only",
          "ok": true
        },
        {
          "detail": "name the computation",
          "id": "c3-best.method_named",
          "ok": true
        },
        {
          "detail": "derivation must not cite itself",
          "id": "c3-best.acyclic",
          "ok": true
        },
        {
          "detail": "every measurement accounted for",
          "id": "cycle.no_silent_drops",
          "ok": true
        },
        {
          "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
          "id": "cycle.raw_data_kept",
          "ok": true
        },
        {
          "detail": "based on ['c3-best']",
          "id": "revision.basis_exists",
          "ok": true
        },
        {
          "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
          "id": "revision.evidential",
          "ok": true
        },
        {
          "detail": "",
          "id": "revision.no_counterfactual",
          "ok": true
        },
        {
          "detail": "the revision must use what this cycle produced (or a derivation over it)",
          "id": "revision.uses_this_cycle",
          "ok": true
        }
      ],
      "created_at": "2026-11-12T07:59:12Z",
      "engine": "a75-003/1.0.0",
      "extra": {
        "by_class": {
          "COUNTERFACTUAL": 0,
          "DERIVED": 1,
          "OBSERVED": 2,
          "UNVERIFIED": 0,
          "VERIFIED": 0
        },
        "claims": 3,
        "cycle": 3,
        "measurements": 2
      },
      "failed": [],
      "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
      "prev_record_hash": "9a4f37fcd6a9a45eb2f595abee4fe80d46cd6c1759b0198b9b3b21ec46e8597d",
      "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
      "record_hash": "0b1443ea29cb703a06ef1eb9a0e3f51118d1701facb33cbebf241f0df89e3ee1",
      "schema": "cain42.a75.discovery.record.v1",
      "signature_b64": "X7MuHLnSYzerK8BFxOf19Pu/8SE9CBll5jmiGc2iMrbHmNmg+AqoRiiqvrkoJsIhXn22j/+NlfxaX4iuLEFbDg==",
      "sku": "CAIN-A75-003",
      "subject": {
        "agent": "agent:discovery-1",
        "campaign": "aptamer-screen-7",
        "claims": [
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 15
            },
            "class": "OBSERVED",
            "id": "c3-V1a-binds",
            "measurements": [
              "m3-V1a"
            ],
            "text": "V1a is the tightest so far"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 50
            },
            "class": "OBSERVED",
            "id": "c3-V1b-binds",
            "measurements": [
              "m3-V1b"
            ],
            "text": "V1b also binds"
          },
          {
            "class": "DERIVED",
            "from": [
              "c3-V1a-binds",
              "c3-V1b-binds",
              "c2-V1-binds"
            ],
            "id": "c3-best",
            "method": "rank by measured Kd",
            "text": "V1a is the best candidate"
          }
        ],
        "cycle": 3,
        "exclusions": [],
        "measurements": [
          {
            "cycle": 3,
            "id": "m3-V1a",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "597f68cb0601359d37882d28221de2742a3084e02659112aedd4a2cfbf2a65d6",
            "value": 12.0
          },
          {
            "cycle": 3,
            "id": "m3-V1b",
            "instrument": "spr-1",
            "metric": "kd_nM",
            "raw_sha256": "cbbc2d2a5303b84402cf660bdd33b2456e3e53c888c1799d4f4cc154748edb56",
            "value": 21.0
          }
        ],
        "prior_claims": [
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 100
            },
            "class": "OBSERVED",
            "id": "c1-B-binds",
            "measurements": [
              "m1-B"
            ],
            "text": "candidate B binds (Kd < 100 nM)"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-A-weak",
            "measurements": [
              "m1-A"
            ],
            "text": "candidate A is weak"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 500
            },
            "class": "OBSERVED",
            "id": "c1-C-weak",
            "measurements": [
              "m1-C"
            ],
            "text": "candidate C is weak"
          },
          {
            "class": "UNVERIFIED",
            "id": "c1-hyp-loop",
            "text": "the stem-loop motif may drive binding"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 5,
              "value": 100
            },
            "class": "VERIFIED",
            "id": "c2-B-verified",
            "measurements": [
              "m2-B-spr",
              "m2-B-bli"
            ],
            "text": "B binds on two instruments"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": "<",
              "tolerance": 0,
              "value": 50
            },
            "class": "OBSERVED",
            "id": "c2-V1-binds",
            "measurements": [
              "m2-V1"
            ],
            "text": "loop variant V1 binds tighter"
          },
          {
            "assert": {
              "metric": "kd_nM",
              "op": ">",
              "tolerance": 0,
              "value": 100
            },
            "class": "OBSERVED",
            "id": "c2-V2-worse",
            "measurements": [
              "m2-V2"
            ],
            "text": "variant V2 lost binding"
          },
          {
            "class": "COUNTERFACTUAL",
            "id": "c2-what-if",
            "text": "had we kept the original loop, V1 would not exist"
          }
        ],
        "revision": {
          "based_on": [
            "c3-best"
          ],
          "next": "scale up V1a for orthogonal assays"
        },
        "schema": "cain42.a75.discovery.cycle.v1"
      },
      "subject_sha256": "a854741865d4d62784442d72217a3221bcf9f3c4f76d4c05c4da81c6919efdea",
      "verdict": "SUPPORTED"
    }
  ],
  "run_hash": "2201e4e5369e2509856d855af59ed0eeb82d62e3722f208c0ee60b8fcb8e8553",
  "schema": "cain42.a75.discovery.run.v1",
  "sku": "CAIN-A75-003",
  "verdict": "SUPPORTED",
  "verdicts": [
    "SUPPORTED",
    "SUPPORTED",
    "SUPPORTED"
  ]
}
