[object Object]

← back to Sanderson Onboard

TK-10873 cycle3 Cody-hardening: restore-map is a labeled TEMPLATE (not a populated map), add our_price deviation cross-check (22 rows, 0 flagged), honest validation-scope in sanity report (68 invariant-validated / 238 legibility-only), id-resolution disclosure; +13 tests (41/41)

55fb121d0730d8af7859bdedbbf32a79dc581a0e · 2026-08-30 09:44:09 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 55fb121d0730d8af7859bdedbbf32a79dc581a0e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Aug 30 09:44:09 2026 -0700

    TK-10873 cycle3 Cody-hardening: restore-map is a labeled TEMPLATE (not a populated map), add our_price deviation cross-check (22 rows, 0 flagged), honest validation-scope in sanity report (68 invariant-validated / 238 legibility-only), id-resolution disclosure; +13 tests (41/41)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 tk10873/reprice_lib.mjs             |   43 +-
 tk10873/reprice_runbook_dryrun.json | 2624 ++++++++++++++++++++++-------------
 tk10873/reprice_sanity.json         |   14 +-
 tk10873/reprice_sanity.md           |   16 +-
 tk10873/reprice_sanity.mjs          |   39 +-
 tk10873/test_reprice.mjs            |   24 +-
 6 files changed, 1749 insertions(+), 1011 deletions(-)

diff --git a/tk10873/reprice_lib.mjs b/tk10873/reprice_lib.mjs
index 45a8f72..3950fd8 100644
--- a/tk10873/reprice_lib.mjs
+++ b/tk10873/reprice_lib.mjs
@@ -37,16 +37,45 @@ export function buildWouldRun(dw_sku, price) {
   };
 }
 
