[object Object]

← back to Wild Wallcoverings

measured scale lock: vision-counted motifs-across per original, mural-scale clause for <=2-across designs

813e88a1d933180a102d287e31eb7eee71efffec · 2026-07-22 14:24:33 -0700 · Steve Abrams

Files touched

Diff

commit 813e88a1d933180a102d287e31eb7eee71efffec
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jul 22 14:24:33 2026 -0700

    measured scale lock: vision-counted motifs-across per original, mural-scale clause for <=2-across designs
---
 data/briefs.json                                   |  225 +-
 data/designs.json                                  | 2175 +-------------------
 .../arcade-memory-v1-nano.png                      |  Bin
 .../arcade-memory-v2-sdxl.png                      |  Bin
 .../arcade-memory-v3-sdxl.png                      |  Bin
 .../arcade-memory-v4-nano.png                      |  Bin
 .../arcade-memory-v5-nano.png                      |  Bin
 .../arcade-memory-v6-nano.png                      |  Bin
 .../astral-tiger-v1-nano.png                       |  Bin
 .../astral-tiger-v2-sdxl.png                       |  Bin
 .../astral-tiger-v3-sdxl.png                       |  Bin
 .../astral-tiger-v4-nano.png                       |  Bin
 .../astral-tiger-v5-nano.png                       |  Bin
 .../astral-tiger-v6-nano.png                       |  Bin
 .../bodega-cats-v1-nano.png                        |  Bin
 .../bodega-cats-v2-sdxl.png                        |  Bin
 .../bodega-cats-v3-sdxl.png                        |  Bin
 .../bodega-cats-v4-nano.png                        |  Bin
 .../bodega-cats-v5-nano.png                        |  Bin
 .../bodega-cats-v6-nano.png                        |  Bin
 .../campfire-toile-v1-nano.png                     |  Bin
 .../campfire-toile-v2-sdxl.png                     |  Bin
 .../campfire-toile-v3-sdxl.png                     |  Bin
 .../campfire-toile-v4-nano.png                     |  Bin
 .../campfire-toile-v5-nano.png                     |  Bin
 .../campfire-toile-v6-nano.png                     |  Bin
 .../circle-fields-v1-nano.png                      |  Bin
 .../circle-fields-v2-sdxl.png                      |  Bin
 .../circle-fields-v3-sdxl.png                      |  Bin
 .../circle-fields-v4-nano.png                      |  Bin
 .../circle-fields-v5-nano.png                      |  Bin
 .../circle-fields-v6-nano.png                      |  Bin
 .../{designs => archive-v2}/daily-dose-v1-nano.png |  Bin
 .../{designs => archive-v2}/daily-dose-v2-sdxl.png |  Bin
 .../{designs => archive-v2}/daily-dose-v3-sdxl.png |  Bin
 .../{designs => archive-v2}/daily-dose-v4-nano.png |  Bin
 .../{designs => archive-v2}/daily-dose-v5-nano.png |  Bin
 .../{designs => archive-v2}/daily-dose-v6-nano.png |  Bin
 .../desert-choir-v1-nano.png                       |  Bin
 .../desert-choir-v2-sdxl.png                       |  Bin
 .../desert-choir-v3-sdxl.png                       |  Bin
 .../desert-choir-v4-nano.png                       |  Bin
 .../desert-choir-v5-nano.png                       |  Bin
 .../desert-choir-v6-nano.png                       |  Bin
 .../dream-clouds-v1-nano.png                       |  Bin
 .../dream-clouds-v2-sdxl.png                       |  Bin
 .../dream-clouds-v3-sdxl.png                       |  Bin
 .../dream-clouds-v4-nano.png                       |  Bin
 .../dream-clouds-v5-nano.png                       |  Bin
 .../dream-clouds-v6-nano.png                       |  Bin
 .../fungi-skyline-v1-nano.png                      |  Bin
 .../fungi-skyline-v2-sdxl.png                      |  Bin
 .../fungi-skyline-v3-sdxl.png                      |  Bin
 .../fungi-skyline-v4-nano.png                      |  Bin
 .../fungi-skyline-v5-nano.png                      |  Bin
 .../fungi-skyline-v6-nano.png                      |  Bin
 .../galaxy-bots-v1-nano.png                        |  Bin
 .../galaxy-bots-v2-sdxl.png                        |  Bin
 .../galaxy-bots-v3-sdxl.png                        |  Bin
 .../galaxy-bots-v4-nano.png                        |  Bin
 .../galaxy-bots-v5-nano.png                        |  Bin
 .../galaxy-bots-v6-nano.png                        |  Bin
 .../golden-pineapple-v1-nano.png                   |  Bin
 .../golden-pineapple-v2-sdxl.png                   |  Bin
 .../golden-pineapple-v3-sdxl.png                   |  Bin
 .../golden-pineapple-v4-nano.png                   |  Bin
 .../golden-pineapple-v5-nano.png                   |  Bin
 .../golden-pineapple-v6-nano.png                   |  Bin
 .../herbarium-press-v1-nano.png                    |  Bin
 .../herbarium-press-v2-sdxl.png                    |  Bin
 .../herbarium-press-v3-sdxl.png                    |  Bin
 .../herbarium-press-v4-nano.png                    |  Bin
 .../herbarium-press-v5-nano.png                    |  Bin
 .../herbarium-press-v6-nano.png                    |  Bin
 .../lagoon-legends-v1-nano.png                     |  Bin
 .../lagoon-legends-v2-sdxl.png                     |  Bin
 .../lagoon-legends-v3-sdxl.png                     |  Bin
 .../lagoon-legends-v4-nano.png                     |  Bin
 .../lagoon-legends-v5-nano.png                     |  Bin
 .../lagoon-legends-v6-nano.png                     |  Bin
 .../lost-continent-v1-nano.png                     |  Bin
 .../lost-continent-v2-sdxl.png                     |  Bin
 .../lost-continent-v3-sdxl.png                     |  Bin
 .../lost-continent-v4-nano.png                     |  Bin
 .../lost-continent-v5-nano.png                     |  Bin
 .../lost-continent-v6-nano.png                     |  Bin
 .../midnight-frequency-v1-nano.png                 |  Bin
 .../midnight-frequency-v2-sdxl.png                 |  Bin
 .../midnight-frequency-v3-sdxl.png                 |  Bin
 .../midnight-frequency-v4-nano.png                 |  Bin
 .../midnight-frequency-v5-nano.png                 |  Bin
 .../midnight-frequency-v6-nano.png                 |  Bin
 .../{designs => archive-v2}/mod-orbit-v1-nano.png  |  Bin
 .../{designs => archive-v2}/mod-orbit-v2-sdxl.png  |  Bin
 .../{designs => archive-v2}/mod-orbit-v3-sdxl.png  |  Bin
 .../{designs => archive-v2}/mod-orbit-v4-nano.png  |  Bin
 .../{designs => archive-v2}/mod-orbit-v5-nano.png  |  Bin
 .../{designs => archive-v2}/mod-orbit-v6-nano.png  |  Bin
 .../monstera-bungalow-v1-nano.png                  |  Bin
 .../monstera-bungalow-v2-sdxl.png                  |  Bin
 .../monstera-bungalow-v3-sdxl.png                  |  Bin
 .../monstera-bungalow-v4-nano.png                  |  Bin
 .../monstera-bungalow-v5-nano.png                  |  Bin
 .../monstera-bungalow-v6-nano.png                  |  Bin
 .../moonrise-ikat-v1-nano.png                      |  Bin
 .../moonrise-ikat-v2-sdxl.png                      |  Bin
 .../moonrise-ikat-v3-sdxl.png                      |  Bin
 .../moonrise-ikat-v4-nano.png                      |  Bin
 .../moonrise-ikat-v5-nano.png                      |  Bin
 .../moonrise-ikat-v6-nano.png                      |  Bin
 .../night-jungle-v1-nano.png                       |  Bin
 .../night-jungle-v2-sdxl.png                       |  Bin
 .../night-jungle-v3-sdxl.png                       |  Bin
 .../night-jungle-v4-nano.png                       |  Bin
 .../night-jungle-v5-nano.png                       |  Bin
 .../night-jungle-v6-nano.png                       |  Bin
 .../painted-feathers-v1-nano.png                   |  Bin
 .../painted-feathers-v2-sdxl.png                   |  Bin
 .../painted-feathers-v3-sdxl.png                   |  Bin
 .../painted-feathers-v4-nano.png                   |  Bin
 .../painted-feathers-v5-nano.png                   |  Bin
 .../painted-feathers-v6-nano.png                   |  Bin
 .../{designs => archive-v2}/plumbline-v1-nano.png  |  Bin
 .../{designs => archive-v2}/plumbline-v2-sdxl.png  |  Bin
 .../{designs => archive-v2}/plumbline-v3-sdxl.png  |  Bin
 .../{designs => archive-v2}/plumbline-v4-nano.png  |  Bin
 .../{designs => archive-v2}/plumbline-v5-nano.png  |  Bin
 .../{designs => archive-v2}/plumbline-v6-nano.png  |  Bin
 .../{designs => archive-v2}/ray-shadow-v1-nano.png |  Bin
 .../{designs => archive-v2}/ray-shadow-v2-sdxl.png |  Bin
 .../{designs => archive-v2}/ray-shadow-v3-sdxl.png |  Bin
 .../{designs => archive-v2}/ray-shadow-v4-nano.png |  Bin
 .../{designs => archive-v2}/ray-shadow-v5-nano.png |  Bin
 .../{designs => archive-v2}/ray-shadow-v6-nano.png |  Bin
 .../regatta-day-v1-nano.png                        |  Bin
 .../regatta-day-v2-sdxl.png                        |  Bin
 .../regatta-day-v3-sdxl.png                        |  Bin
 .../regatta-day-v4-nano.png                        |  Bin
 .../regatta-day-v5-nano.png                        |  Bin
 .../regatta-day-v6-nano.png                        |  Bin
 .../robot-parade-v1-nano.png                       |  Bin
 .../robot-parade-v2-sdxl.png                       |  Bin
 .../robot-parade-v3-sdxl.png                       |  Bin
 .../robot-parade-v4-nano.png                       |  Bin
 .../robot-parade-v5-nano.png                       |  Bin
 .../robot-parade-v6-nano.png                       |  Bin
 .../tidepool-bloom-v1-nano.png                     |  Bin
 .../tidepool-bloom-v2-sdxl.png                     |  Bin
 .../tidepool-bloom-v3-sdxl.png                     |  Bin
 .../tidepool-bloom-v4-nano.png                     |  Bin
 .../tidepool-bloom-v5-nano.png                     |  Bin
 .../tidepool-bloom-v6-nano.png                     |  Bin
 output/test/astral-tiger-scale-test.png            |  Bin 0 -> 101553 bytes
 output/test/astral-tiger-scale-test2.png           |  Bin 0 -> 143731 bytes
 scripts/batch_gen.py                               |   16 +-
 155 files changed, 214 insertions(+), 2202 deletions(-)

