{
  "about": {
    "generatedBy": "pipeline/sequence-toolkit/primer_qualification_effective_salt.py",
    "scriptSha256": "95e5fd8d2ae37385f83dc664e9894b2d8f34b1f205b0e4dcc3cd83b7e72c8c16",
    "recordedOn": "2026-10-11",
    "oracle": "Independent Python saved-record contract; Biopython 1.88 numerical cross-check",
    "sourceFixture": {
      "path": "pipeline/sequence-toolkit/fixtures/primer-design-qualification-v2.json",
      "sha256": "15bc9c8cb50e4568f42a10cdd3d52eb88121d59826c73dfc9a2a24abbef3dd21"
    },
    "sourceDesigns": [
      "design-lac-mg",
      "design-lac-linear"
    ],
    "independentTmChecks": 4,
    "contract": "Default-expand/effective-select requested conditions only; compare retained normalized condition and correction claims literally. Do not recompute historical stored temperatures or inject missing historical metadata.",
    "boundary": "Reader consistency, not experimental validation or secondary-structure prediction."
  },
  "recordCases": [
    {
      "id": "mg-request-owczarzy-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Requested correction is effective-selected to Owczarzy 2008 at Mg 1.5 mM; both retained correction claims already say 2008 and remain byte-equivalent.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ]
    },
    {
      "id": "mg-request-omitted",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Requested correction is effective-selected to Owczarzy 2008 at Mg 1.5 mM; both retained correction claims already say 2008 and remain byte-equivalent.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ]
    },
    {
      "id": "mg-request-santalucia-1998",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "santalucia-1998"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "santalucia-1998"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Requested correction is effective-selected to Owczarzy 2008 at Mg 1.5 mM; both retained correction claims already say 2008 and remain byte-equivalent.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "santalucia-1998"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "santalucia-1998"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ]
    },
    {
      "id": "mg-request-owczarzy-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Requested correction is effective-selected to Owczarzy 2008 at Mg 1.5 mM; both retained correction claims already say 2008 and remain byte-equivalent.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ]
    },
    {
      "id": "mg-forward-retained-top-level-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-forward-retained-nested-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-forward-retained-both-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-forward-wrong-mg_mM",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained ionic conditions contradict the saved requested conditions; reject the complete pair."
    },
    {
      "id": "mg-forward-wrong-dntp_mM",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained ionic conditions contradict the saved requested conditions; reject the complete pair."
    },
    {
      "id": "mg-reverse-retained-top-level-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-reverse-retained-nested-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-reverse-retained-both-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained correction is a literal scientific claim, not a request. Re-normalizing it would hide this contradiction."
    },
    {
      "id": "mg-reverse-wrong-mg_mM",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained ionic conditions contradict the saved requested conditions; reject the complete pair."
    },
    {
      "id": "mg-reverse-wrong-dntp_mM",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Retained ionic conditions contradict the saved requested conditions; reject the complete pair."
    },
    {
      "id": "zero-mg-request-2008-retains-2004",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "With zero Mg the requested 2008 correction effective-selects 2004; both retained literal claims correctly say 2004.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ]
    },
    {
      "id": "zero-mg-forward-retained-top-level-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "zero-mg-forward-retained-nested-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "zero-mg-forward-retained-both-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "zero-mg-reverse-retained-top-level-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "zero-mg-reverse-retained-nested-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "zero-mg-reverse-retained-both-2008",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-linear",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "CCAGCCACGTTTCTGCGAAA",
            "tail": ""
          },
          "reverse": {
            "annealing": "TGCGCGAGAAGATTGTGCAC",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 0,
            "dntp_mM": 0,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2008"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 158,
              "end": 177,
              "length": 20
            },
            "reverse": {
              "strand": "-",
              "start": 428,
              "end": 409,
              "length": 20
            },
            "productId": "+:158:177|-:428:409",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.06462320381317,
              "lengthDeviation": 0.0,
              "deltaTm": 0.03260351198753142,
              "total": 0.09722671580070141
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 234,
              "validForward": 353,
              "validReverse": 291,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 0,
                "dntp_mM": 0,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2008"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 59.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 59.99861335790035,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2004",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2004"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              },
              "reverse": {
                "value": 59.96600984591282,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 0,
                  "dntp_mM": 0,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Monovalent correction: Owczarzy 2004, fitted at 69 mM to 1.02 M Na⁺. It is also used from 20 to 69 mM, an extrapolation whose error has not been established here: Owczarzy 2008 places typical PCR buffers (20 to 100 mM monovalent) where this equation applies.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": false,
      "reason": "Zero Mg requires an effective 2004 retained claim; never normalize an inconsistent retained 2008 claim into acceptance."
    },
    {
      "id": "historical-v1-magnesium-no-injection",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v1",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ]
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Historical v1 lacking retained temperatures remains unchanged; never recompute or inject a current block.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess",
            "saltCorrection": "owczarzy-2004"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v1",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess",
                "saltCorrection": "owczarzy-2004"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ]
          }
        }
      ]
    },
    {
      "id": "magnesium-historical-text-unchanged",
      "input": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Historical magnesium qualification as saved.",
                "outside": [
                  "Historical note as saved."
                ]
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ],
      "expectedAccepted": true,
      "reason": "Consistent retained conditions do not authorize rewriting saved qualification text or temperatures.",
      "expectedRead": [
        {
          "v": 1,
          "id": "effective-salt-design-lac-mg",
          "label": "Independent effective-salt reader example",
          "createdAt": "2026-10-11T00:00:00.000Z",
          "notes": "",
          "forward": {
            "annealing": "AAACGCGGGAAAAAGTGG",
            "tail": ""
          },
          "reverse": {
            "annealing": "GGTCATCCAGCGGATAGTTA",
            "tail": ""
          },
          "conditions": {
            "oligo_nM": 250,
            "na_mM": 50,
            "mg_mM": 1.5,
            "dntp_mM": 0.2,
            "model": "primer-excess"
          },
          "witness": {
            "templateHash": "fd182829946e68ba90d7c14906883ef31f663537dade5f617f804b8ce46dc316",
            "templateLength": 600,
            "topology": "linear",
            "coordinates": "1-based-inclusive-5prime-to-3prime",
            "forward": {
              "strand": "+",
              "start": 176,
              "end": 193,
              "length": 18
            },
            "reverse": {
              "strand": "-",
              "start": 469,
              "end": 450,
              "length": 20
            },
            "productId": "+:176:193|-:469:450",
            "method": "exact-pair-v1"
          },
          "design": {
            "method": "bounded-flanks-v2",
            "target": {
              "start": 201,
              "end": 400
            },
            "capped": true,
            "ranking": {
              "tmDeviation": 0.3746413561051156,
              "lengthDeviation": 0.4,
              "deltaTm": 0.0405300140981808,
              "total": 0.8151713702032964
            },
            "counts": {
              "windows": 918,
              "boundary": 0,
              "excluded": 0,
              "gc": 40,
              "tm": 507,
              "validForward": 141,
              "validReverse": 230,
              "productSize": 0,
              "deltaTm": 0,
              "eligiblePairs": 576,
              "exactChecked": 5,
              "exactRefused": 0
            },
            "settings": {
              "target": {
                "start": 201,
                "end": 400
              },
              "excluded": [],
              "forwardTail": "",
              "reverseTail": "",
              "conditions": {
                "oligo_nM": 250,
                "na_mM": 50,
                "mg_mM": 1.5,
                "dntp_mM": 0.2,
                "model": "primer-excess"
              },
              "flank": 50,
              "minLength": 18,
              "maxLength": 26,
              "targetLength": 20,
              "minTm": 55,
              "maxTm": 68,
              "targetTm": 60.95,
              "maxDeltaTm": 3,
              "minGc": 30,
              "maxGc": 70,
              "minProduct": 180,
              "maxProduct": 420
            },
            "structures": [
              {
                "kind": "forward hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse hairpin",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "forward self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "reverse self-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              },
              {
                "kind": "cross-dimer",
                "evaluated": false,
                "dG37": null,
                "detail": "Not evaluated in this hand-authored reader-contract example."
              }
            ],
            "limitations": [
              "Reader-contract fixture: no secondary structure calculation is represented."
            ],
            "temperatures": {
              "forward": {
                "value": 61.15758568510165,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Historical magnesium qualification as saved.",
                "outside": [
                  "Historical note as saved."
                ]
              },
              "reverse": {
                "value": 61.11705567100347,
                "method": "oligo-tm-nearest-neighbour",
                "version": "1.0.0",
                "saltCorrection": "owczarzy-2008",
                "conditions": {
                  "oligo_nM": 250,
                  "na_mM": 50,
                  "k_mM": 0,
                  "tris_mM": 0,
                  "mg_mM": 1.5,
                  "dntp_mM": 0.2,
                  "model": "primer-excess",
                  "saltCorrection": "owczarzy-2008"
                },
                "limit": "Magnesium correction: Owczarzy 2008. Its free Mg²⁺ range, recalled as 0.5 to 600 mM, is Unverified: not yet checked against Owczarzy 2008.",
                "outside": []
              }
            }
          }
        }
      ]
    }
  ]
}