-// The shape of the pre-write snapshot the FUTURE live tool MUST capture BEFORE it
-// writes, so the reprice is reversible (restore old_price on every variant it touched).
-export function restoreMapSchema() {
+// A TEMPLATE (not a populated rollback map) describing the pre-write snapshot the FUTURE
+// gated live tool MUST capture BEFORE it writes, so the reprice is reversible. IMPORTANT:
+// this dry-run CANNOT read live prices/ids, so old_price + variant_id here are TEMPLATE
+// MARKERS, not real values — the dryrun JSON is NOT a usable rollback map on its own. The
+// live tool is responsible for reading current variant.price + resolving the real variant
+// id FIRST and materialising a populated restore map from this template. `_template:true`
+// makes that unmistakable to any consumer.
+export function restoreMapTemplate() {
   return {
-    product_id: 'gid://shopify/Product/PRODUCT_ID',
-    variant_id: VARIANT_ID_PLACEHOLDER,
-    old_price: 'CAPTURE_LIVE_BEFORE_WRITE', // read the current variant.price first
-    new_price: 'proposed_sellable_price',   // the value this runbook proposes
+    _template: true,
+    _warning: 'NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write',
+    product_id: '<TEMPLATE: resolve live product id>',
+    variant_id: '<TEMPLATE: resolve live sellable variant id — unproven in dry-run>',
+    old_price: '<TEMPLATE: read current variant.price BEFORE write>',
+    new_price: 'proposed_sellable_price',   // the value this runbook proposes (real, top-level in the record)
   };
 }
+// Back-compat alias (older name).
+export const restoreMapSchema = restoreMapTemplate;
+
+// The live tool must resolve AND verify a UNIQUE sellable variant per dw_sku before writing.
+// The dry-run uses a placeholder id and therefore does NOT prove id-resolution succeeds or
+// that exactly one sellable variant exists per product. Surfaced so no one treats the
+// dry-run as proof the live write will bind to the right variant.
+export const ID_RESOLUTION_DISCLOSURE =
+  'variant-id resolution is UNPROVEN by this dry-run (placeholder id); the live tool must resolve + verify a unique sellable variant per dw_sku.';
+
+// Provenance cross-check for retail-harvest-backed rows that have an independently-computed
+// our_price (= trade/0.65/0.85). A sharp divergence between the proposed retail and our_price
+// is a scraper-unit-error signal (e.g. a yard price posted as a roll price). Pure, null-safe.
+// Returns a WARN reason string or null. Only meaningful where our_price is present (~24 rows).
+export function ourPriceDeviationWarn(proposed, ourPrice, pct = 0.15) {
+  const p = Number(proposed), o = Number(ourPrice);
+  if (!Number.isFinite(p) || !Number.isFinite(o) || o <= 0) return null;
+  const dev = Math.abs(p - o) / o;
+  return dev > pct
+    ? `proposed $${p.toFixed(2)} deviates ${(dev * 100).toFixed(0)}% from our_price $${o.toFixed(2)} (>${(pct * 100).toFixed(0)}% — possible scraper unit error)`
+    : null;
+}
 
 // Classify a single proposed price against the sanity rules. Pure — no side effects.
 // Inputs: proposed (number), sample (number), tradeFloor (number|null — staged_trade
diff --git a/tk10873/reprice_runbook_dryrun.json b/tk10873/reprice_runbook_dryrun.json
index abcb11c..8648b16 100644
--- a/tk10873/reprice_runbook_dryrun.json
+++ b/tk10873/reprice_runbook_dryrun.json
@@ -21,9 +21,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -49,9 +51,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -77,9 +81,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -105,9 +111,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -133,9 +141,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -161,9 +171,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -189,9 +201,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -217,9 +231,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -245,9 +261,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -273,9 +291,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -301,9 +321,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -329,9 +351,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -357,9 +381,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -385,9 +411,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -413,9 +441,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -441,9 +471,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -469,9 +501,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -497,9 +531,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -525,9 +561,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -553,9 +591,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -581,9 +621,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -609,9 +651,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -637,9 +681,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -665,9 +711,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -693,9 +741,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -721,9 +771,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -749,9 +801,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -777,9 +831,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -805,9 +861,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -833,9 +891,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -861,9 +921,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -889,9 +951,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -917,9 +981,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -945,9 +1011,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -973,9 +1041,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1001,9 +1071,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1029,9 +1101,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1057,9 +1131,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1085,9 +1161,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1113,9 +1191,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1141,9 +1221,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1169,9 +1251,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1197,9 +1281,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1225,9 +1311,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1253,9 +1341,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1281,9 +1371,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1309,9 +1401,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1337,9 +1431,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1365,9 +1461,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1393,9 +1491,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1421,9 +1521,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1449,9 +1551,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1477,9 +1581,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1505,9 +1611,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1533,9 +1641,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1561,9 +1671,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1589,9 +1701,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1617,9 +1731,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1645,9 +1761,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1673,9 +1791,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1701,9 +1821,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1729,9 +1851,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1757,9 +1881,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1785,9 +1911,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1813,9 +1941,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1841,9 +1971,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1869,9 +2001,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1897,9 +2031,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1925,9 +2061,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1953,9 +2091,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -1981,9 +2121,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2009,9 +2151,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2037,9 +2181,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2065,9 +2211,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2093,9 +2241,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2121,9 +2271,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2149,9 +2301,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2177,9 +2331,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2205,9 +2361,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2233,9 +2391,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2261,9 +2421,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2289,9 +2451,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2317,9 +2481,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2345,9 +2511,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2373,9 +2541,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2401,9 +2571,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2429,9 +2601,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2457,9 +2631,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2485,9 +2661,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2513,9 +2691,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2541,9 +2721,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2569,9 +2751,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2597,9 +2781,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2625,9 +2811,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2653,9 +2841,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2681,9 +2871,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2709,9 +2901,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2737,9 +2931,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2765,9 +2961,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2793,9 +2991,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2821,9 +3021,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2849,9 +3051,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2877,9 +3081,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2905,9 +3111,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2933,9 +3141,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2961,9 +3171,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -2989,9 +3201,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3017,9 +3231,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3045,9 +3261,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3073,9 +3291,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3101,9 +3321,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3129,9 +3351,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3157,9 +3381,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3185,9 +3411,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3213,9 +3441,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3241,9 +3471,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3269,9 +3501,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3297,9 +3531,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3325,9 +3561,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3353,9 +3591,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3381,9 +3621,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3409,9 +3651,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3437,9 +3681,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3465,9 +3711,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3493,9 +3741,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3521,9 +3771,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3549,9 +3801,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3577,9 +3831,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3605,9 +3861,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3633,9 +3891,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3661,9 +3921,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3689,9 +3951,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3717,9 +3981,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3745,9 +4011,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3773,9 +4041,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3801,9 +4071,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3829,9 +4101,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3857,9 +4131,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3885,9 +4161,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3913,9 +4191,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3941,9 +4221,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3969,9 +4251,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -3997,9 +4281,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4025,9 +4311,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4053,9 +4341,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4081,9 +4371,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4109,9 +4401,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4137,9 +4431,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4165,9 +4461,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4193,9 +4491,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4221,9 +4521,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4249,9 +4551,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4277,9 +4581,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4305,9 +4611,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4333,9 +4641,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4361,9 +4671,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4389,9 +4701,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4417,9 +4731,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4445,9 +4761,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4473,9 +4791,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4501,9 +4821,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4529,9 +4851,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4557,9 +4881,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4585,9 +4911,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4613,9 +4941,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4641,9 +4971,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4669,9 +5001,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4697,9 +5031,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4725,9 +5061,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4753,9 +5091,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4781,9 +5121,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4809,9 +5151,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4837,9 +5181,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4865,9 +5211,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4893,9 +5241,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4921,9 +5271,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4949,9 +5301,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -4977,9 +5331,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5005,9 +5361,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5033,9 +5391,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5061,9 +5421,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5089,9 +5451,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5117,9 +5481,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5145,9 +5511,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5173,9 +5541,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5201,9 +5571,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5229,9 +5601,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5257,9 +5631,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5285,9 +5661,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5313,9 +5691,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5341,9 +5721,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5369,9 +5751,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5397,9 +5781,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5425,9 +5811,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5453,9 +5841,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5481,9 +5871,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5509,9 +5901,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5537,9 +5931,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5565,9 +5961,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5593,9 +5991,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5621,9 +6021,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5649,9 +6051,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5677,9 +6081,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5705,9 +6111,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5733,9 +6141,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5761,9 +6171,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5789,9 +6201,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5817,9 +6231,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5845,9 +6261,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5873,9 +6291,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5901,9 +6321,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5929,9 +6351,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5957,9 +6381,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -5985,9 +6411,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6013,9 +6441,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6041,9 +6471,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6069,9 +6501,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6097,9 +6531,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6125,9 +6561,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6153,9 +6591,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6181,9 +6621,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6209,9 +6651,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6237,9 +6681,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6265,9 +6711,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6293,9 +6741,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6321,9 +6771,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6349,9 +6801,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6377,9 +6831,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6405,9 +6861,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6433,9 +6891,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6461,9 +6921,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6489,9 +6951,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6517,9 +6981,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6545,9 +7011,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6573,9 +7041,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6601,9 +7071,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6629,9 +7101,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6657,9 +7131,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6685,9 +7161,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6713,9 +7191,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6741,9 +7221,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6769,9 +7251,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6797,9 +7281,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6825,9 +7311,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6853,9 +7341,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6881,9 +7371,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6909,9 +7401,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6937,9 +7431,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6965,9 +7461,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -6993,9 +7491,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7021,9 +7521,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7049,9 +7551,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7077,9 +7581,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7105,9 +7611,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7133,9 +7641,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7161,9 +7671,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7189,9 +7701,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7217,9 +7731,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7245,9 +7761,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7273,9 +7791,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7301,9 +7821,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7329,9 +7851,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7357,9 +7881,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7385,9 +7911,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7413,9 +7941,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7441,9 +7971,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7469,9 +8001,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7497,9 +8031,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7525,9 +8061,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7553,9 +8091,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7581,9 +8121,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7609,9 +8151,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7637,9 +8181,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7665,9 +8211,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7693,9 +8241,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7721,9 +8271,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7749,9 +8301,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7777,9 +8331,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7805,9 +8361,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7833,9 +8391,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7861,9 +8421,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7889,9 +8451,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7917,9 +8481,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7945,9 +8511,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -7973,9 +8541,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8001,9 +8571,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8029,9 +8601,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8057,9 +8631,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8085,9 +8661,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8113,9 +8691,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8141,9 +8721,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8169,9 +8751,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8197,9 +8781,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8225,9 +8811,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8253,9 +8841,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8281,9 +8871,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8309,9 +8901,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8337,9 +8931,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8365,9 +8961,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8393,9 +8991,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8421,9 +9021,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8449,9 +9051,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8477,9 +9081,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8505,9 +9111,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8533,9 +9141,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8561,9 +9171,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8589,9 +9201,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8617,9 +9231,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8645,9 +9261,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8673,9 +9291,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8701,9 +9321,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8729,9 +9351,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8757,9 +9381,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8785,9 +9411,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8813,9 +9441,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8841,9 +9471,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8869,9 +9501,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8897,9 +9531,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8925,9 +9561,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8953,9 +9591,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -8981,9 +9621,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9009,9 +9651,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9037,9 +9681,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9065,9 +9711,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9093,9 +9741,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9121,9 +9771,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9149,9 +9801,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   },
@@ -9177,9 +9831,11 @@
       "returns": "productVariants { id price sku } userErrors { field message }"
     },
     "restore_map_schema": {
-      "product_id": "gid://shopify/Product/PRODUCT_ID",
-      "variant_id": "gid://shopify/ProductVariant/VARIANT_ID",
-      "old_price": "CAPTURE_LIVE_BEFORE_WRITE",
+      "_template": true,
+      "_warning": "NOT a populated restore map — live tool must fill old_price/variant_id/product_id from a live read BEFORE any write",
+      "product_id": "<TEMPLATE: resolve live product id>",
+      "variant_id": "<TEMPLATE: resolve live sellable variant id — unproven in dry-run>",
+      "old_price": "<TEMPLATE: read current variant.price BEFORE write>",
       "new_price": "proposed_sellable_price"
     }
   }