diff --git a/data/briefs.json b/data/briefs.json
index db7f1b8..099eccb 100644
--- a/data/briefs.json
+++ b/data/briefs.json
@@ -11,8 +11,13 @@
    "#6a6a6a",
    "#ababab"
   ],
-  "scale": "large-scale motif: tiger about 14 inches tall within the 24 inch repeat, stars 2-3 inches",
-  "colorway": "Onyx & Chalk"
+  "scale": "exactly 1.4 primary motifs across the tile width \u2014 each motif spans about 70% of the tile width; dense packing; match this count precisely",
+  "colorway": "Onyx & Chalk",
+  "scale_measured": {
+   "motifs_across": 1.4,
+   "motif_width_fraction": 0.7,
+   "coverage": "dense"
+  }
  },
  {
   "id": "midnight-frequency",
@@ -26,8 +31,13 @@
    "#d4d4d6",
    "#79797d"
   ],
-  "scale": "medium-scale motifs about 5 inches each, evenly scattered",
-  "colorway": "Gunmetal Fog"
+  "scale": "exactly 1 primary motifs across the tile width \u2014 each motif spans about 100% of the tile width; dense packing; match this count precisely",
+  "colorway": "Gunmetal Fog",
+  "scale_measured": {
+   "motifs_across": 1.0,
+   "motif_width_fraction": 1.0,
+   "coverage": "dense"
+  }
  },
  {
   "id": "robot-parade",
@@ -41,8 +51,13 @@
    "#e3e3e3",
    "#cacaca"
   ],
-  "scale": "large-scale motifs: robots 10-12 inches tall, bold and dominant",
-  "colorway": "Silver & Chalk"
+  "scale": "exactly 4 primary motifs across the tile width \u2014 each motif spans about 25% of the tile width; medium packing; match this count precisely",
+  "colorway": "Silver & Chalk",
+  "scale_measured": {
+   "motifs_across": 4.0,
+   "motif_width_fraction": 0.25,
+   "coverage": "medium"
+  }
  },
  {
   "id": "galaxy-bots",
@@ -56,8 +71,13 @@
    "#bababa",
    "#626262"
   ],
-  "scale": "medium-scale motifs 4-6 inches, generously scattered scene",
-  "colorway": "Graphite Static"
+  "scale": "exactly 4 primary motifs across the tile width \u2014 each motif spans about 25% of the tile width; medium packing; match this count precisely",
+  "colorway": "Graphite Static",
+  "scale_measured": {
+   "motifs_across": 4.0,
+   "motif_width_fraction": 0.25,
+   "coverage": "medium"
+  }
  },
  {
   "id": "herbarium-press",
@@ -71,8 +91,13 @@
    "#c2ac65",
    "#f7e88b"
   ],
-  "scale": "medium-scale pressed flowers 5-8 inches, airy arrangement",
-  "colorway": "Saffron & Bone"
+  "scale": "exactly 4 primary motifs across the tile width \u2014 each motif spans about 25% of the tile width; medium packing; match this count precisely",
+  "colorway": "Saffron & Bone",
+  "scale_measured": {
+   "motifs_across": 4.0,
+   "motif_width_fraction": 0.25,
+   "coverage": "medium"
+  }
  },
  {
   "id": "desert-choir",
@@ -85,8 +110,13 @@
    "#edb8a2",
    "#efd3c6"
   ],
-  "scale": "oversized large-scale cacti 16-20 inches tall spanning most of the repeat",
-  "colorway": "Blush & Alabaster"
+  "scale": "exactly 1.5 primary motifs across the tile width \u2014 each motif spans about 67% of the tile width; dense packing; match this count precisely",
+  "colorway": "Blush & Alabaster",
+  "scale_measured": {
+   "motifs_across": 1.5,
+   "motif_width_fraction": 0.67,
+   "coverage": "dense"
+  }
  },
  {
   "id": "ray-shadow",
@@ -99,8 +129,13 @@
    "#e5c9bd",
    "#d3b6aa"
   ],
-  "scale": "small-scale dense allover spots 1-2 inches, tight organic texture",
-  "colorway": "Dusty Rose Wash"
+  "scale": "exactly 8 primary motifs across the tile width \u2014 each motif spans about 12% of the tile width; medium packing; match this count precisely",
+  "colorway": "Dusty Rose Wash",
+  "scale_measured": {
+   "motifs_across": 8.0,
+   "motif_width_fraction": 0.125,
+   "coverage": "medium"
+  }
  },
  {
   "id": "moonrise-ikat",
@@ -112,8 +147,13 @@
    "#ece5de",
    "#faf9f8"
   ],
-  "scale": "medium-scale moons 3-4 inches in rhythmic vertical rows",
-  "colorway": "Alabaster Veil"
+  "scale": "exactly 6 primary motifs across the tile width \u2014 each motif spans about 17% of the tile width; medium packing; match this count precisely",
+  "colorway": "Alabaster Veil",
+  "scale_measured": {
+   "motifs_across": 6.0,
+   "motif_width_fraction": 0.167,
+   "coverage": "medium"
+  }
  },
  {
   "id": "night-jungle",
@@ -127,8 +167,13 @@
    "#a2a2a2",
    "#797878"
   ],
-  "scale": "large-scale dense jungle motifs 8-12 inches, immersive full coverage",
-  "colorway": "Ink Jungle"
+  "scale": "exactly 0.8 primary motifs across the tile width \u2014 each motif spans about 125% of the tile width; dense packing; match this count precisely",
+  "colorway": "Ink Jungle",
+  "scale_measured": {
+   "motifs_across": 0.8,
+   "motif_width_fraction": 1.25,
+   "coverage": "dense"
+  }
  },
  {
   "id": "golden-pineapple",
@@ -142,8 +187,13 @@
    "#e2e2e2",
    "#262626"
   ],
-  "scale": "medium-scale pineapples about 5 inches in a roomy offset grid",
-  "colorway": "Noir & Silver"
+  "scale": "exactly 2 primary motifs across the tile width \u2014 each motif spans about 50% of the tile width; medium packing; match this count precisely",
+  "colorway": "Noir & Silver",
+  "scale_measured": {
+   "motifs_across": 2.0,
+   "motif_width_fraction": 0.5,
+   "coverage": "medium"
+  }
  },
  {
   "id": "monstera-bungalow",
@@ -157,8 +207,13 @@
    "#d9e785",
    "#0a9059"
   ],
-  "scale": "large-scale leaves 10-14 inches, statement scale",
-  "colorway": "Fern & Ivory"
+  "scale": "exactly 3 primary motifs across the tile width \u2014 each motif spans about 33% of the tile width; dense packing; match this count precisely",
+  "colorway": "Fern & Ivory",
+  "scale_measured": {
+   "motifs_across": 3.0,
+   "motif_width_fraction": 0.33,
+   "coverage": "dense"
+  }
  },
  {
   "id": "painted-feathers",
@@ -171,8 +226,13 @@
    "#d1b684",
    "#e9e0cb"
   ],
-  "scale": "medium-scale feathers 6-8 inches in flowing vertical bands",
-  "colorway": "Camel & Chalk"
+  "scale": "exactly 3 primary motifs across the tile width \u2014 each motif spans about 20% of the tile width; medium packing; match this count precisely",
+  "colorway": "Camel & Chalk",
+  "scale_measured": {
+   "motifs_across": 3.0,
+   "motif_width_fraction": 0.2,
+   "coverage": "medium"
+  }
  },
  {
   "id": "tidepool-bloom",
@@ -185,8 +245,13 @@
    "#f5f8fa",
    "#e4ebef"
   ],
-  "scale": "small-scale dense texture, clusters 2-3 inches",
-  "colorway": "Powder Tide"
+  "scale": "exactly 6 primary motifs across the tile width \u2014 each motif spans about 17% of the tile width; medium packing; match this count precisely",
+  "colorway": "Powder Tide",
+  "scale_measured": {
+   "motifs_across": 6.0,
+   "motif_width_fraction": 0.167,
+   "coverage": "medium"
+  }
  },
  {
   "id": "mod-orbit",
@@ -199,8 +264,13 @@
    "#57bee7",
    "#94d6ef"
   ],