diff --git a/tk10873/reprice_sanity.json b/tk10873/reprice_sanity.json
index 0caa32f..a161091 100644
--- a/tk10873/reprice_sanity.json
+++ b/tk10873/reprice_sanity.json
@@ -1,6 +1,6 @@
 {
   "ticket": "TK-10873",
-  "generated_at": "2026-08-30T16:37:33.483Z",
+  "generated_at": "2026-08-30T16:43:46.274Z",
   "read_only": true,
   "verdict": "PASS",
   "status": "PASS",
@@ -19,8 +19,16 @@
   },
   "trade_backed": 68,
   "retail_harvest_backed": 260,
+  "our_price_cross_checked": 22,
+  "validation_scope": {
+    "invariant_validated": 68,
+    "legibility_checked_only": 238,
+    "cross_checked_via_our_price": 22,
+    "note": "A retail-only price with no cost floor and no our_price cannot be independently validated — PASS for those rows means legible, not verified-correct."
+  },
+  "id_resolution_disclosure": "variant-id resolution is UNPROVEN by this dry-run (placeholder id); the live tool must resolve + verify a unique sellable variant per dw_sku.",
   "hard_fail_count": 0,
-  "band_outlier_count": 0,
+  "warn_count": 0,
   "hard_fails": [],
-  "band_outliers": []
+  "warnings": []
 }