-  "scale": "small-scale tight geometric repeat, elements about 2 inches",
-  "colorway": "Cerulean & Chalk"
+  "scale": "exactly 4 primary motifs across the tile width \u2014 each motif spans about 25% of the tile width; medium packing; match this count precisely",
+  "colorway": "Cerulean & Chalk",
+  "scale_measured": {
+   "motifs_across": 4.0,
+   "motif_width_fraction": 0.25,
+   "coverage": "medium"
+  }
  },
  {
   "id": "lost-continent",
@@ -213,8 +283,13 @@
    "#cdcfd2",
    "#8897a3"
   ],
-  "scale": "medium-scale dinosaurs 5-7 inches, playful spacing",
-  "colorway": "Fog & Bone"
+  "scale": "exactly 5 primary motifs across the tile width \u2014 each motif spans about 20% of the tile width; dense packing; match this count precisely",
+  "colorway": "Fog & Bone",
+  "scale_measured": {
+   "motifs_across": 5.0,
+   "motif_width_fraction": 0.2,
+   "coverage": "dense"
+  }
  },
  {
   "id": "plumbline",
@@ -227,8 +302,13 @@
    "#8bcbd6",
    "#cbe7eb"
   ],
-  "scale": "micro-scale geometric, elements under 1 inch, fine dense grid",
-  "colorway": "Aqua Porcelain"
+  "scale": "exactly 3.33333 primary motifs across the tile width \u2014 each motif spans about 30% of the tile width; dense packing; match this count precisely",
+  "colorway": "Aqua Porcelain",
+  "scale_measured": {
+   "motifs_across": 3.333333,
+   "motif_width_fraction": 0.3,
+   "coverage": "dense"
+  }
  },
  {
   "id": "lagoon-legends",
@@ -241,8 +321,13 @@
    "#52eebf",
    "#93f4d7"
   ],
-  "scale": "medium-scale creatures 5-8 inches gliding across the repeat",
-  "colorway": "Sea Glass"
+  "scale": "exactly 3 primary motifs across the tile width \u2014 each motif spans about 33% of the tile width; dense packing; match this count precisely",
+  "colorway": "Sea Glass",
+  "scale_measured": {
+   "motifs_across": 3.0,
+   "motif_width_fraction": 0.333,
+   "coverage": "dense"
+  }
  },
  {
   "id": "fungi-skyline",
@@ -255,8 +340,13 @@
    "#e4f6fe",
    "#c9dddf"
   ],
-  "scale": "medium-to-large mushrooms of varying heights 4-10 inches, skyline rhythm",
-  "colorway": "Eucalyptus Mist"
+  "scale": "exactly 1 primary motifs across the tile width \u2014 each motif spans about 100% of the tile width; dense packing; match this count precisely",
+  "colorway": "Eucalyptus Mist",
+  "scale_measured": {
+   "motifs_across": 1.0,
+   "motif_width_fraction": 1.0,
+   "coverage": "dense"
+  }
  },
  {
   "id": "regatta-day",
@@ -270,8 +360,13 @@
    "#608c89",
    "#a3bcba"
   ],
-  "scale": "medium-scale boats 5-6 inches, calm even scatter",
-  "colorway": "Hunter & Chalk"
+  "scale": "exactly 1.1 primary motifs across the tile width \u2014 each motif spans about 91% of the tile width; medium packing; match this count precisely",
+  "colorway": "Hunter & Chalk",
+  "scale_measured": {
+   "motifs_across": 1.1,
+   "motif_width_fraction": 0.91,
+   "coverage": "medium"
+  }
  },
  {
   "id": "arcade-memory",
@@ -285,8 +380,13 @@
    "#aab2a5",
    "#ced2cb"
   ],
-  "scale": "medium-scale devices 4-5 inches, even scatter",
-  "colorway": "Loden & Bone"
+  "scale": "exactly 3.4 primary motifs across the tile width \u2014 each motif spans about 29% of the tile width; dense packing; match this count precisely",
+  "colorway": "Loden & Bone",
+  "scale_measured": {
+   "motifs_across": 3.4,
+   "motif_width_fraction": 0.29,
+   "coverage": "dense"
+  }
  },
  {
   "id": "daily-dose",
@@ -300,8 +400,13 @@
    "#0e6254",
    "#655a43"
   ],
-  "scale": "small-scale capsules about 2 inches in diagonal rhythm",
-  "colorway": "Aubergine Apothecary"
+  "scale": "exactly 6 primary motifs across the tile width \u2014 each motif spans about 17% of the tile width; medium packing; match this count precisely",
+  "colorway": "Aubergine Apothecary",
+  "scale_measured": {
+   "motifs_across": 6.0,
+   "motif_width_fraction": 0.1667,
+   "coverage": "medium"
+  }
  },
  {
   "id": "circle-fields",
@@ -314,8 +419,13 @@
    "#f8f8f8",
    "#d5d5d5"
   ],
-  "scale": "medium-scale concentric circles 3-6 inches overlapping",
-  "colorway": "Silver & Dove"
+  "scale": "exactly 1.5 primary motifs across the tile width \u2014 each motif spans about 67% of the tile width; dense packing; match this count precisely",
+  "colorway": "Silver & Dove",
+  "scale_measured": {
+   "motifs_across": 1.5,
+   "motif_width_fraction": 0.667,
+   "coverage": "dense"
+  }
  },
  {
   "id": "campfire-toile",
@@ -329,8 +439,13 @@
    "#adadad",
    "#e2e2e2"
   ],
-  "scale": "classic toile scale: vignette scenes 6-8 inches",
-  "colorway": "Ink on Chalk"
+  "scale": "exactly 0.9 primary motifs across the tile width \u2014 each motif spans about 111% of the tile width; dense packing; match this count precisely",
+  "colorway": "Ink on Chalk",
+  "scale_measured": {
+   "motifs_across": 0.9,
+   "motif_width_fraction": 1.11,
+   "coverage": "dense"
+  }
  },
  {
   "id": "dream-clouds",
@@ -344,8 +459,13 @@
    "#b6b7b9",
    "#818892"
   ],
-  "scale": "medium-scale clouds 4-6 inches, calm even spacing",
-  "colorway": "Storm & Dove"
+  "scale": "exactly 2 primary motifs across the tile width \u2014 each motif spans about 50% of the tile width; dense packing; match this count precisely",
+  "colorway": "Storm & Dove",
+  "scale_measured": {
+   "motifs_across": 2.0,
+   "motif_width_fraction": 0.5,
+   "coverage": "dense"
+  }
  },
  {
   "id": "bodega-cats",
@@ -358,7 +478,12 @@
    "#6d7980",
    "#c6cbd0"
   ],
-  "scale": "small-to-medium motifs 3-4 inches, city-scatter layout",
-  "colorway": "Slate & Fog"
+  "scale": "exactly 4 primary motifs across the tile width \u2014 each motif spans about 25% of the tile width; dense packing; match this count precisely",
+  "colorway": "Slate & Fog",
+  "scale_measured": {
+   "motifs_across": 4.0,
+   "motif_width_fraction": 0.25,
+   "coverage": "dense"
+  }
  }
 ]
\ No newline at end of file
diff --git a/data/designs.json b/data/designs.json
index 14fdf44..8ee07ee 100644
--- a/data/designs.json
+++ b/data/designs.json
@@ -6,92 +6,7 @@
   "description": "Star Tiger (theme only \u2014 original artwork)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:18:28.830309+00:00",