\ No newline at end of file
diff --git a/tk10873/reprice_sanity.md b/tk10873/reprice_sanity.md
index 0afa443..029d371 100644
--- a/tk10873/reprice_sanity.md
+++ b/tk10873/reprice_sanity.md
@@ -1,7 +1,7 @@
 # TK-10873 Zoffany Option-A REPRICE — sanity report
 
 - **Verdict:** PASS
-- Generated: 2026-08-30T16:37:33.483Z
+- Generated: 2026-08-30T16:43:46.274Z
 - REPRICE rows: 328 (expected 328)
 - Sample price (unchanged): $4.25
 - Sane band: $20–$2000 (outside = WARN, not FAIL)
@@ -11,13 +11,17 @@
 |---|---|---|---|
 | $100 | $176 | $1073.3 | 328 |
 
-## Price backing
-- trade-backed (staged_trade present): **68**
-- retail-harvest-backed (no trade): **260**
+## Price backing & validation scope
+- **invariant-validated** (trade-backed, checked vs a real cost floor): **68**
+- retail-harvest-backed (no trade floor): **260** — of which **22** cross-checked vs our_price, **238** legibility-checked only
+- _Honest scope: PASS for a legibility-checked row means the price is a positive, above-sample, in-band number — NOT that it is independently verified correct. A stale/unit-wrong scraped retail with no cost floor or our_price would still pass._
 
 ## Hard invariant failures: 0
 _none — every proposed price is positive, > sample, and not below cost._
 
-## Band outliers (WARN — human eyes, not a fail): 0
-_none — every proposed price is inside the sane band._
+## WARN (band outliers + our_price divergence — human eyes, not a fail): 0
+_none — every proposed price is inside the sane band and (where checkable) within 15% of our_price._
+
+## Live-run caveat
+- variant-id resolution is UNPROVEN by this dry-run (placeholder id); the live tool must resolve + verify a unique sellable variant per dw_sku.
 
diff --git a/tk10873/reprice_sanity.mjs b/tk10873/reprice_sanity.mjs
index 0ff3d2f..3dd9c47 100644
--- a/tk10873/reprice_sanity.mjs
+++ b/tk10873/reprice_sanity.mjs
@@ -17,7 +17,7 @@
 // Exit code: nonzero ONLY on a hard invariant violation (FAIL). WARN-only (band
 // outliers) still exits 0 with the outliers listed.
 import fs from 'node:fs';
-import { SAMPLE_PRICE, classifyPrice, priceStats, BAND_MIN, BAND_MAX } from './reprice_lib.mjs';
+import { SAMPLE_PRICE, classifyPrice, priceStats, BAND_MIN, BAND_MAX, ourPriceDeviationWarn, ID_RESOLUTION_DISCLOSURE } from './reprice_lib.mjs';
 
 const DIR = new URL('.', import.meta.url).pathname;
 const DRAFT_IN = `${DIR}zoffany_optionA_draft.json`;
@@ -43,12 +43,16 @@ function main() {
 
     const dw = p.live_dw_sku || p.staged_dw_sku || p.mfr_sku;
     const { verdict, reasons } = classifyPrice(price, sample, tradeFloor);
+    // Provenance cross-check: where an independently-computed our_price exists, a sharp
+    // divergence from the proposed retail is a scraper-unit-error signal → WARN (not FAIL).
+    const devReason = ourPriceDeviationWarn(price, p.our_price);
     if (verdict === 'FAIL') {
       fails.push({ dw_sku: dw, mfr_sku: p.mfr_sku, proposed: price, sample, staged_trade: tradeFloor, reasons });
-    } else if (verdict === 'WARN') {
-      warns.push({ dw_sku: dw, mfr_sku: p.mfr_sku, proposed: price, staged_trade: tradeFloor, reasons });
+    } else if (verdict === 'WARN' || devReason) {
+      warns.push({ dw_sku: dw, mfr_sku: p.mfr_sku, proposed: price, staged_trade: tradeFloor, reasons: [...reasons, ...(devReason ? [devReason] : [])] });
     }
   }