-  "variants": [
-   {
-    "file": "astral-tiger-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:56:44.315816+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "astral-tiger-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:56:55.725161+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "astral-tiger-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:06.247826+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "astral-tiger-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:15.920842+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "astral-tiger-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T19:58:17.005697+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "astral-tiger-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T19:59:45.433954+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-astral-tiger.jpg",
    "title": "Star Tiger Charcoal"
@@ -105,92 +20,7 @@
   "description": "Analog Nights (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:18:36.892674+00:00",
-  "variants": [
-   {
-    "file": "midnight-frequency-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:26.572142+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "midnight-frequency-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:36.583131+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "midnight-frequency-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:45.627553+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "midnight-frequency-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:57:55.101743+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "midnight-frequency-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:00:57.725366+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "midnight-frequency-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:02:10.017712+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-midnight-frequency.jpg",
    "title": "Analog Nights Thunder"
@@ -204,92 +34,7 @@
   "description": "Big Robots (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:18:44.703698+00:00",
-  "variants": [
-   {
-    "file": "robot-parade-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:58:05.868629+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "robot-parade-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:58:17.053057+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "robot-parade-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:58:28.483502+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "robot-parade-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:58:39.643471+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "robot-parade-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:03:22.305009+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "robot-parade-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:04:34.592474+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-robot-parade.jpg",
    "title": "Big Robots Tin"
@@ -303,92 +48,7 @@
   "description": "Astrobots (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:18:53.231918+00:00",
-  "variants": [
-   {
-    "file": "galaxy-bots-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:58:52.242509+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "galaxy-bots-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:01.672219+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "galaxy-bots-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:11.893666+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "galaxy-bots-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:24.056620+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "galaxy-bots-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:05:46.897005+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "galaxy-bots-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:06:59.206628+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-galaxy-bots.jpg",
    "title": "Astrobots Thunder"
@@ -402,92 +62,7 @@
   "description": "Herbario family (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:01.485722+00:00",
-  "variants": [
-   {
-    "file": "herbarium-press-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:35.397005+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "herbarium-press-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:45.712149+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "herbarium-press-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T19:59:56.966851+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "herbarium-press-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:08.211943+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "herbarium-press-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:08:11.525121+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "herbarium-press-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:09:23.817740+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-herbarium-press.jpg",
    "title": "Herbario Canary"
@@ -501,92 +76,7 @@
   "description": "Cactus Spirit (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:08.811454+00:00",
-  "variants": [
-   {
-    "file": "desert-choir-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:18.685518+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "desert-choir-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:28.438385+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "desert-choir-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:37.854432+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "desert-choir-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:48.019480+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "desert-choir-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "desert-choir-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-desert-choir.jpg",
    "title": "Cactus Spirit Rosegold"
@@ -600,92 +90,7 @@
   "description": "Sea Ray (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:16.192537+00:00",
-  "variants": [
-   {
-    "file": "ray-shadow-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:00:58.354015+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "ray-shadow-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:01:08.291330+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "ray-shadow-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:01:19.652594+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "ray-shadow-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:01:29.803525+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "ray-shadow-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:14:13.096882+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "ray-shadow-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-ray-shadow.jpg",
    "title": "Sea Ray Rosewood"
@@ -699,92 +104,7 @@
   "description": "Earthlight (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:24.429045+00:00",
-  "variants": [
-   {
-    "file": "moonrise-ikat-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:01:44.996639+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "moonrise-ikat-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:01:56.213008+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "moonrise-ikat-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:02:05.641179+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "moonrise-ikat-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:02:15.147431+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "moonrise-ikat-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:15:25.404145+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "moonrise-ikat-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:16:37.703409+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-moonrise-ikat.jpg",
    "title": "Earthlight Ashlar"
@@ -798,92 +118,7 @@
   "description": "Jungle Dream (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:32.563982+00:00",
-  "variants": [
-   {
-    "file": "night-jungle-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:02:25.990064+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "night-jungle-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:02:39.944723+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "night-jungle-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:02:49.902549+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "night-jungle-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:00.769029+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "night-jungle-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:17:50.088626+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "night-jungle-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:19:02.413154+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-night-jungle.jpg",
    "title": "Jungle Dream Charcoal"
@@ -897,92 +132,7 @@
   "description": "Pi\u00f1a Sola (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:39.573122+00:00",
-  "variants": [
-   {
-    "file": "golden-pineapple-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:12.194195+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "golden-pineapple-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:22.831884+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "golden-pineapple-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:33.141550+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "golden-pineapple-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:43.648957+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "golden-pineapple-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:20:30.775252+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "golden-pineapple-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:21:43.081466+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-golden-pineapple.jpg",
    "title": "Pi\u00f1a Sola Charcoal"
@@ -996,92 +146,7 @@
   "description": "Deliciosa (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:47.415754+00:00",
-  "variants": [
-   {
-    "file": "monstera-bungalow-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:03:53.346041+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "monstera-bungalow-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:02.908044+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "monstera-bungalow-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:12.577867+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "monstera-bungalow-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:22.692714+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "monstera-bungalow-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:22:55.397217+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "monstera-bungalow-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:24:07.701167+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-monstera-bungalow.jpg",
    "title": "Deliciosa Bungalow"
@@ -1095,92 +160,7 @@
   "description": "Indian Summer (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:19:56.756156+00:00",
-  "variants": [
-   {
-    "file": "painted-feathers-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:33.449305+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "painted-feathers-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:44.824253+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "painted-feathers-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:04:56.485170+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "painted-feathers-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:07.510198+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "painted-feathers-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:25:19.996827+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "painted-feathers-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:26:32.342756+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-painted-feathers.jpg",
    "title": "Indian Summer Sphinx"
@@ -1194,92 +174,7 @@
   "description": "Anemone (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:04.111473+00:00",
-  "variants": [
-   {
-    "file": "tidepool-bloom-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:16.938428+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "tidepool-bloom-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:26.471667+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "tidepool-bloom-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:37.396308+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "tidepool-bloom-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:47.964672+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "tidepool-bloom-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:27:44.667906+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "tidepool-bloom-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:28:56.959559+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-tidepool-bloom.jpg",
    "title": "Anemone Zephyr"
@@ -1293,92 +188,7 @@
   "description": "Baby geometric (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:11.215237+00:00",
-  "variants": [
-   {
-    "file": "mod-orbit-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:05:57.690764+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "mod-orbit-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:06:19.120972+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "mod-orbit-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:06:32.209657+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "mod-orbit-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:23:53.091060+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "mod-orbit-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:30:09.266120+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "mod-orbit-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:31:21.582131+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-mod-orbit.jpg",
    "title": "Baby Azzurro"
@@ -1392,92 +202,7 @@
   "description": "Pangaea (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:19.084639+00:00",
-  "variants": [
-   {
-    "file": "lost-continent-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:06:42.804728+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lost-continent-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:06:53.171817+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lost-continent-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:02.646920+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lost-continent-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:12.642541+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lost-continent-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:32:33.887119+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lost-continent-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-lost-continent.jpg",
    "title": "Pangaea Mineral"
@@ -1491,92 +216,7 @@
   "description": "Pipes (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:28.289896+00:00",
-  "variants": [
-   {
-    "file": "plumbline-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:22.749281+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "plumbline-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:33.850046+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "plumbline-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:44.227553+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "plumbline-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:07:54.176814+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "plumbline-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "plumbline-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-plumbline.jpg",
    "title": "Pipes Aqua"
@@ -1590,92 +230,7 @@
   "description": "Mystic Lagoon (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:36.563316+00:00",
-  "variants": [
-   {
-    "file": "lagoon-legends-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:08:03.817563+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lagoon-legends-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:08:15.229552+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lagoon-legends-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:08:26.895587+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lagoon-legends-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:08:39.054105+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "lagoon-legends-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "lagoon-legends-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-lagoon-legends.jpg",
    "title": "Mystic Lagoon Caribe"
@@ -1689,92 +244,7 @@
   "description": "Mushroom City (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:44.807884+00:00",
-  "variants": [
-   {
-    "file": "fungi-skyline-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:08:50.757383+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "fungi-skyline-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:00.747642+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "fungi-skyline-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:10.022069+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "fungi-skyline-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:21.288540+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "fungi-skyline-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:39:47.978256+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "fungi-skyline-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-fungi-skyline.jpg",
    "title": "Mushroom City Botanica"
@@ -1788,92 +258,7 @@
   "description": "Boating (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:52.326402+00:00",
-  "variants": [
-   {
-    "file": "regatta-day-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:31.301738+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "regatta-day-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:41.543140+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "regatta-day-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:09:53.206315+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "regatta-day-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:10:02.880478+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "regatta-day-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:43:25.004887+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "regatta-day-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:59:57.058288+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-regatta-day.jpg",
    "title": "Boating Hunter"
@@ -1887,92 +272,7 @@
   "description": "Gameland (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:20:59.875088+00:00",
-  "variants": [
-   {
-    "file": "arcade-memory-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:10:13.270190+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "arcade-memory-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:28:07.953758+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "arcade-memory-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:28:18.275062+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "arcade-memory-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:28:28.353473+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "arcade-memory-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:44:37.345107+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "arcade-memory-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:45:49.658431+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-arcade-memory.jpg",
    "title": "Gameland Army"
@@ -1986,92 +286,7 @@
   "description": "Dynamic Dose / Brain Candy (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:21:07.384091+00:00",
-  "variants": [
-   {
-    "file": "daily-dose-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:28:40.064685+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "daily-dose-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:28:52.516231+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "daily-dose-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:29:12.131731+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "daily-dose-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:33:37.424625+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "daily-dose-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:47:01.987340+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "daily-dose-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:48:14.301308+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-daily-dose.jpg",
    "title": "Dynamic Dose Transcend"
@@ -2085,92 +300,7 @@
   "description": "Crop Circles (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:21:14.668432+00:00",
-  "variants": [
-   {
-    "file": "circle-fields-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:29:21.740847+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "circle-fields-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:29:32.664733+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "circle-fields-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:29:43.298944+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "circle-fields-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:29:52.727342+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "circle-fields-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:49:26.621465+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "circle-fields-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:50:38.956410+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-circle-fields.jpg",
    "title": "Crop Circles Glimmer"
@@ -2184,92 +314,7 @@
   "description": "Camping (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:21:22.389758+00:00",
-  "variants": [
-   {
-    "file": "campfire-toile-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:03.539898+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "campfire-toile-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:14.916045+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "campfire-toile-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:26.469586+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "campfire-toile-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:39.128161+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "campfire-toile-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:51:51.248089+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "campfire-toile-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:53:03.562669+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-campfire-toile.jpg",
    "title": "Camping Charbon"
@@ -2283,92 +328,7 @@
   "description": "Clouds / Loveclouds (theme only)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:21:29.970997+00:00",
-  "variants": [
-   {
-    "file": "dream-clouds-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:48.823786+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "dream-clouds-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:30:58.103442+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "dream-clouds-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:31:07.528289+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "dream-clouds-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:31:18.647985+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "dream-clouds-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:54:31.881425+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   },
-   {
-    "file": "dream-clouds-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:56:04.254999+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": false
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-dream-clouds.jpg",
    "title": "Clouds Storm"
@@ -2382,92 +342,7 @@
   "description": "Pigeon Slate (bird motif replaced with cats for compliance)",
   "size": "24\" x 25\"",
   "created_at": "2026-07-22T19:21:38.380312+00:00",
-  "variants": [
-   {
-    "file": "bodega-cats-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:31:30.142135+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "bodega-cats-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:31:40.941608+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "bodega-cats-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:31:51.451459+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "empty",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "bodega-cats-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T20:32:03.421287+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "bodega-cats-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:57:16.611180+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   },
-   {
-    "file": "bodega-cats-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T20:58:28.955362+00:00",
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
+  "variants": [],
   "reference": {
    "file": "ref-bodega-cats.jpg",
    "title": "Pigeon Slate"
diff --git a/output/designs/arcade-memory-v1-nano.png b/output/archive-v2/arcade-memory-v1-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v1-nano.png
rename to output/archive-v2/arcade-memory-v1-nano.png
diff --git a/output/designs/arcade-memory-v2-sdxl.png b/output/archive-v2/arcade-memory-v2-sdxl.png
similarity index 100%
rename from output/designs/arcade-memory-v2-sdxl.png
rename to output/archive-v2/arcade-memory-v2-sdxl.png
diff --git a/output/designs/arcade-memory-v3-sdxl.png b/output/archive-v2/arcade-memory-v3-sdxl.png
similarity index 100%
rename from output/designs/arcade-memory-v3-sdxl.png
rename to output/archive-v2/arcade-memory-v3-sdxl.png
diff --git a/output/designs/arcade-memory-v4-nano.png b/output/archive-v2/arcade-memory-v4-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v4-nano.png
rename to output/archive-v2/arcade-memory-v4-nano.png
diff --git a/output/designs/arcade-memory-v5-nano.png b/output/archive-v2/arcade-memory-v5-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v5-nano.png
rename to output/archive-v2/arcade-memory-v5-nano.png
diff --git a/output/designs/arcade-memory-v6-nano.png b/output/archive-v2/arcade-memory-v6-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v6-nano.png
rename to output/archive-v2/arcade-memory-v6-nano.png
diff --git a/output/designs/astral-tiger-v1-nano.png b/output/archive-v2/astral-tiger-v1-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v1-nano.png
rename to output/archive-v2/astral-tiger-v1-nano.png
diff --git a/output/designs/astral-tiger-v2-sdxl.png b/output/archive-v2/astral-tiger-v2-sdxl.png
similarity index 100%
rename from output/designs/astral-tiger-v2-sdxl.png
rename to output/archive-v2/astral-tiger-v2-sdxl.png
diff --git a/output/designs/astral-tiger-v3-sdxl.png b/output/archive-v2/astral-tiger-v3-sdxl.png
similarity index 100%
rename from output/designs/astral-tiger-v3-sdxl.png
rename to output/archive-v2/astral-tiger-v3-sdxl.png
diff --git a/output/designs/astral-tiger-v4-nano.png b/output/archive-v2/astral-tiger-v4-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v4-nano.png
rename to output/archive-v2/astral-tiger-v4-nano.png
diff --git a/output/designs/astral-tiger-v5-nano.png b/output/archive-v2/astral-tiger-v5-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v5-nano.png
rename to output/archive-v2/astral-tiger-v5-nano.png
diff --git a/output/designs/astral-tiger-v6-nano.png b/output/archive-v2/astral-tiger-v6-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v6-nano.png
rename to output/archive-v2/astral-tiger-v6-nano.png
diff --git a/output/designs/bodega-cats-v1-nano.png b/output/archive-v2/bodega-cats-v1-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v1-nano.png
rename to output/archive-v2/bodega-cats-v1-nano.png
diff --git a/output/designs/bodega-cats-v2-sdxl.png b/output/archive-v2/bodega-cats-v2-sdxl.png
similarity index 100%
rename from output/designs/bodega-cats-v2-sdxl.png
rename to output/archive-v2/bodega-cats-v2-sdxl.png
diff --git a/output/designs/bodega-cats-v3-sdxl.png b/output/archive-v2/bodega-cats-v3-sdxl.png
similarity index 100%
rename from output/designs/bodega-cats-v3-sdxl.png
rename to output/archive-v2/bodega-cats-v3-sdxl.png
diff --git a/output/designs/bodega-cats-v4-nano.png b/output/archive-v2/bodega-cats-v4-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v4-nano.png
rename to output/archive-v2/bodega-cats-v4-nano.png
diff --git a/output/designs/bodega-cats-v5-nano.png b/output/archive-v2/bodega-cats-v5-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v5-nano.png
rename to output/archive-v2/bodega-cats-v5-nano.png
diff --git a/output/designs/bodega-cats-v6-nano.png b/output/archive-v2/bodega-cats-v6-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v6-nano.png
rename to output/archive-v2/bodega-cats-v6-nano.png
diff --git a/output/designs/campfire-toile-v1-nano.png b/output/archive-v2/campfire-toile-v1-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v1-nano.png
rename to output/archive-v2/campfire-toile-v1-nano.png
diff --git a/output/designs/campfire-toile-v2-sdxl.png b/output/archive-v2/campfire-toile-v2-sdxl.png
similarity index 100%
rename from output/designs/campfire-toile-v2-sdxl.png
rename to output/archive-v2/campfire-toile-v2-sdxl.png
diff --git a/output/designs/campfire-toile-v3-sdxl.png b/output/archive-v2/campfire-toile-v3-sdxl.png
similarity index 100%
rename from output/designs/campfire-toile-v3-sdxl.png
rename to output/archive-v2/campfire-toile-v3-sdxl.png
diff --git a/output/designs/campfire-toile-v4-nano.png b/output/archive-v2/campfire-toile-v4-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v4-nano.png
rename to output/archive-v2/campfire-toile-v4-nano.png
diff --git a/output/designs/campfire-toile-v5-nano.png b/output/archive-v2/campfire-toile-v5-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v5-nano.png
rename to output/archive-v2/campfire-toile-v5-nano.png
diff --git a/output/designs/campfire-toile-v6-nano.png b/output/archive-v2/campfire-toile-v6-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v6-nano.png
rename to output/archive-v2/campfire-toile-v6-nano.png
diff --git a/output/designs/circle-fields-v1-nano.png b/output/archive-v2/circle-fields-v1-nano.png
similarity index 100%
rename from output/designs/circle-fields-v1-nano.png
rename to output/archive-v2/circle-fields-v1-nano.png
diff --git a/output/designs/circle-fields-v2-sdxl.png b/output/archive-v2/circle-fields-v2-sdxl.png
similarity index 100%
rename from output/designs/circle-fields-v2-sdxl.png
rename to output/archive-v2/circle-fields-v2-sdxl.png
diff --git a/output/designs/circle-fields-v3-sdxl.png b/output/archive-v2/circle-fields-v3-sdxl.png
similarity index 100%
rename from output/designs/circle-fields-v3-sdxl.png
rename to output/archive-v2/circle-fields-v3-sdxl.png
diff --git a/output/designs/circle-fields-v4-nano.png b/output/archive-v2/circle-fields-v4-nano.png
similarity index 100%
rename from output/designs/circle-fields-v4-nano.png
rename to output/archive-v2/circle-fields-v4-nano.png
diff --git a/output/designs/circle-fields-v5-nano.png b/output/archive-v2/circle-fields-v5-nano.png
similarity index 100%
rename from output/designs/circle-fields-v5-nano.png
rename to output/archive-v2/circle-fields-v5-nano.png
diff --git a/output/designs/circle-fields-v6-nano.png b/output/archive-v2/circle-fields-v6-nano.png
similarity index 100%
rename from output/designs/circle-fields-v6-nano.png
rename to output/archive-v2/circle-fields-v6-nano.png
diff --git a/output/designs/daily-dose-v1-nano.png b/output/archive-v2/daily-dose-v1-nano.png
similarity index 100%
rename from output/designs/daily-dose-v1-nano.png
rename to output/archive-v2/daily-dose-v1-nano.png
diff --git a/output/designs/daily-dose-v2-sdxl.png b/output/archive-v2/daily-dose-v2-sdxl.png
similarity index 100%
rename from output/designs/daily-dose-v2-sdxl.png
rename to output/archive-v2/daily-dose-v2-sdxl.png
diff --git a/output/designs/daily-dose-v3-sdxl.png b/output/archive-v2/daily-dose-v3-sdxl.png
similarity index 100%
rename from output/designs/daily-dose-v3-sdxl.png
rename to output/archive-v2/daily-dose-v3-sdxl.png
diff --git a/output/designs/daily-dose-v4-nano.png b/output/archive-v2/daily-dose-v4-nano.png
similarity index 100%
rename from output/designs/daily-dose-v4-nano.png
rename to output/archive-v2/daily-dose-v4-nano.png
diff --git a/output/designs/daily-dose-v5-nano.png b/output/archive-v2/daily-dose-v5-nano.png
similarity index 100%
rename from output/designs/daily-dose-v5-nano.png
rename to output/archive-v2/daily-dose-v5-nano.png
diff --git a/output/designs/daily-dose-v6-nano.png b/output/archive-v2/daily-dose-v6-nano.png
similarity index 100%
rename from output/designs/daily-dose-v6-nano.png
rename to output/archive-v2/daily-dose-v6-nano.png
diff --git a/output/designs/desert-choir-v1-nano.png b/output/archive-v2/desert-choir-v1-nano.png
similarity index 100%
rename from output/designs/desert-choir-v1-nano.png
rename to output/archive-v2/desert-choir-v1-nano.png
diff --git a/output/designs/desert-choir-v2-sdxl.png b/output/archive-v2/desert-choir-v2-sdxl.png
similarity index 100%
rename from output/designs/desert-choir-v2-sdxl.png
rename to output/archive-v2/desert-choir-v2-sdxl.png
diff --git a/output/designs/desert-choir-v3-sdxl.png b/output/archive-v2/desert-choir-v3-sdxl.png
similarity index 100%
rename from output/designs/desert-choir-v3-sdxl.png
rename to output/archive-v2/desert-choir-v3-sdxl.png
diff --git a/output/designs/desert-choir-v4-nano.png b/output/archive-v2/desert-choir-v4-nano.png
similarity index 100%
rename from output/designs/desert-choir-v4-nano.png
rename to output/archive-v2/desert-choir-v4-nano.png
diff --git a/output/designs/desert-choir-v5-nano.png b/output/archive-v2/desert-choir-v5-nano.png
similarity index 100%
rename from output/designs/desert-choir-v5-nano.png
rename to output/archive-v2/desert-choir-v5-nano.png
diff --git a/output/designs/desert-choir-v6-nano.png b/output/archive-v2/desert-choir-v6-nano.png
similarity index 100%
rename from output/designs/desert-choir-v6-nano.png
rename to output/archive-v2/desert-choir-v6-nano.png
diff --git a/output/designs/dream-clouds-v1-nano.png b/output/archive-v2/dream-clouds-v1-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v1-nano.png
rename to output/archive-v2/dream-clouds-v1-nano.png
diff --git a/output/designs/dream-clouds-v2-sdxl.png b/output/archive-v2/dream-clouds-v2-sdxl.png
similarity index 100%
rename from output/designs/dream-clouds-v2-sdxl.png
rename to output/archive-v2/dream-clouds-v2-sdxl.png
diff --git a/output/designs/dream-clouds-v3-sdxl.png b/output/archive-v2/dream-clouds-v3-sdxl.png
similarity index 100%
rename from output/designs/dream-clouds-v3-sdxl.png
rename to output/archive-v2/dream-clouds-v3-sdxl.png
diff --git a/output/designs/dream-clouds-v4-nano.png b/output/archive-v2/dream-clouds-v4-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v4-nano.png
rename to output/archive-v2/dream-clouds-v4-nano.png
diff --git a/output/designs/dream-clouds-v5-nano.png b/output/archive-v2/dream-clouds-v5-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v5-nano.png
rename to output/archive-v2/dream-clouds-v5-nano.png
diff --git a/output/designs/dream-clouds-v6-nano.png b/output/archive-v2/dream-clouds-v6-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v6-nano.png
rename to output/archive-v2/dream-clouds-v6-nano.png
diff --git a/output/designs/fungi-skyline-v1-nano.png b/output/archive-v2/fungi-skyline-v1-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v1-nano.png
rename to output/archive-v2/fungi-skyline-v1-nano.png
diff --git a/output/designs/fungi-skyline-v2-sdxl.png b/output/archive-v2/fungi-skyline-v2-sdxl.png
similarity index 100%
rename from output/designs/fungi-skyline-v2-sdxl.png
rename to output/archive-v2/fungi-skyline-v2-sdxl.png
diff --git a/output/designs/fungi-skyline-v3-sdxl.png b/output/archive-v2/fungi-skyline-v3-sdxl.png
similarity index 100%
rename from output/designs/fungi-skyline-v3-sdxl.png
rename to output/archive-v2/fungi-skyline-v3-sdxl.png
diff --git a/output/designs/fungi-skyline-v4-nano.png b/output/archive-v2/fungi-skyline-v4-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v4-nano.png
rename to output/archive-v2/fungi-skyline-v4-nano.png
diff --git a/output/designs/fungi-skyline-v5-nano.png b/output/archive-v2/fungi-skyline-v5-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v5-nano.png
rename to output/archive-v2/fungi-skyline-v5-nano.png
diff --git a/output/designs/fungi-skyline-v6-nano.png b/output/archive-v2/fungi-skyline-v6-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v6-nano.png
rename to output/archive-v2/fungi-skyline-v6-nano.png
diff --git a/output/designs/galaxy-bots-v1-nano.png b/output/archive-v2/galaxy-bots-v1-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v1-nano.png
rename to output/archive-v2/galaxy-bots-v1-nano.png
diff --git a/output/designs/galaxy-bots-v2-sdxl.png b/output/archive-v2/galaxy-bots-v2-sdxl.png
similarity index 100%
rename from output/designs/galaxy-bots-v2-sdxl.png
rename to output/archive-v2/galaxy-bots-v2-sdxl.png
diff --git a/output/designs/galaxy-bots-v3-sdxl.png b/output/archive-v2/galaxy-bots-v3-sdxl.png
similarity index 100%
rename from output/designs/galaxy-bots-v3-sdxl.png
rename to output/archive-v2/galaxy-bots-v3-sdxl.png
diff --git a/output/designs/galaxy-bots-v4-nano.png b/output/archive-v2/galaxy-bots-v4-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v4-nano.png
rename to output/archive-v2/galaxy-bots-v4-nano.png
diff --git a/output/designs/galaxy-bots-v5-nano.png b/output/archive-v2/galaxy-bots-v5-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v5-nano.png
rename to output/archive-v2/galaxy-bots-v5-nano.png
diff --git a/output/designs/galaxy-bots-v6-nano.png b/output/archive-v2/galaxy-bots-v6-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v6-nano.png
rename to output/archive-v2/galaxy-bots-v6-nano.png
diff --git a/output/designs/golden-pineapple-v1-nano.png b/output/archive-v2/golden-pineapple-v1-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v1-nano.png
rename to output/archive-v2/golden-pineapple-v1-nano.png
diff --git a/output/designs/golden-pineapple-v2-sdxl.png b/output/archive-v2/golden-pineapple-v2-sdxl.png
similarity index 100%
rename from output/designs/golden-pineapple-v2-sdxl.png
rename to output/archive-v2/golden-pineapple-v2-sdxl.png
diff --git a/output/designs/golden-pineapple-v3-sdxl.png b/output/archive-v2/golden-pineapple-v3-sdxl.png
similarity index 100%
rename from output/designs/golden-pineapple-v3-sdxl.png
rename to output/archive-v2/golden-pineapple-v3-sdxl.png
diff --git a/output/designs/golden-pineapple-v4-nano.png b/output/archive-v2/golden-pineapple-v4-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v4-nano.png
rename to output/archive-v2/golden-pineapple-v4-nano.png
diff --git a/output/designs/golden-pineapple-v5-nano.png b/output/archive-v2/golden-pineapple-v5-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v5-nano.png
rename to output/archive-v2/golden-pineapple-v5-nano.png
diff --git a/output/designs/golden-pineapple-v6-nano.png b/output/archive-v2/golden-pineapple-v6-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v6-nano.png
rename to output/archive-v2/golden-pineapple-v6-nano.png
diff --git a/output/designs/herbarium-press-v1-nano.png b/output/archive-v2/herbarium-press-v1-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v1-nano.png
rename to output/archive-v2/herbarium-press-v1-nano.png
diff --git a/output/designs/herbarium-press-v2-sdxl.png b/output/archive-v2/herbarium-press-v2-sdxl.png
similarity index 100%
rename from output/designs/herbarium-press-v2-sdxl.png
rename to output/archive-v2/herbarium-press-v2-sdxl.png
diff --git a/output/designs/herbarium-press-v3-sdxl.png b/output/archive-v2/herbarium-press-v3-sdxl.png
similarity index 100%
rename from output/designs/herbarium-press-v3-sdxl.png
rename to output/archive-v2/herbarium-press-v3-sdxl.png
diff --git a/output/designs/herbarium-press-v4-nano.png b/output/archive-v2/herbarium-press-v4-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v4-nano.png
rename to output/archive-v2/herbarium-press-v4-nano.png
diff --git a/output/designs/herbarium-press-v5-nano.png b/output/archive-v2/herbarium-press-v5-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v5-nano.png
rename to output/archive-v2/herbarium-press-v5-nano.png
diff --git a/output/designs/herbarium-press-v6-nano.png b/output/archive-v2/herbarium-press-v6-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v6-nano.png
rename to output/archive-v2/herbarium-press-v6-nano.png
diff --git a/output/designs/lagoon-legends-v1-nano.png b/output/archive-v2/lagoon-legends-v1-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v1-nano.png
rename to output/archive-v2/lagoon-legends-v1-nano.png
diff --git a/output/designs/lagoon-legends-v2-sdxl.png b/output/archive-v2/lagoon-legends-v2-sdxl.png
similarity index 100%
rename from output/designs/lagoon-legends-v2-sdxl.png
rename to output/archive-v2/lagoon-legends-v2-sdxl.png
diff --git a/output/designs/lagoon-legends-v3-sdxl.png b/output/archive-v2/lagoon-legends-v3-sdxl.png
similarity index 100%
rename from output/designs/lagoon-legends-v3-sdxl.png
rename to output/archive-v2/lagoon-legends-v3-sdxl.png
diff --git a/output/designs/lagoon-legends-v4-nano.png b/output/archive-v2/lagoon-legends-v4-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v4-nano.png
rename to output/archive-v2/lagoon-legends-v4-nano.png
diff --git a/output/designs/lagoon-legends-v5-nano.png b/output/archive-v2/lagoon-legends-v5-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v5-nano.png
rename to output/archive-v2/lagoon-legends-v5-nano.png
diff --git a/output/designs/lagoon-legends-v6-nano.png b/output/archive-v2/lagoon-legends-v6-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v6-nano.png
rename to output/archive-v2/lagoon-legends-v6-nano.png
diff --git a/output/designs/lost-continent-v1-nano.png b/output/archive-v2/lost-continent-v1-nano.png
similarity index 100%
rename from output/designs/lost-continent-v1-nano.png
rename to output/archive-v2/lost-continent-v1-nano.png
diff --git a/output/designs/lost-continent-v2-sdxl.png b/output/archive-v2/lost-continent-v2-sdxl.png
similarity index 100%
rename from output/designs/lost-continent-v2-sdxl.png
rename to output/archive-v2/lost-continent-v2-sdxl.png
diff --git a/output/designs/lost-continent-v3-sdxl.png b/output/archive-v2/lost-continent-v3-sdxl.png
similarity index 100%
rename from output/designs/lost-continent-v3-sdxl.png
rename to output/archive-v2/lost-continent-v3-sdxl.png
diff --git a/output/designs/lost-continent-v4-nano.png b/output/archive-v2/lost-continent-v4-nano.png
similarity index 100%
rename from output/designs/lost-continent-v4-nano.png
rename to output/archive-v2/lost-continent-v4-nano.png
diff --git a/output/designs/lost-continent-v5-nano.png b/output/archive-v2/lost-continent-v5-nano.png
similarity index 100%
rename from output/designs/lost-continent-v5-nano.png
rename to output/archive-v2/lost-continent-v5-nano.png
diff --git a/output/designs/lost-continent-v6-nano.png b/output/archive-v2/lost-continent-v6-nano.png
similarity index 100%
rename from output/designs/lost-continent-v6-nano.png
rename to output/archive-v2/lost-continent-v6-nano.png
diff --git a/output/designs/midnight-frequency-v1-nano.png b/output/archive-v2/midnight-frequency-v1-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v1-nano.png
rename to output/archive-v2/midnight-frequency-v1-nano.png
diff --git a/output/designs/midnight-frequency-v2-sdxl.png b/output/archive-v2/midnight-frequency-v2-sdxl.png
similarity index 100%
rename from output/designs/midnight-frequency-v2-sdxl.png
rename to output/archive-v2/midnight-frequency-v2-sdxl.png
diff --git a/output/designs/midnight-frequency-v3-sdxl.png b/output/archive-v2/midnight-frequency-v3-sdxl.png
similarity index 100%
rename from output/designs/midnight-frequency-v3-sdxl.png
rename to output/archive-v2/midnight-frequency-v3-sdxl.png
diff --git a/output/designs/midnight-frequency-v4-nano.png b/output/archive-v2/midnight-frequency-v4-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v4-nano.png
rename to output/archive-v2/midnight-frequency-v4-nano.png
diff --git a/output/designs/midnight-frequency-v5-nano.png b/output/archive-v2/midnight-frequency-v5-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v5-nano.png
rename to output/archive-v2/midnight-frequency-v5-nano.png
diff --git a/output/designs/midnight-frequency-v6-nano.png b/output/archive-v2/midnight-frequency-v6-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v6-nano.png
rename to output/archive-v2/midnight-frequency-v6-nano.png
diff --git a/output/designs/mod-orbit-v1-nano.png b/output/archive-v2/mod-orbit-v1-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v1-nano.png
rename to output/archive-v2/mod-orbit-v1-nano.png
diff --git a/output/designs/mod-orbit-v2-sdxl.png b/output/archive-v2/mod-orbit-v2-sdxl.png
similarity index 100%
rename from output/designs/mod-orbit-v2-sdxl.png
rename to output/archive-v2/mod-orbit-v2-sdxl.png
diff --git a/output/designs/mod-orbit-v3-sdxl.png b/output/archive-v2/mod-orbit-v3-sdxl.png
similarity index 100%
rename from output/designs/mod-orbit-v3-sdxl.png
rename to output/archive-v2/mod-orbit-v3-sdxl.png
diff --git a/output/designs/mod-orbit-v4-nano.png b/output/archive-v2/mod-orbit-v4-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v4-nano.png
rename to output/archive-v2/mod-orbit-v4-nano.png
diff --git a/output/designs/mod-orbit-v5-nano.png b/output/archive-v2/mod-orbit-v5-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v5-nano.png
rename to output/archive-v2/mod-orbit-v5-nano.png
diff --git a/output/designs/mod-orbit-v6-nano.png b/output/archive-v2/mod-orbit-v6-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v6-nano.png
rename to output/archive-v2/mod-orbit-v6-nano.png
diff --git a/output/designs/monstera-bungalow-v1-nano.png b/output/archive-v2/monstera-bungalow-v1-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v1-nano.png
rename to output/archive-v2/monstera-bungalow-v1-nano.png
diff --git a/output/designs/monstera-bungalow-v2-sdxl.png b/output/archive-v2/monstera-bungalow-v2-sdxl.png
similarity index 100%
rename from output/designs/monstera-bungalow-v2-sdxl.png
rename to output/archive-v2/monstera-bungalow-v2-sdxl.png
diff --git a/output/designs/monstera-bungalow-v3-sdxl.png b/output/archive-v2/monstera-bungalow-v3-sdxl.png
similarity index 100%
rename from output/designs/monstera-bungalow-v3-sdxl.png
rename to output/archive-v2/monstera-bungalow-v3-sdxl.png
diff --git a/output/designs/monstera-bungalow-v4-nano.png b/output/archive-v2/monstera-bungalow-v4-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v4-nano.png
rename to output/archive-v2/monstera-bungalow-v4-nano.png
diff --git a/output/designs/monstera-bungalow-v5-nano.png b/output/archive-v2/monstera-bungalow-v5-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v5-nano.png
rename to output/archive-v2/monstera-bungalow-v5-nano.png
diff --git a/output/designs/monstera-bungalow-v6-nano.png b/output/archive-v2/monstera-bungalow-v6-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v6-nano.png
rename to output/archive-v2/monstera-bungalow-v6-nano.png
diff --git a/output/designs/moonrise-ikat-v1-nano.png b/output/archive-v2/moonrise-ikat-v1-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v1-nano.png
rename to output/archive-v2/moonrise-ikat-v1-nano.png
diff --git a/output/designs/moonrise-ikat-v2-sdxl.png b/output/archive-v2/moonrise-ikat-v2-sdxl.png
similarity index 100%
rename from output/designs/moonrise-ikat-v2-sdxl.png
rename to output/archive-v2/moonrise-ikat-v2-sdxl.png
diff --git a/output/designs/moonrise-ikat-v3-sdxl.png b/output/archive-v2/moonrise-ikat-v3-sdxl.png
similarity index 100%
rename from output/designs/moonrise-ikat-v3-sdxl.png
rename to output/archive-v2/moonrise-ikat-v3-sdxl.png
diff --git a/output/designs/moonrise-ikat-v4-nano.png b/output/archive-v2/moonrise-ikat-v4-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v4-nano.png
rename to output/archive-v2/moonrise-ikat-v4-nano.png
diff --git a/output/designs/moonrise-ikat-v5-nano.png b/output/archive-v2/moonrise-ikat-v5-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v5-nano.png
rename to output/archive-v2/moonrise-ikat-v5-nano.png
diff --git a/output/designs/moonrise-ikat-v6-nano.png b/output/archive-v2/moonrise-ikat-v6-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v6-nano.png
rename to output/archive-v2/moonrise-ikat-v6-nano.png
diff --git a/output/designs/night-jungle-v1-nano.png b/output/archive-v2/night-jungle-v1-nano.png
similarity index 100%
rename from output/designs/night-jungle-v1-nano.png
rename to output/archive-v2/night-jungle-v1-nano.png
diff --git a/output/designs/night-jungle-v2-sdxl.png b/output/archive-v2/night-jungle-v2-sdxl.png
similarity index 100%
rename from output/designs/night-jungle-v2-sdxl.png
rename to output/archive-v2/night-jungle-v2-sdxl.png
diff --git a/output/designs/night-jungle-v3-sdxl.png b/output/archive-v2/night-jungle-v3-sdxl.png
similarity index 100%
rename from output/designs/night-jungle-v3-sdxl.png
rename to output/archive-v2/night-jungle-v3-sdxl.png
diff --git a/output/designs/night-jungle-v4-nano.png b/output/archive-v2/night-jungle-v4-nano.png
similarity index 100%
rename from output/designs/night-jungle-v4-nano.png
rename to output/archive-v2/night-jungle-v4-nano.png
diff --git a/output/designs/night-jungle-v5-nano.png b/output/archive-v2/night-jungle-v5-nano.png
similarity index 100%
rename from output/designs/night-jungle-v5-nano.png
rename to output/archive-v2/night-jungle-v5-nano.png
diff --git a/output/designs/night-jungle-v6-nano.png b/output/archive-v2/night-jungle-v6-nano.png
similarity index 100%
rename from output/designs/night-jungle-v6-nano.png
rename to output/archive-v2/night-jungle-v6-nano.png
diff --git a/output/designs/painted-feathers-v1-nano.png b/output/archive-v2/painted-feathers-v1-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v1-nano.png
rename to output/archive-v2/painted-feathers-v1-nano.png
diff --git a/output/designs/painted-feathers-v2-sdxl.png b/output/archive-v2/painted-feathers-v2-sdxl.png
similarity index 100%
rename from output/designs/painted-feathers-v2-sdxl.png
rename to output/archive-v2/painted-feathers-v2-sdxl.png
diff --git a/output/designs/painted-feathers-v3-sdxl.png b/output/archive-v2/painted-feathers-v3-sdxl.png
similarity index 100%
rename from output/designs/painted-feathers-v3-sdxl.png
rename to output/archive-v2/painted-feathers-v3-sdxl.png
diff --git a/output/designs/painted-feathers-v4-nano.png b/output/archive-v2/painted-feathers-v4-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v4-nano.png
rename to output/archive-v2/painted-feathers-v4-nano.png
diff --git a/output/designs/painted-feathers-v5-nano.png b/output/archive-v2/painted-feathers-v5-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v5-nano.png
rename to output/archive-v2/painted-feathers-v5-nano.png
diff --git a/output/designs/painted-feathers-v6-nano.png b/output/archive-v2/painted-feathers-v6-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v6-nano.png
rename to output/archive-v2/painted-feathers-v6-nano.png
diff --git a/output/designs/plumbline-v1-nano.png b/output/archive-v2/plumbline-v1-nano.png
similarity index 100%
rename from output/designs/plumbline-v1-nano.png
rename to output/archive-v2/plumbline-v1-nano.png
diff --git a/output/designs/plumbline-v2-sdxl.png b/output/archive-v2/plumbline-v2-sdxl.png
similarity index 100%
rename from output/designs/plumbline-v2-sdxl.png
rename to output/archive-v2/plumbline-v2-sdxl.png
diff --git a/output/designs/plumbline-v3-sdxl.png b/output/archive-v2/plumbline-v3-sdxl.png
similarity index 100%
rename from output/designs/plumbline-v3-sdxl.png
rename to output/archive-v2/plumbline-v3-sdxl.png
diff --git a/output/designs/plumbline-v4-nano.png b/output/archive-v2/plumbline-v4-nano.png
similarity index 100%
rename from output/designs/plumbline-v4-nano.png
rename to output/archive-v2/plumbline-v4-nano.png
diff --git a/output/designs/plumbline-v5-nano.png b/output/archive-v2/plumbline-v5-nano.png
similarity index 100%
rename from output/designs/plumbline-v5-nano.png
rename to output/archive-v2/plumbline-v5-nano.png
diff --git a/output/designs/plumbline-v6-nano.png b/output/archive-v2/plumbline-v6-nano.png
similarity index 100%
rename from output/designs/plumbline-v6-nano.png
rename to output/archive-v2/plumbline-v6-nano.png
diff --git a/output/designs/ray-shadow-v1-nano.png b/output/archive-v2/ray-shadow-v1-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v1-nano.png
rename to output/archive-v2/ray-shadow-v1-nano.png
diff --git a/output/designs/ray-shadow-v2-sdxl.png b/output/archive-v2/ray-shadow-v2-sdxl.png
similarity index 100%
rename from output/designs/ray-shadow-v2-sdxl.png
rename to output/archive-v2/ray-shadow-v2-sdxl.png
diff --git a/output/designs/ray-shadow-v3-sdxl.png b/output/archive-v2/ray-shadow-v3-sdxl.png
similarity index 100%
rename from output/designs/ray-shadow-v3-sdxl.png
rename to output/archive-v2/ray-shadow-v3-sdxl.png
diff --git a/output/designs/ray-shadow-v4-nano.png b/output/archive-v2/ray-shadow-v4-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v4-nano.png
rename to output/archive-v2/ray-shadow-v4-nano.png
diff --git a/output/designs/ray-shadow-v5-nano.png b/output/archive-v2/ray-shadow-v5-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v5-nano.png
rename to output/archive-v2/ray-shadow-v5-nano.png
diff --git a/output/designs/ray-shadow-v6-nano.png b/output/archive-v2/ray-shadow-v6-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v6-nano.png
rename to output/archive-v2/ray-shadow-v6-nano.png
diff --git a/output/designs/regatta-day-v1-nano.png b/output/archive-v2/regatta-day-v1-nano.png
similarity index 100%
rename from output/designs/regatta-day-v1-nano.png
rename to output/archive-v2/regatta-day-v1-nano.png
diff --git a/output/designs/regatta-day-v2-sdxl.png b/output/archive-v2/regatta-day-v2-sdxl.png
similarity index 100%
rename from output/designs/regatta-day-v2-sdxl.png
rename to output/archive-v2/regatta-day-v2-sdxl.png
diff --git a/output/designs/regatta-day-v3-sdxl.png b/output/archive-v2/regatta-day-v3-sdxl.png
similarity index 100%
rename from output/designs/regatta-day-v3-sdxl.png
rename to output/archive-v2/regatta-day-v3-sdxl.png
diff --git a/output/designs/regatta-day-v4-nano.png b/output/archive-v2/regatta-day-v4-nano.png
similarity index 100%
rename from output/designs/regatta-day-v4-nano.png
rename to output/archive-v2/regatta-day-v4-nano.png
diff --git a/output/designs/regatta-day-v5-nano.png b/output/archive-v2/regatta-day-v5-nano.png
similarity index 100%
rename from output/designs/regatta-day-v5-nano.png
rename to output/archive-v2/regatta-day-v5-nano.png
diff --git a/output/designs/regatta-day-v6-nano.png b/output/archive-v2/regatta-day-v6-nano.png
similarity index 100%
rename from output/designs/regatta-day-v6-nano.png
rename to output/archive-v2/regatta-day-v6-nano.png
diff --git a/output/designs/robot-parade-v1-nano.png b/output/archive-v2/robot-parade-v1-nano.png
similarity index 100%
rename from output/designs/robot-parade-v1-nano.png
rename to output/archive-v2/robot-parade-v1-nano.png
diff --git a/output/designs/robot-parade-v2-sdxl.png b/output/archive-v2/robot-parade-v2-sdxl.png
similarity index 100%
rename from output/designs/robot-parade-v2-sdxl.png
rename to output/archive-v2/robot-parade-v2-sdxl.png
diff --git a/output/designs/robot-parade-v3-sdxl.png b/output/archive-v2/robot-parade-v3-sdxl.png
similarity index 100%
rename from output/designs/robot-parade-v3-sdxl.png
rename to output/archive-v2/robot-parade-v3-sdxl.png
diff --git a/output/designs/robot-parade-v4-nano.png b/output/archive-v2/robot-parade-v4-nano.png
similarity index 100%
rename from output/designs/robot-parade-v4-nano.png
rename to output/archive-v2/robot-parade-v4-nano.png
diff --git a/output/designs/robot-parade-v5-nano.png b/output/archive-v2/robot-parade-v5-nano.png
similarity index 100%
rename from output/designs/robot-parade-v5-nano.png
rename to output/archive-v2/robot-parade-v5-nano.png
diff --git a/output/designs/robot-parade-v6-nano.png b/output/archive-v2/robot-parade-v6-nano.png
similarity index 100%
rename from output/designs/robot-parade-v6-nano.png
rename to output/archive-v2/robot-parade-v6-nano.png
diff --git a/output/designs/tidepool-bloom-v1-nano.png b/output/archive-v2/tidepool-bloom-v1-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v1-nano.png
rename to output/archive-v2/tidepool-bloom-v1-nano.png
diff --git a/output/designs/tidepool-bloom-v2-sdxl.png b/output/archive-v2/tidepool-bloom-v2-sdxl.png
similarity index 100%
rename from output/designs/tidepool-bloom-v2-sdxl.png
rename to output/archive-v2/tidepool-bloom-v2-sdxl.png
diff --git a/output/designs/tidepool-bloom-v3-sdxl.png b/output/archive-v2/tidepool-bloom-v3-sdxl.png
similarity index 100%
rename from output/designs/tidepool-bloom-v3-sdxl.png
rename to output/archive-v2/tidepool-bloom-v3-sdxl.png
diff --git a/output/designs/tidepool-bloom-v4-nano.png b/output/archive-v2/tidepool-bloom-v4-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v4-nano.png
rename to output/archive-v2/tidepool-bloom-v4-nano.png
diff --git a/output/designs/tidepool-bloom-v5-nano.png b/output/archive-v2/tidepool-bloom-v5-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v5-nano.png
rename to output/archive-v2/tidepool-bloom-v5-nano.png
diff --git a/output/designs/tidepool-bloom-v6-nano.png b/output/archive-v2/tidepool-bloom-v6-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v6-nano.png
rename to output/archive-v2/tidepool-bloom-v6-nano.png
diff --git a/output/test/astral-tiger-scale-test.png b/output/test/astral-tiger-scale-test.png
new file mode 100644
index 0000000..c769eda
Binary files /dev/null and b/output/test/astral-tiger-scale-test.png differ
diff --git a/output/test/astral-tiger-scale-test2.png b/output/test/astral-tiger-scale-test2.png
new file mode 100644
index 0000000..4c952e2
Binary files /dev/null and b/output/test/astral-tiger-scale-test2.png differ
diff --git a/scripts/batch_gen.py b/scripts/batch_gen.py
index 9289195..2f5c2d3 100644
--- a/scripts/batch_gen.py
+++ b/scripts/batch_gen.py
@@ -36,6 +36,17 @@ def hexname(h):
 HARD_NEG = ("HARD RULE: never include birds, butterflies, bananas, banana pods, "
             "or grapes anywhere in the design.")
 
+def scale_clause(brief):
+    s = brief.get("scale", "")
+    m = brief.get("scale_measured", {})
+    if m.get("motifs_across", 99) <= 2:
+        pct = round(100 * m.get("motif_width_fraction", 0.7))
+        s += (f". CRITICAL SCALE RULE: this is a MURAL-SCALE pattern — each primary motif is "
+              f"HUGE, spanning about {pct}% of the tile width; barely more than ONE motif fits "
+              f"across the tile; the motif dominates the frame like a close-up. Do NOT shrink "
+              f"the motif")
+    return s
+
 def full_prompt(brief, engine, variation=""):
     pal = brief.get("palette", [])
     if engine == "nano":
@@ -49,7 +60,8 @@ def full_prompt(brief, engine, variation=""):
              f"different proportions, different pose, and different placement on the repeat grid — "
              f"if the reference and this design were overlaid, NOTHING should line up or match. "
              f"If the reference shows a specific object (a boat, a robot, a flower), design a "
-             f"visibly different one of our own. Subject to draw: {brief['prompt']}. "
+             f"visibly different one of our own. Motif scale: {scale_clause(brief)}. "
+             f"Subject to draw: {brief['prompt']}. "
              f"{HARD_NEG}")
         if variation:
             p += " Variation: " + variation
@@ -61,7 +73,7 @@ def full_prompt(brief, engine, variation=""):
             names.append(n)
     p = brief["prompt"] + "; flat screen print using ONLY these few colors: " + ", ".join(names)
     if brief.get("scale"):
-        p += "; motif scale: " + brief["scale"]
+        p += "; motif scale: " + scale_clause(brief)
     if variation:
         p += "; " + variation
     return p

← 20e94c4 auto-save: 2026-07-22T14:14:43 (1 files) — scripts/measure_s  ·  back to Wild Wallcoverings  ·  auto-save: 2026-07-22T14:44:58 (2 files) — data/designs.json bcd1ac1 →