+  const ourPriceChecked = reprice.filter(p => p.our_price != null && Number(p.our_price) > 0).length;
 
   const stats = priceStats(reprice.map(p => p.proposed_sellable_price));
   const verdict = fails.length ? 'FAIL' : (warns.length ? 'WARN' : 'PASS');
@@ -66,10 +70,21 @@ function main() {
     price_distribution: stats,
     trade_backed: tradeBacked,
     retail_harvest_backed: retailBacked,
+    our_price_cross_checked: ourPriceChecked,
+    // Honest scope of what PASS means (Cody cycle-3): trade-backed rows are INVARIANT-VALIDATED
+    // (checked against a real cost floor); retail-harvest-backed rows are LEGIBILITY-CHECKED only
+    // (positive + > sample + in-band) unless they also carry an our_price to cross-check against.
+    validation_scope: {
+      invariant_validated: tradeBacked,
+      legibility_checked_only: retailBacked - ourPriceChecked,
+      cross_checked_via_our_price: ourPriceChecked,
+      note: 'A retail-only price with no cost floor and no our_price cannot be independently validated — PASS for those rows means legible, not verified-correct.',
+    },
+    id_resolution_disclosure: ID_RESOLUTION_DISCLOSURE,
     hard_fail_count: fails.length,
-    band_outlier_count: warns.length,
+    warn_count: warns.length,
     hard_fails: fails,
-    band_outliers: warns,
+    warnings: warns,
   };
   fs.writeFileSync(JSON_OUT, JSON.stringify(report, null, 2));
 
@@ -88,9 +103,10 @@ function main() {
   md.push(`|---|---|---|---|`);
   md.push(`| $${stats.min} | $${stats.median} | $${stats.max} | ${stats.count} |`);
   md.push('');
-  md.push(`## Price backing`);
-  md.push(`- trade-backed (staged_trade present): **${tradeBacked}**`);
-  md.push(`- retail-harvest-backed (no trade): **${retailBacked}**`);
+  md.push(`## Price backing & validation scope`);
+  md.push(`- **invariant-validated** (trade-backed, checked vs a real cost floor): **${tradeBacked}**`);
+  md.push(`- retail-harvest-backed (no trade floor): **${retailBacked}** — of which **${ourPriceChecked}** cross-checked vs our_price, **${retailBacked - ourPriceChecked}** legibility-checked only`);
+  md.push(`- _Honest scope: PASS for a legibility-checked row means the price is a positive, above-sample, in-band number — NOT that it is independently verified correct. A stale/unit-wrong scraped retail with no cost floor or our_price would still pass._`);
   md.push('');
   md.push(`## Hard invariant failures: ${fails.length}`);
   if (fails.length) {
@@ -101,15 +117,18 @@ function main() {
     md.push('_none — every proposed price is positive, > sample, and not below cost._');
   }
   md.push('');
-  md.push(`## Band outliers (WARN — human eyes, not a fail): ${warns.length}`);
+  md.push(`## WARN (band outliers + our_price divergence — human eyes, not a fail): ${warns.length}`);
   if (warns.length) {
     md.push(`| dw_sku | mfr_sku | proposed | staged_trade | reasons |`);
     md.push(`|---|---|---|---|---|`);
     for (const w of warns) md.push(`| ${w.dw_sku} | ${w.mfr_sku} | ${w.proposed} | ${w.staged_trade ?? ''} | ${w.reasons.join('; ')} |`);
   } else {
-    md.push('_none — every proposed price is inside the sane band._');
+    md.push('_none — every proposed price is inside the sane band and (where checkable) within 15% of our_price._');
   }
   md.push('');
+  md.push(`## Live-run caveat`);
+  md.push(`- ${ID_RESOLUTION_DISCLOSURE}`);
+  md.push('');
   fs.writeFileSync(MD_OUT, md.join('\n') + '\n');
 
   // stdout
diff --git a/tk10873/test_reprice.mjs b/tk10873/test_reprice.mjs
index 12f7368..c04f912 100644
--- a/tk10873/test_reprice.mjs
+++ b/tk10873/test_reprice.mjs
@@ -3,7 +3,8 @@
 // reprice_lib.mjs (mutation-payload builder + band/sanity classifier + stats).
 // No DB, no network. Exit nonzero on any failure.
 import {
-  buildWouldRun, restoreMapSchema, classifyPrice, priceStats,
+  buildWouldRun, restoreMapSchema, restoreMapTemplate, classifyPrice, priceStats,
+  ourPriceDeviationWarn, ID_RESOLUTION_DISCLOSURE,
   SAMPLE_PRICE, VARIANT_ID_PLACEHOLDER, BAND_MIN, BAND_MAX,
 } from './reprice_lib.mjs';
 
@@ -62,5 +63,26 @@ ok(st.median === 176, 'priceStats median (sorted middle)');
 const empty = priceStats([]);
 ok(empty.count === 0 && empty.min === null, 'priceStats empty -> null stats');
 
+// --- restoreMapTemplate: it is a TEMPLATE, NOT a populated map (Cody cycle-3) ---
+const tmpl = restoreMapTemplate();
+ok(tmpl._template === true, 'restoreMapTemplate is flagged _template:true');
+ok(typeof tmpl.old_price === 'string' && !Number.isFinite(Number(tmpl.old_price)), 'restoreMapTemplate.old_price is a TEMPLATE marker, NOT a real number (dry-run cannot read live price)');
+ok(/TEMPLATE/.test(tmpl.variant_id), 'restoreMapTemplate.variant_id is a template marker, not a real id');
+ok(/NOT a populated/.test(tmpl._warning), 'restoreMapTemplate carries the not-a-populated-map warning');
+ok(restoreMapSchema === restoreMapTemplate, 'restoreMapSchema is a back-compat alias of restoreMapTemplate');
+
+// --- ourPriceDeviationWarn: scraper-unit-error signal (Cody cycle-3) ---
+ok(ourPriceDeviationWarn(176, 176) === null, 'ourPriceDeviationWarn: identical -> no warn');
+ok(ourPriceDeviationWarn(190, 176) === null, 'ourPriceDeviationWarn: within 15% -> no warn (~8%)');
+ok(/deviates/.test(ourPriceDeviationWarn(300, 176) || ''), 'ourPriceDeviationWarn: >15% (~70%) -> warns');
+ok(ourPriceDeviationWarn(176, null) === null, 'ourPriceDeviationWarn: no our_price -> no warn (inert)');
+ok(ourPriceDeviationWarn(176, 0) === null, 'ourPriceDeviationWarn: zero our_price -> no warn (guard)');
+ok(ourPriceDeviationWarn('abc', 176) === null, 'ourPriceDeviationWarn: non-numeric proposed -> no warn');
+// half-price (unit error) is well outside 15%
+ok(/deviates/.test(ourPriceDeviationWarn(88, 176) || ''), 'ourPriceDeviationWarn: half-price unit-error -> warns');
+
+// --- id-resolution disclosure exists + is honest about the placeholder ---
+ok(typeof ID_RESOLUTION_DISCLOSURE === 'string' && /UNPROVEN|unproven/.test(ID_RESOLUTION_DISCLOSURE), 'ID_RESOLUTION_DISCLOSURE states id-resolution is unproven by the dry-run');
+
 console.log(`\ntest_reprice: ${pass} passed, ${fail} failed`);
 process.exit(fail === 0 ? 0 : 1);

← 2007d57 TK-10873 cycle3: DRY-RUN reprice runbook + independent sanit  ·  back to Sanderson Onboard  ·  TK-10873 cycle4: cross-validate REPRICE prices vs independen b68c064 →