[object Object]

← back to Wild Wallcoverings

POLICY: generator never sees reference images; copy-check gate added; reference-driven nano archived

0947758e7826ace232995895ba3e6c0b5fbca906 · 2026-07-22 17:29:24 -0700 · Steve Abrams

Files touched

Diff

commit 0947758e7826ace232995895ba3e6c0b5fbca906
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jul 22 17:29:24 2026 -0700

    POLICY: generator never sees reference images; copy-check gate added; reference-driven nano archived
---
 data/choices.json                                  |    7 +-
 data/designs.json                                  | 2657 ++++----------------
 .../arcade-memory-v1-nano.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-v4-nano.png                       |  Bin
 .../astral-tiger-v5-nano.png                       |  Bin
 .../astral-tiger-v6-nano.png                       |  Bin
 .../bodega-cats-v1-nano.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-v4-nano.png                     |  Bin
 .../campfire-toile-v5-nano.png                     |  Bin
 .../campfire-toile-v6-nano.png                     |  Bin
 .../circle-fields-v1-nano.png                      |  Bin
 .../circle-fields-v4-nano.png                      |  Bin
 .../circle-fields-v5-nano.png                      |  Bin
 .../circle-fields-v6-nano.png                      |  Bin
 .../{designs => archive-v3}/daily-dose-v1-nano.png |  Bin
 .../{designs => archive-v3}/daily-dose-v4-nano.png |  Bin
 .../{designs => archive-v3}/daily-dose-v5-nano.png |  Bin
 .../{designs => archive-v3}/daily-dose-v6-nano.png |  Bin
 .../desert-choir-v1-nano.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-v4-nano.png                       |  Bin
 .../dream-clouds-v5-nano.png                       |  Bin
 .../dream-clouds-v6-nano.png                       |  Bin
 .../fungi-skyline-v1-nano.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-v4-nano.png                        |  Bin
 .../galaxy-bots-v5-nano.png                        |  Bin
 .../galaxy-bots-v6-nano.png                        |  Bin
 .../golden-pineapple-v1-nano.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-v4-nano.png                    |  Bin
 .../herbarium-press-v5-nano.png                    |  Bin
 .../herbarium-press-v6-nano.png                    |  Bin
 .../lagoon-legends-v1-nano.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-v4-nano.png                     |  Bin
 .../lost-continent-v5-nano.png                     |  Bin
 .../lost-continent-v6-nano.png                     |  Bin
 .../midnight-frequency-v1-nano.png                 |  Bin
 .../midnight-frequency-v4-nano.png                 |  Bin
 .../midnight-frequency-v5-nano.png                 |  Bin
 .../midnight-frequency-v6-nano.png                 |  Bin
 .../{designs => archive-v3}/mod-orbit-v1-nano.png  |  Bin
 .../{designs => archive-v3}/mod-orbit-v4-nano.png  |  Bin
 .../{designs => archive-v3}/mod-orbit-v5-nano.png  |  Bin
 .../{designs => archive-v3}/mod-orbit-v6-nano.png  |  Bin
 .../monstera-bungalow-v1-nano.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-v4-nano.png                      |  Bin
 .../moonrise-ikat-v5-nano.png                      |  Bin
 .../moonrise-ikat-v6-nano.png                      |  Bin
 .../night-jungle-v1-nano.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-v4-nano.png                   |  Bin
 .../painted-feathers-v5-nano.png                   |  Bin
 .../painted-feathers-v6-nano.png                   |  Bin
 .../{designs => archive-v3}/plumbline-v1-nano.png  |  Bin
 .../{designs => archive-v3}/plumbline-v4-nano.png  |  Bin
 .../{designs => archive-v3}/plumbline-v5-nano.png  |  Bin
 .../{designs => archive-v3}/plumbline-v6-nano.png  |  Bin
 .../{designs => archive-v3}/ray-shadow-v1-nano.png |  Bin
 .../{designs => archive-v3}/ray-shadow-v4-nano.png |  Bin
 .../{designs => archive-v3}/ray-shadow-v5-nano.png |  Bin
 .../{designs => archive-v3}/ray-shadow-v6-nano.png |  Bin
 .../regatta-day-v1-nano.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-v4-nano.png                       |  Bin
 .../robot-parade-v5-nano.png                       |  Bin
 .../robot-parade-v6-nano.png                       |  Bin
 .../tidepool-bloom-v1-nano.png                     |  Bin
 .../tidepool-bloom-v4-nano.png                     |  Bin
 .../tidepool-bloom-v5-nano.png                     |  Bin
 .../tidepool-bloom-v6-nano.png                     |  Bin
 scripts/batch_gen.py                               |   23 +-
 scripts/copy_check.py                              |   69 +
 104 files changed, 510 insertions(+), 2246 deletions(-)

diff --git a/data/choices.json b/data/choices.json
index 9e26dfe..aa095ac 100644
--- a/data/choices.json
+++ b/data/choices.json
@@ -1 +1,6 @@
-{}
\ No newline at end of file
+{
+  "mod-orbit": {
+    "variant": "mod-orbit-v1-nano.png",
+    "chosen_at": "2026-07-23T00:24:38.492Z"
+  }
+}
\ No newline at end of file
diff --git a/data/designs.json b/data/designs.json
index c0c7a16..9cf0aa4 100644
--- a/data/designs.json
+++ b/data/designs.json
@@ -7,78 +7,6 @@
   "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-22T21:24:48.793714+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "astral-tiger-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:24:59.022881+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "astral-tiger-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:25:08.773518+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "astral-tiger-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:25:19.471841+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
    {
     "file": "astral-tiger-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -148,9 +76,9 @@
   "created_at": "2026-07-22T19:18:36.892674+00:00",
   "variants": [
    {
-    "file": "midnight-frequency-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:25:28.806923+00:00",
+    "file": "midnight-frequency-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:28:32.374520+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -166,9 +94,9 @@
     }
    },
    {
-    "file": "midnight-frequency-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:25:40.729202+00:00",
+    "file": "midnight-frequency-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:29:48.677482+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -184,9 +112,12 @@
     }
    },
    {
-    "file": "midnight-frequency-v5-nano.png",
+    "file": "midnight-frequency-v7-nano.png",
     "engine": "nano-banana",
-    "created_at": "2026-07-22T21:25:50.891788+00:00",
+    "created_at": "2026-07-23T00:07:29.653323+00:00",
+    "tile": {
+     "verdict": "PASS"
+    },
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -195,16 +126,27 @@
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": false
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-midnight-frequency.jpg",
+   "title": "Analog Nights Thunder"
+  },
+  "colorway": "Gunmetal Fog"
+ },
+ {
+  "id": "robot-parade",
+  "title": "Automaton Waltz",
+  "theme": "classic toy robots",
+  "description": "Big Robots (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:18:44.703698+00:00",
+  "variants": [
    {
-    "file": "midnight-frequency-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:00.562620+00:00",
+    "file": "robot-parade-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:31:05.013620+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -212,17 +154,17 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
-     "verdict": "WARN",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "midnight-frequency-v2-sdxl.png",
+    "file": "robot-parade-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:28:32.374520+00:00",
+    "created_at": "2026-07-22T21:32:17.498257+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -230,17 +172,32 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
-     "verdict": "FAIL",
+     "verdict": "WARN",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-robot-parade.jpg",
+   "title": "Big Robots Tin"
+  },
+  "colorway": "Silver & Chalk"
+ },
+ {
+  "id": "galaxy-bots",
+  "title": "Cosmodrome Circus",
+  "theme": "robots in outer space",
+  "description": "Astrobots (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:18:53.231918+00:00",
+  "variants": [
    {
-    "file": "midnight-frequency-v3-sdxl.png",
+    "file": "galaxy-bots-v2-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:29:48.677482+00:00",
+    "created_at": "2026-07-22T21:33:33.810453+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -256,12 +213,9 @@
     }
    },
    {
-    "file": "midnight-frequency-v7-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-23T00:07:29.653323+00:00",
-    "tile": {
-     "verdict": "PASS"
-    },
+    "file": "galaxy-bots-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:34:46.315492+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -270,85 +224,104 @@
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": false
+    },
+    "tile": {
+     "verdict": "FAIL",
+     "max": null
     }
    }
   ],
   "reference": {
-   "file": "ref-midnight-frequency.jpg",
-   "title": "Analog Nights Thunder"
+   "file": "ref-galaxy-bots.jpg",
+   "title": "Astrobots Thunder"
   },
-  "colorway": "Gunmetal Fog"
+  "colorway": "Graphite Static"
  },
  {
-  "id": "robot-parade",
-  "title": "Automaton Waltz",
-  "theme": "classic toy robots",
-  "description": "Big Robots (theme only)",
+  "id": "herbarium-press",
+  "title": "Gilded Meadow Archive",
+  "theme": "pressed botanical flowers",
+  "description": "Herbario family (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:18:44.703698+00:00",
+  "created_at": "2026-07-22T19:19:01.485722+00:00",
   "variants": [
    {
-    "file": "robot-parade-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:12.130152+00:00",
+    "file": "herbarium-press-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:36:02.649622+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "robot-parade-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:23.679444+00:00",
+    "file": "herbarium-press-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:37:15.081937+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-herbarium-press.jpg",
+   "title": "Herbario Canary"
+  },
+  "colorway": "Saffron & Bone"
+ },
+ {
+  "id": "desert-choir",
+  "title": "Cactus Cathedral",
+  "theme": "oversized southwest cacti",
+  "description": "Cactus Spirit (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:19:08.811454+00:00",
+  "variants": [
    {
-    "file": "robot-parade-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:36.526022+00:00",
+    "file": "desert-choir-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:38:31.466642+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
-     "b_matched": "empty",
+     "b_matched": "",
      "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "WARN",
      "max": null
     }
    },
    {
-    "file": "robot-parade-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:49.258393+00:00",
+    "file": "desert-choir-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:39:47.819647+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
@@ -358,11 +331,26 @@
      "verdict": "PASS",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-desert-choir.jpg",
+   "title": "Cactus Spirit Rosegold"
+  },
+  "colorway": "Blush & Alabaster"
+ },
+ {
+  "id": "ray-shadow",
+  "title": "Velvet Ray Ballet",
+  "theme": "spotted eagle ray skin",
+  "description": "Sea Ray (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:19:16.192537+00:00",
+  "variants": [
    {
-    "file": "robot-parade-v2-sdxl.png",
+    "file": "ray-shadow-v2-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:31:05.013620+00:00",
+    "created_at": "2026-07-22T21:41:04.188883+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -373,22 +361,22 @@
      "acceptable": true
     },
     "tile": {
-     "verdict": "FAIL",
+     "verdict": "WARN",
      "max": null
     }
    },
    {
-    "file": "robot-parade-v3-sdxl.png",
+    "file": "ray-shadow-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:32:17.498257+00:00",
+    "created_at": "2026-07-22T21:42:16.595011+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
      "verdict": "WARN",
@@ -397,23 +385,23 @@
    }
   ],
   "reference": {
-   "file": "ref-robot-parade.jpg",
-   "title": "Big Robots Tin"
+   "file": "ref-ray-shadow.jpg",
+   "title": "Sea Ray Rosewood"
   },
-  "colorway": "Silver & Chalk"
+  "colorway": "Dusty Rose Wash"
  },
  {
-  "id": "galaxy-bots",
-  "title": "Cosmodrome Circus",
-  "theme": "robots in outer space",
-  "description": "Astrobots (theme only)",
+  "id": "moonrise-ikat",
+  "title": "Lunar Loom",
+  "theme": "moon phases as ikat",
+  "description": "Earthlight (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:18:53.231918+00:00",
+  "created_at": "2026-07-22T19:19:24.429045+00:00",
   "variants": [
    {
-    "file": "galaxy-bots-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:26:59.629503+00:00",
+    "file": "moonrise-ikat-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:43:32.979165+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -421,7 +409,7 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
      "verdict": "PASS",
@@ -429,9 +417,9 @@
     }
    },
    {
-    "file": "galaxy-bots-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:27:09.194540+00:00",
+    "file": "moonrise-ikat-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -445,55 +433,52 @@
      "verdict": "PASS",
      "max": null
     }
-   },
-   {
-    "file": "galaxy-bots-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:27:19.201779+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-moonrise-ikat.jpg",
+   "title": "Earthlight Ashlar"
+  },
+  "colorway": "Alabaster Veil"
+ },
+ {
+  "id": "night-jungle",
+  "title": "Midnight Menagerie",
+  "theme": "nocturnal jungle flora and fauna",
+  "description": "Jungle Dream (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:19:32.563982+00:00",
+  "variants": [
    {
-    "file": "galaxy-bots-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:27:29.196604+00:00",
+    "file": "night-jungle-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "galaxy-bots-v2-sdxl.png",
+    "file": "night-jungle-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:33:33.810453+00:00",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
      "verdict": "FAIL",
@@ -501,60 +486,59 @@
     }
    },
    {
-    "file": "galaxy-bots-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:34:46.315492+00:00",
+    "file": "night-jungle-v7-nano.png",
+    "engine": "nano-banana",
+    "created_at": "2026-07-23T00:07:29.653323+00:00",
+    "tile": {
+     "verdict": "FAIL"
+    },
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
+     "acceptable": true
     }
    }
   ],
   "reference": {
-   "file": "ref-galaxy-bots.jpg",
-   "title": "Astrobots Thunder"
+   "file": "ref-night-jungle.jpg",
+   "title": "Jungle Dream Charcoal"
   },
-  "colorway": "Graphite Static"
+  "colorway": "Ink Jungle"
  },
  {
-  "id": "herbarium-press",
-  "title": "Gilded Meadow Archive",
-  "theme": "pressed botanical flowers",
-  "description": "Herbario family (theme only)",
+  "id": "golden-pineapple",
+  "title": "Pineapple Palazzo",
+  "theme": "pineapple welcome",
+  "description": "Pi\u00f1a Sola (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:19:01.485722+00:00",
+  "created_at": "2026-07-22T19:19:39.573122+00:00",
   "variants": [
    {
-    "file": "herbarium-press-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:27:40.874614+00:00",
+    "file": "golden-pineapple-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
      "a2_open_space": true,
-     "a3_multi_color_leaves": false,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": true
     },
     "tile": {
-     "verdict": "WARN",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "herbarium-press-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:27:51.901661+00:00",
+    "file": "golden-pineapple-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
@@ -570,27 +554,41 @@
     }
    },
    {
-    "file": "herbarium-press-v5-nano.png",
+    "file": "golden-pineapple-v7-nano.png",
     "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:01.431134+00:00",
+    "created_at": "2026-07-23T00:07:29.653323+00:00",
+    "tile": {
+     "verdict": "FAIL"
+    },
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
      "a2_open_space": true,
-     "a3_multi_color_leaves": true,
+     "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": true
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-golden-pineapple.jpg",
+   "title": "Pi\u00f1a Sola Charcoal"
+  },
+  "colorway": "Noir & Silver"
+ },
+ {
+  "id": "monstera-bungalow",
+  "title": "Emerald Riviera",
+  "theme": "monstera leaves",
+  "description": "Deliciosa (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:19:47.415754+00:00",
+  "variants": [
    {
-    "file": "herbarium-press-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:13.163490+00:00",
+    "file": "monstera-bungalow-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
@@ -601,65 +599,65 @@
      "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "herbarium-press-v2-sdxl.png",
+    "file": "monstera-bungalow-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:36:02.649622+00:00",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
      "a2_open_space": true,
-     "a3_multi_color_leaves": false,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
      "verdict": "FAIL",
      "max": null
-    }
+    },
+    "borderline": true
    },
    {
-    "file": "herbarium-press-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:37:15.081937+00:00",
+    "file": "monstera-bungalow-v7-nano.png",
+    "engine": "nano-banana",
+    "created_at": "2026-07-23T00:07:29.653323+00:00",
+    "tile": {
+     "verdict": "FAIL"
+    },
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
      "a2_open_space": true,
-     "a3_multi_color_leaves": false,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": true
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
     }
    }
   ],
   "reference": {
-   "file": "ref-herbarium-press.jpg",
-   "title": "Herbario Canary"
+   "file": "ref-monstera-bungalow.jpg",
+   "title": "Deliciosa Bungalow"
   },
-  "colorway": "Saffron & Bone"
+  "colorway": "Fern & Ivory"
  },
  {
-  "id": "desert-choir",
-  "title": "Cactus Cathedral",
-  "theme": "oversized southwest cacti",
-  "description": "Cactus Spirit (theme only)",
+  "id": "painted-feathers",
+  "title": "Feather Fandango",
+  "theme": "folk feather stripes",
+  "description": "Indian Summer (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:19:08.811454+00:00",
+  "created_at": "2026-07-22T19:19:56.756156+00:00",
   "variants": [
    {
-    "file": "desert-choir-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:22.289256+00:00",
+    "file": "painted-feathers-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:54:44.979625+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
@@ -670,32 +668,35 @@
      "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "desert-choir-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:31.392012+00:00",
+    "file": "painted-feathers-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:27:26.559229+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
      "a2_open_space": true,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
-     "b_matched": "",
+     "b_matched": "empty",
      "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "desert-choir-v5-nano.png",
+    "file": "painted-feathers-v7-nano.png",
     "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:40.389465+00:00",
+    "created_at": "2026-07-23T00:07:29.653323+00:00",
+    "tile": {
+     "verdict": "PASS"
+    },
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": true,
@@ -704,139 +705,27 @@
      "b_prohibited": false,
      "b_matched": "",
      "acceptable": true
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-painted-feathers.jpg",
+   "title": "Indian Summer Sphinx"
+  },
+  "colorway": "Camel & Chalk"
+ },
+ {
+  "id": "tidepool-bloom",
+  "title": "Anemone Opera",
+  "theme": "sea anemone texture",
+  "description": "Anemone (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:04.111473+00:00",
+  "variants": [
    {
-    "file": "desert-choir-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:28:49.892493+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "desert-choir-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:38:31.466642+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "desert-choir-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:39:47.819647+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-desert-choir.jpg",
-   "title": "Cactus Spirit Rosegold"
-  },
-  "colorway": "Blush & Alabaster"
- },
- {
-  "id": "ray-shadow",
-  "title": "Velvet Ray Ballet",
-  "theme": "spotted eagle ray skin",
-  "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-22T21:28:59.247462+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "ray-shadow-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:29:08.612208+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "ray-shadow-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:29:17.991417+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "ray-shadow-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:29:27.110827+00:00",
+    "file": "tidepool-bloom-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T21:56:01.384726+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -852,159 +741,18 @@
     }
    },
    {
-    "file": "ray-shadow-v2-sdxl.png",
+    "file": "tidepool-bloom-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:41:04.188883+00:00",
+    "created_at": "2026-07-22T21:57:13.956759+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "ray-shadow-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:42:16.595011+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
     },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-ray-shadow.jpg",
-   "title": "Sea Ray Rosewood"
-  },
-  "colorway": "Dusty Rose Wash"
- },
- {
-  "id": "moonrise-ikat",
-  "title": "Lunar Loom",
-  "theme": "moon phases as ikat",
-  "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-22T21:29:37.658750+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "moonrise-ikat-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:29:48.807895+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "moonrise-ikat-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:29:58.763454+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "moonrise-ikat-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:30:08.667258+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "moonrise-ikat-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:43:32.979165+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "moonrise-ikat-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
     "tile": {
      "verdict": "PASS",
      "max": null
@@ -1012,1290 +760,41 @@
    }
   ],
   "reference": {
-   "file": "ref-moonrise-ikat.jpg",
-   "title": "Earthlight Ashlar"
+   "file": "ref-tidepool-bloom.jpg",
+   "title": "Anemone Zephyr"
   },
-  "colorway": "Alabaster Veil"
+  "colorway": "Powder Tide"
  },
  {
-  "id": "night-jungle",
-  "title": "Midnight Menagerie",
-  "theme": "nocturnal jungle flora and fauna",
-  "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-22T21:30:19.064013+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:30:29.303266+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:30:40.361786+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:30:51.520312+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "night-jungle-v7-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-23T00:07:29.653323+00:00",
-    "tile": {
-     "verdict": "FAIL"
-    },
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-night-jungle.jpg",
-   "title": "Jungle Dream Charcoal"
-  },
-  "colorway": "Ink Jungle"
- },
- {
-  "id": "golden-pineapple",
-  "title": "Pineapple Palazzo",
-  "theme": "pineapple welcome",
-  "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-22T21:31:02.529078+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:31:13.347505+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:31:24.672913+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:31:35.463891+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "golden-pineapple-v7-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-23T00:07:29.653323+00:00",
-    "tile": {
-     "verdict": "FAIL"
-    },
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-golden-pineapple.jpg",
-   "title": "Pi\u00f1a Sola Charcoal"
-  },
-  "colorway": "Noir & Silver"
- },
- {
-  "id": "monstera-bungalow",
-  "title": "Emerald Riviera",
-  "theme": "monstera leaves",
-  "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-22T21:31:45.753860+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "monstera-bungalow-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:31:55.438881+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "monstera-bungalow-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:32:05.112498+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "monstera-bungalow-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:32:16.509716+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "monstera-bungalow-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "monstera-bungalow-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    },
-    "borderline": true
-   },
-   {
-    "file": "monstera-bungalow-v7-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-23T00:07:29.653323+00:00",
-    "tile": {
-     "verdict": "FAIL"
-    },
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": true,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-monstera-bungalow.jpg",
-   "title": "Deliciosa Bungalow"
-  },
-  "colorway": "Fern & Ivory"
- },
- {
-  "id": "painted-feathers",
-  "title": "Feather Fandango",
-  "theme": "folk feather stripes",
-  "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-22T21:32:26.682530+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "painted-feathers-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:32:37.703495+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "painted-feathers-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:32:48.560120+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "painted-feathers-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:33:00.539870+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    },
-    "borderline": true
-   },
-   {
-    "file": "painted-feathers-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:54:44.979625+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "painted-feathers-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:27:26.559229+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "painted-feathers-v7-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-23T00:07:29.653323+00:00",
-    "tile": {
-     "verdict": "PASS"
-    },
-    "settlement": "OK",
-    "settlement_detail": {
-     "a1_directional_foliage": true,
-     "a2_open_space": true,
-     "a3_multi_color_leaves": false,
-     "b_prohibited": false,
-     "b_matched": "",
-     "acceptable": true
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-painted-feathers.jpg",
-   "title": "Indian Summer Sphinx"
-  },
-  "colorway": "Camel & Chalk"
- },
- {
-  "id": "tidepool-bloom",
-  "title": "Anemone Opera",
-  "theme": "sea anemone texture",
-  "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-22T21:33:09.969386+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "tidepool-bloom-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:33:19.110289+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "tidepool-bloom-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:33:28.450660+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "tidepool-bloom-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:33:37.820224+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "tidepool-bloom-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:56:01.384726+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "tidepool-bloom-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:57:13.956759+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": false
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-tidepool-bloom.jpg",
-   "title": "Anemone Zephyr"
-  },
-  "colorway": "Powder Tide"
- },
- {
-  "id": "mod-orbit",
-  "title": "Orbit Deluxe",
-  "theme": "mod geometric",
-  "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-22T21:33:50.812991+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "mod-orbit-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:34:08.401167+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "mod-orbit-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:42:40.554134+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "mod-orbit-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:42:50.918374+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "mod-orbit-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:58:30.389768+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "mod-orbit-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T21:59:42.965320+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-mod-orbit.jpg",
-   "title": "Baby Azzurro"
-  },
-  "colorway": "Cerulean & Chalk"
- },
- {
-  "id": "lost-continent",
-  "title": "Saurian Empire",
-  "theme": "jurassic dinosaurs",
-  "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-22T21:34:28.321275+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lost-continent-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:34:39.309300+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "lost-continent-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:34:52.673870+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lost-continent-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:35:05.284879+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lost-continent-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:00:59.400841+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lost-continent-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:02:11.921873+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-lost-continent.jpg",
-   "title": "Pangaea Mineral"
-  },
-  "colorway": "Fog & Bone"
- },
- {
-  "id": "plumbline",
-  "title": "Pipeworks Symphony",
-  "theme": "micro pipe geometric",
-  "description": "Pipes (theme only)",
-  "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:20:28.289896+00:00",
-  "variants": [
-   {
-    "file": "plumbline-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:35:25.455859+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "plumbline-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:35:45.077579+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "plumbline-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:43:00.501590+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "plumbline-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:43:11.193178+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "plumbline-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:03:28.316667+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "plumbline-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:04:40.868628+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-plumbline.jpg",
-   "title": "Pipes Aqua"
-  },
-  "colorway": "Aqua Porcelain"
- },
- {
-  "id": "lagoon-legends",
-  "title": "Serpent Lagoon",
-  "theme": "mythic lake monsters",
-  "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-22T21:35:57.027301+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lagoon-legends-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:36:06.379009+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lagoon-legends-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:36:17.598722+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lagoon-legends-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:36:29.907955+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "lagoon-legends-v2-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:05:57.268041+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "lagoon-legends-v3-sdxl.png",
-    "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:07:09.688820+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   }
-  ],
-  "reference": {
-   "file": "ref-lagoon-legends.jpg",
-   "title": "Mystic Lagoon Caribe"
-  },
-  "colorway": "Sea Glass"
- },
- {
-  "id": "fungi-skyline",
-  "title": "Mushroom Metropolis",
-  "theme": "mushroom cityscape",
-  "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-22T21:36:38.807988+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "fungi-skyline-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:36:48.838809+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "fungi-skyline-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:03.175349+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "fungi-skyline-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:14.770987+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
+  "id": "mod-orbit",
+  "title": "Orbit Deluxe",
+  "theme": "mod geometric",
+  "description": "Baby geometric (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:11.215237+00:00",
+  "variants": [
    {
-    "file": "fungi-skyline-v2-sdxl.png",
+    "file": "mod-orbit-v2-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:08:26.098085+00:00",
+    "created_at": "2026-07-22T21:58:30.389768+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
+     "b_matched": "",
+     "acceptable": false
     },
     "tile": {
-     "verdict": "WARN",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "fungi-skyline-v3-sdxl.png",
+    "file": "mod-orbit-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:09:38.610671+00:00",
+    "created_at": "2026-07-22T21:59:42.965320+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2303,40 +802,40 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
-     "verdict": "WARN",
+     "verdict": "FAIL",
      "max": null
     }
    }
   ],
   "reference": {
-   "file": "ref-fungi-skyline.jpg",
-   "title": "Mushroom City Botanica"
+   "file": "ref-mod-orbit.jpg",
+   "title": "Baby Azzurro"
   },
-  "colorway": "Eucalyptus Mist"
+  "colorway": "Cerulean & Chalk"
  },
  {
-  "id": "regatta-day",
-  "title": "Regatta Royale",
-  "theme": "vintage speedboats",
-  "description": "Boating (theme only)",
+  "id": "lost-continent",
+  "title": "Saurian Empire",
+  "theme": "jurassic dinosaurs",
+  "description": "Pangaea (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:20:52.326402+00:00",
+  "created_at": "2026-07-22T19:20:19.084639+00:00",
   "variants": [
    {
-    "file": "regatta-day-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:24.140099+00:00",
+    "file": "lost-continent-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:00:59.400841+00:00",
     "settlement": "OK",
     "settlement_detail": {
-     "a1_directional_foliage": false,
-     "a2_open_space": false,
-     "a3_multi_color_leaves": false,
+     "a1_directional_foliage": true,
+     "a2_open_space": true,
+     "a3_multi_color_leaves": true,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
      "verdict": "PASS",
@@ -2344,9 +843,9 @@
     }
    },
    {
-    "file": "regatta-day-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:34.624788+00:00",
+    "file": "lost-continent-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:02:11.921873+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2354,25 +853,40 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": false
+     "acceptable": true
     },
     "tile": {
-     "verdict": "PASS",
+     "verdict": "WARN",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-lost-continent.jpg",
+   "title": "Pangaea Mineral"
+  },
+  "colorway": "Fog & Bone"
+ },
+ {
+  "id": "plumbline",
+  "title": "Pipeworks Symphony",
+  "theme": "micro pipe geometric",
+  "description": "Pipes (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:28.289896+00:00",
+  "variants": [
    {
-    "file": "regatta-day-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:44.401095+00:00",
+    "file": "plumbline-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:03:28.316667+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
+     "b_matched": "empty",
+     "acceptable": false
     },
     "tile": {
      "verdict": "FAIL",
@@ -2380,9 +894,9 @@
     }
    },
    {
-    "file": "regatta-day-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:37:56.786006+00:00",
+    "file": "plumbline-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:04:40.868628+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2396,11 +910,26 @@
      "verdict": "FAIL",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-plumbline.jpg",
+   "title": "Pipes Aqua"
+  },
+  "colorway": "Aqua Porcelain"
+ },
+ {
+  "id": "lagoon-legends",
+  "title": "Serpent Lagoon",
+  "theme": "mythic lake monsters",
+  "description": "Mystic Lagoon (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:36.563316+00:00",
+  "variants": [
    {
-    "file": "regatta-day-v2-sdxl.png",
+    "file": "lagoon-legends-v2-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:10:55.007558+00:00",
+    "created_at": "2026-07-22T22:05:57.268041+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2408,7 +937,7 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
      "verdict": "FAIL",
@@ -2416,9 +945,9 @@
     }
    },
    {
-    "file": "regatta-day-v3-sdxl.png",
+    "file": "lagoon-legends-v3-sdxl.png",
     "engine": "local-sdxl",
-    "created_at": "2026-07-22T22:12:07.627069+00:00",
+    "created_at": "2026-07-22T22:07:09.688820+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2435,41 +964,41 @@
    }
   ],
   "reference": {
-   "file": "ref-regatta-day.jpg",
-   "title": "Boating Hunter"
+   "file": "ref-lagoon-legends.jpg",
+   "title": "Mystic Lagoon Caribe"
   },
-  "colorway": "Hunter & Chalk"
+  "colorway": "Sea Glass"
  },
  {
-  "id": "arcade-memory",
-  "title": "Arcade Aristocrat",
-  "theme": "retro handheld video games",
-  "description": "Gameland (theme only)",
+  "id": "fungi-skyline",
+  "title": "Mushroom Metropolis",
+  "theme": "mushroom cityscape",
+  "description": "Mushroom City (theme only)",
   "size": "24\" x 25\"",
-  "created_at": "2026-07-22T19:20:59.875088+00:00",
+  "created_at": "2026-07-22T19:20:44.807884+00:00",
   "variants": [
    {
-    "file": "arcade-memory-v1-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:38:06.852109+00:00",
+    "file": "fungi-skyline-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:08:26.098085+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
      "a2_open_space": false,
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
-     "b_matched": "",
+     "b_matched": "empty",
      "acceptable": true
     },
     "tile": {
-     "verdict": "FAIL",
+     "verdict": "WARN",
      "max": null
     }
    },
    {
-    "file": "arcade-memory-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:38:16.956620+00:00",
+    "file": "fungi-skyline-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:09:38.610671+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2480,14 +1009,29 @@
      "acceptable": true
     },
     "tile": {
-     "verdict": "FAIL",
+     "verdict": "WARN",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-fungi-skyline.jpg",
+   "title": "Mushroom City Botanica"
+  },
+  "colorway": "Eucalyptus Mist"
+ },
+ {
+  "id": "regatta-day",
+  "title": "Regatta Royale",
+  "theme": "vintage speedboats",
+  "description": "Boating (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:52.326402+00:00",
+  "variants": [
    {
-    "file": "arcade-memory-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:38:26.877377+00:00",
+    "file": "regatta-day-v2-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:10:55.007558+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2498,14 +1042,14 @@
      "acceptable": true
     },
     "tile": {
-     "verdict": "WARN",
+     "verdict": "FAIL",
      "max": null
     }
    },
    {
-    "file": "arcade-memory-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:38:36.842661+00:00",
+    "file": "regatta-day-v3-sdxl.png",
+    "engine": "local-sdxl",
+    "created_at": "2026-07-22T22:12:07.627069+00:00",
     "settlement": "OK",
     "settlement_detail": {
      "a1_directional_foliage": false,
@@ -2513,13 +1057,28 @@
      "a3_multi_color_leaves": false,
      "b_prohibited": false,
      "b_matched": "",
-     "acceptable": true
+     "acceptable": false
     },
     "tile": {
      "verdict": "FAIL",
      "max": null
     }
-   },
+   }
+  ],
+  "reference": {
+   "file": "ref-regatta-day.jpg",
+   "title": "Boating Hunter"
+  },
+  "colorway": "Hunter & Chalk"
+ },
+ {
+  "id": "arcade-memory",
+  "title": "Arcade Aristocrat",
+  "theme": "retro handheld video games",
+  "description": "Gameland (theme only)",
+  "size": "24\" x 25\"",
+  "created_at": "2026-07-22T19:20:59.875088+00:00",
+  "variants": [
    {
     "file": "arcade-memory-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -2588,78 +1147,6 @@
   "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-22T21:38:47.416499+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "daily-dose-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:38:58.868724+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "daily-dose-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:39:08.651005+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "daily-dose-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:39:18.193456+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
    {
     "file": "daily-dose-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -2711,78 +1198,6 @@
   "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-22T21:39:28.491554+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "circle-fields-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:39:38.273260+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "circle-fields-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:39:47.625327+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "circle-fields-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:39:57.508393+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
    {
     "file": "circle-fields-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -2834,78 +1249,6 @@
   "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-22T21:40:06.636878+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "campfire-toile-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:40:19.659114+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "campfire-toile-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:40:31.248940+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "campfire-toile-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:40:47.325628+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
    {
     "file": "campfire-toile-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -2974,78 +1317,6 @@
   "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-22T21:40:57.275652+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
-    },
-    "tile": {
-     "verdict": "PASS",
-     "max": null
-    }
-   },
-   {
-    "file": "dream-clouds-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:41:09.217692+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "dream-clouds-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:41:19.380793+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "dream-clouds-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:41:29.258080+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
    {
     "file": "dream-clouds-v2-sdxl.png",
     "engine": "local-sdxl",
@@ -3097,78 +1368,6 @@
   "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-22T21:41:40.783529+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "bodega-cats-v4-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:41:51.145542+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
-   {
-    "file": "bodega-cats-v5-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:42:03.697409+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
-    },
-    "tile": {
-     "verdict": "FAIL",
-     "max": null
-    }
-   },
-   {
-    "file": "bodega-cats-v6-nano.png",
-    "engine": "nano-banana",
-    "created_at": "2026-07-22T21:42:14.777930+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
-    },
-    "tile": {
-     "verdict": "WARN",
-     "max": null
-    }
-   },
    {
     "file": "bodega-cats-v2-sdxl.png",
     "engine": "local-sdxl",
diff --git a/output/designs/arcade-memory-v1-nano.png b/output/archive-v3/arcade-memory-v1-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v1-nano.png
rename to output/archive-v3/arcade-memory-v1-nano.png
diff --git a/output/designs/arcade-memory-v4-nano.png b/output/archive-v3/arcade-memory-v4-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v4-nano.png
rename to output/archive-v3/arcade-memory-v4-nano.png
diff --git a/output/designs/arcade-memory-v5-nano.png b/output/archive-v3/arcade-memory-v5-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v5-nano.png
rename to output/archive-v3/arcade-memory-v5-nano.png
diff --git a/output/designs/arcade-memory-v6-nano.png b/output/archive-v3/arcade-memory-v6-nano.png
similarity index 100%
rename from output/designs/arcade-memory-v6-nano.png
rename to output/archive-v3/arcade-memory-v6-nano.png
diff --git a/output/designs/astral-tiger-v1-nano.png b/output/archive-v3/astral-tiger-v1-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v1-nano.png
rename to output/archive-v3/astral-tiger-v1-nano.png
diff --git a/output/designs/astral-tiger-v4-nano.png b/output/archive-v3/astral-tiger-v4-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v4-nano.png
rename to output/archive-v3/astral-tiger-v4-nano.png
diff --git a/output/designs/astral-tiger-v5-nano.png b/output/archive-v3/astral-tiger-v5-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v5-nano.png
rename to output/archive-v3/astral-tiger-v5-nano.png
diff --git a/output/designs/astral-tiger-v6-nano.png b/output/archive-v3/astral-tiger-v6-nano.png
similarity index 100%
rename from output/designs/astral-tiger-v6-nano.png
rename to output/archive-v3/astral-tiger-v6-nano.png
diff --git a/output/designs/bodega-cats-v1-nano.png b/output/archive-v3/bodega-cats-v1-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v1-nano.png
rename to output/archive-v3/bodega-cats-v1-nano.png
diff --git a/output/designs/bodega-cats-v4-nano.png b/output/archive-v3/bodega-cats-v4-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v4-nano.png
rename to output/archive-v3/bodega-cats-v4-nano.png
diff --git a/output/designs/bodega-cats-v5-nano.png b/output/archive-v3/bodega-cats-v5-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v5-nano.png
rename to output/archive-v3/bodega-cats-v5-nano.png
diff --git a/output/designs/bodega-cats-v6-nano.png b/output/archive-v3/bodega-cats-v6-nano.png
similarity index 100%
rename from output/designs/bodega-cats-v6-nano.png
rename to output/archive-v3/bodega-cats-v6-nano.png
diff --git a/output/designs/campfire-toile-v1-nano.png b/output/archive-v3/campfire-toile-v1-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v1-nano.png
rename to output/archive-v3/campfire-toile-v1-nano.png
diff --git a/output/designs/campfire-toile-v4-nano.png b/output/archive-v3/campfire-toile-v4-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v4-nano.png
rename to output/archive-v3/campfire-toile-v4-nano.png
diff --git a/output/designs/campfire-toile-v5-nano.png b/output/archive-v3/campfire-toile-v5-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v5-nano.png
rename to output/archive-v3/campfire-toile-v5-nano.png
diff --git a/output/designs/campfire-toile-v6-nano.png b/output/archive-v3/campfire-toile-v6-nano.png
similarity index 100%
rename from output/designs/campfire-toile-v6-nano.png
rename to output/archive-v3/campfire-toile-v6-nano.png
diff --git a/output/designs/circle-fields-v1-nano.png b/output/archive-v3/circle-fields-v1-nano.png
similarity index 100%
rename from output/designs/circle-fields-v1-nano.png
rename to output/archive-v3/circle-fields-v1-nano.png
diff --git a/output/designs/circle-fields-v4-nano.png b/output/archive-v3/circle-fields-v4-nano.png
similarity index 100%
rename from output/designs/circle-fields-v4-nano.png
rename to output/archive-v3/circle-fields-v4-nano.png
diff --git a/output/designs/circle-fields-v5-nano.png b/output/archive-v3/circle-fields-v5-nano.png
similarity index 100%
rename from output/designs/circle-fields-v5-nano.png
rename to output/archive-v3/circle-fields-v5-nano.png
diff --git a/output/designs/circle-fields-v6-nano.png b/output/archive-v3/circle-fields-v6-nano.png
similarity index 100%
rename from output/designs/circle-fields-v6-nano.png
rename to output/archive-v3/circle-fields-v6-nano.png
diff --git a/output/designs/daily-dose-v1-nano.png b/output/archive-v3/daily-dose-v1-nano.png
similarity index 100%
rename from output/designs/daily-dose-v1-nano.png
rename to output/archive-v3/daily-dose-v1-nano.png
diff --git a/output/designs/daily-dose-v4-nano.png b/output/archive-v3/daily-dose-v4-nano.png
similarity index 100%
rename from output/designs/daily-dose-v4-nano.png
rename to output/archive-v3/daily-dose-v4-nano.png
diff --git a/output/designs/daily-dose-v5-nano.png b/output/archive-v3/daily-dose-v5-nano.png
similarity index 100%
rename from output/designs/daily-dose-v5-nano.png
rename to output/archive-v3/daily-dose-v5-nano.png
diff --git a/output/designs/daily-dose-v6-nano.png b/output/archive-v3/daily-dose-v6-nano.png
similarity index 100%
rename from output/designs/daily-dose-v6-nano.png
rename to output/archive-v3/daily-dose-v6-nano.png
diff --git a/output/designs/desert-choir-v1-nano.png b/output/archive-v3/desert-choir-v1-nano.png
similarity index 100%
rename from output/designs/desert-choir-v1-nano.png
rename to output/archive-v3/desert-choir-v1-nano.png
diff --git a/output/designs/desert-choir-v4-nano.png b/output/archive-v3/desert-choir-v4-nano.png
similarity index 100%
rename from output/designs/desert-choir-v4-nano.png
rename to output/archive-v3/desert-choir-v4-nano.png
diff --git a/output/designs/desert-choir-v5-nano.png b/output/archive-v3/desert-choir-v5-nano.png
similarity index 100%
rename from output/designs/desert-choir-v5-nano.png
rename to output/archive-v3/desert-choir-v5-nano.png
diff --git a/output/designs/desert-choir-v6-nano.png b/output/archive-v3/desert-choir-v6-nano.png
similarity index 100%
rename from output/designs/desert-choir-v6-nano.png
rename to output/archive-v3/desert-choir-v6-nano.png
diff --git a/output/designs/dream-clouds-v1-nano.png b/output/archive-v3/dream-clouds-v1-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v1-nano.png
rename to output/archive-v3/dream-clouds-v1-nano.png
diff --git a/output/designs/dream-clouds-v4-nano.png b/output/archive-v3/dream-clouds-v4-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v4-nano.png
rename to output/archive-v3/dream-clouds-v4-nano.png
diff --git a/output/designs/dream-clouds-v5-nano.png b/output/archive-v3/dream-clouds-v5-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v5-nano.png
rename to output/archive-v3/dream-clouds-v5-nano.png
diff --git a/output/designs/dream-clouds-v6-nano.png b/output/archive-v3/dream-clouds-v6-nano.png
similarity index 100%
rename from output/designs/dream-clouds-v6-nano.png
rename to output/archive-v3/dream-clouds-v6-nano.png
diff --git a/output/designs/fungi-skyline-v1-nano.png b/output/archive-v3/fungi-skyline-v1-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v1-nano.png
rename to output/archive-v3/fungi-skyline-v1-nano.png
diff --git a/output/designs/fungi-skyline-v4-nano.png b/output/archive-v3/fungi-skyline-v4-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v4-nano.png
rename to output/archive-v3/fungi-skyline-v4-nano.png
diff --git a/output/designs/fungi-skyline-v5-nano.png b/output/archive-v3/fungi-skyline-v5-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v5-nano.png
rename to output/archive-v3/fungi-skyline-v5-nano.png
diff --git a/output/designs/fungi-skyline-v6-nano.png b/output/archive-v3/fungi-skyline-v6-nano.png
similarity index 100%
rename from output/designs/fungi-skyline-v6-nano.png
rename to output/archive-v3/fungi-skyline-v6-nano.png
diff --git a/output/designs/galaxy-bots-v1-nano.png b/output/archive-v3/galaxy-bots-v1-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v1-nano.png
rename to output/archive-v3/galaxy-bots-v1-nano.png
diff --git a/output/designs/galaxy-bots-v4-nano.png b/output/archive-v3/galaxy-bots-v4-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v4-nano.png
rename to output/archive-v3/galaxy-bots-v4-nano.png
diff --git a/output/designs/galaxy-bots-v5-nano.png b/output/archive-v3/galaxy-bots-v5-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v5-nano.png
rename to output/archive-v3/galaxy-bots-v5-nano.png
diff --git a/output/designs/galaxy-bots-v6-nano.png b/output/archive-v3/galaxy-bots-v6-nano.png
similarity index 100%
rename from output/designs/galaxy-bots-v6-nano.png
rename to output/archive-v3/galaxy-bots-v6-nano.png
diff --git a/output/designs/golden-pineapple-v1-nano.png b/output/archive-v3/golden-pineapple-v1-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v1-nano.png
rename to output/archive-v3/golden-pineapple-v1-nano.png
diff --git a/output/designs/golden-pineapple-v4-nano.png b/output/archive-v3/golden-pineapple-v4-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v4-nano.png
rename to output/archive-v3/golden-pineapple-v4-nano.png
diff --git a/output/designs/golden-pineapple-v5-nano.png b/output/archive-v3/golden-pineapple-v5-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v5-nano.png
rename to output/archive-v3/golden-pineapple-v5-nano.png
diff --git a/output/designs/golden-pineapple-v6-nano.png b/output/archive-v3/golden-pineapple-v6-nano.png
similarity index 100%
rename from output/designs/golden-pineapple-v6-nano.png
rename to output/archive-v3/golden-pineapple-v6-nano.png
diff --git a/output/designs/herbarium-press-v1-nano.png b/output/archive-v3/herbarium-press-v1-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v1-nano.png
rename to output/archive-v3/herbarium-press-v1-nano.png
diff --git a/output/designs/herbarium-press-v4-nano.png b/output/archive-v3/herbarium-press-v4-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v4-nano.png
rename to output/archive-v3/herbarium-press-v4-nano.png
diff --git a/output/designs/herbarium-press-v5-nano.png b/output/archive-v3/herbarium-press-v5-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v5-nano.png
rename to output/archive-v3/herbarium-press-v5-nano.png
diff --git a/output/designs/herbarium-press-v6-nano.png b/output/archive-v3/herbarium-press-v6-nano.png
similarity index 100%
rename from output/designs/herbarium-press-v6-nano.png
rename to output/archive-v3/herbarium-press-v6-nano.png
diff --git a/output/designs/lagoon-legends-v1-nano.png b/output/archive-v3/lagoon-legends-v1-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v1-nano.png
rename to output/archive-v3/lagoon-legends-v1-nano.png
diff --git a/output/designs/lagoon-legends-v4-nano.png b/output/archive-v3/lagoon-legends-v4-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v4-nano.png
rename to output/archive-v3/lagoon-legends-v4-nano.png
diff --git a/output/designs/lagoon-legends-v5-nano.png b/output/archive-v3/lagoon-legends-v5-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v5-nano.png
rename to output/archive-v3/lagoon-legends-v5-nano.png
diff --git a/output/designs/lagoon-legends-v6-nano.png b/output/archive-v3/lagoon-legends-v6-nano.png
similarity index 100%
rename from output/designs/lagoon-legends-v6-nano.png
rename to output/archive-v3/lagoon-legends-v6-nano.png
diff --git a/output/designs/lost-continent-v1-nano.png b/output/archive-v3/lost-continent-v1-nano.png
similarity index 100%
rename from output/designs/lost-continent-v1-nano.png
rename to output/archive-v3/lost-continent-v1-nano.png
diff --git a/output/designs/lost-continent-v4-nano.png b/output/archive-v3/lost-continent-v4-nano.png
similarity index 100%
rename from output/designs/lost-continent-v4-nano.png
rename to output/archive-v3/lost-continent-v4-nano.png
diff --git a/output/designs/lost-continent-v5-nano.png b/output/archive-v3/lost-continent-v5-nano.png
similarity index 100%
rename from output/designs/lost-continent-v5-nano.png
rename to output/archive-v3/lost-continent-v5-nano.png
diff --git a/output/designs/lost-continent-v6-nano.png b/output/archive-v3/lost-continent-v6-nano.png
similarity index 100%
rename from output/designs/lost-continent-v6-nano.png
rename to output/archive-v3/lost-continent-v6-nano.png
diff --git a/output/designs/midnight-frequency-v1-nano.png b/output/archive-v3/midnight-frequency-v1-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v1-nano.png
rename to output/archive-v3/midnight-frequency-v1-nano.png
diff --git a/output/designs/midnight-frequency-v4-nano.png b/output/archive-v3/midnight-frequency-v4-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v4-nano.png
rename to output/archive-v3/midnight-frequency-v4-nano.png
diff --git a/output/designs/midnight-frequency-v5-nano.png b/output/archive-v3/midnight-frequency-v5-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v5-nano.png
rename to output/archive-v3/midnight-frequency-v5-nano.png
diff --git a/output/designs/midnight-frequency-v6-nano.png b/output/archive-v3/midnight-frequency-v6-nano.png
similarity index 100%
rename from output/designs/midnight-frequency-v6-nano.png
rename to output/archive-v3/midnight-frequency-v6-nano.png
diff --git a/output/designs/mod-orbit-v1-nano.png b/output/archive-v3/mod-orbit-v1-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v1-nano.png
rename to output/archive-v3/mod-orbit-v1-nano.png
diff --git a/output/designs/mod-orbit-v4-nano.png b/output/archive-v3/mod-orbit-v4-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v4-nano.png
rename to output/archive-v3/mod-orbit-v4-nano.png
diff --git a/output/designs/mod-orbit-v5-nano.png b/output/archive-v3/mod-orbit-v5-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v5-nano.png
rename to output/archive-v3/mod-orbit-v5-nano.png
diff --git a/output/designs/mod-orbit-v6-nano.png b/output/archive-v3/mod-orbit-v6-nano.png
similarity index 100%
rename from output/designs/mod-orbit-v6-nano.png
rename to output/archive-v3/mod-orbit-v6-nano.png
diff --git a/output/designs/monstera-bungalow-v1-nano.png b/output/archive-v3/monstera-bungalow-v1-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v1-nano.png
rename to output/archive-v3/monstera-bungalow-v1-nano.png
diff --git a/output/designs/monstera-bungalow-v4-nano.png b/output/archive-v3/monstera-bungalow-v4-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v4-nano.png
rename to output/archive-v3/monstera-bungalow-v4-nano.png
diff --git a/output/designs/monstera-bungalow-v5-nano.png b/output/archive-v3/monstera-bungalow-v5-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v5-nano.png
rename to output/archive-v3/monstera-bungalow-v5-nano.png
diff --git a/output/designs/monstera-bungalow-v6-nano.png b/output/archive-v3/monstera-bungalow-v6-nano.png
similarity index 100%
rename from output/designs/monstera-bungalow-v6-nano.png
rename to output/archive-v3/monstera-bungalow-v6-nano.png
diff --git a/output/designs/moonrise-ikat-v1-nano.png b/output/archive-v3/moonrise-ikat-v1-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v1-nano.png
rename to output/archive-v3/moonrise-ikat-v1-nano.png
diff --git a/output/designs/moonrise-ikat-v4-nano.png b/output/archive-v3/moonrise-ikat-v4-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v4-nano.png
rename to output/archive-v3/moonrise-ikat-v4-nano.png
diff --git a/output/designs/moonrise-ikat-v5-nano.png b/output/archive-v3/moonrise-ikat-v5-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v5-nano.png
rename to output/archive-v3/moonrise-ikat-v5-nano.png
diff --git a/output/designs/moonrise-ikat-v6-nano.png b/output/archive-v3/moonrise-ikat-v6-nano.png
similarity index 100%
rename from output/designs/moonrise-ikat-v6-nano.png
rename to output/archive-v3/moonrise-ikat-v6-nano.png
diff --git a/output/designs/night-jungle-v1-nano.png b/output/archive-v3/night-jungle-v1-nano.png
similarity index 100%
rename from output/designs/night-jungle-v1-nano.png
rename to output/archive-v3/night-jungle-v1-nano.png
diff --git a/output/designs/night-jungle-v4-nano.png b/output/archive-v3/night-jungle-v4-nano.png
similarity index 100%
rename from output/designs/night-jungle-v4-nano.png
rename to output/archive-v3/night-jungle-v4-nano.png
diff --git a/output/designs/night-jungle-v5-nano.png b/output/archive-v3/night-jungle-v5-nano.png
similarity index 100%
rename from output/designs/night-jungle-v5-nano.png
rename to output/archive-v3/night-jungle-v5-nano.png
diff --git a/output/designs/night-jungle-v6-nano.png b/output/archive-v3/night-jungle-v6-nano.png
similarity index 100%
rename from output/designs/night-jungle-v6-nano.png
rename to output/archive-v3/night-jungle-v6-nano.png
diff --git a/output/designs/painted-feathers-v1-nano.png b/output/archive-v3/painted-feathers-v1-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v1-nano.png
rename to output/archive-v3/painted-feathers-v1-nano.png
diff --git a/output/designs/painted-feathers-v4-nano.png b/output/archive-v3/painted-feathers-v4-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v4-nano.png
rename to output/archive-v3/painted-feathers-v4-nano.png
diff --git a/output/designs/painted-feathers-v5-nano.png b/output/archive-v3/painted-feathers-v5-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v5-nano.png
rename to output/archive-v3/painted-feathers-v5-nano.png
diff --git a/output/designs/painted-feathers-v6-nano.png b/output/archive-v3/painted-feathers-v6-nano.png
similarity index 100%
rename from output/designs/painted-feathers-v6-nano.png
rename to output/archive-v3/painted-feathers-v6-nano.png
diff --git a/output/designs/plumbline-v1-nano.png b/output/archive-v3/plumbline-v1-nano.png
similarity index 100%
rename from output/designs/plumbline-v1-nano.png
rename to output/archive-v3/plumbline-v1-nano.png
diff --git a/output/designs/plumbline-v4-nano.png b/output/archive-v3/plumbline-v4-nano.png
similarity index 100%
rename from output/designs/plumbline-v4-nano.png
rename to output/archive-v3/plumbline-v4-nano.png
diff --git a/output/designs/plumbline-v5-nano.png b/output/archive-v3/plumbline-v5-nano.png
similarity index 100%
rename from output/designs/plumbline-v5-nano.png
rename to output/archive-v3/plumbline-v5-nano.png
diff --git a/output/designs/plumbline-v6-nano.png b/output/archive-v3/plumbline-v6-nano.png
similarity index 100%
rename from output/designs/plumbline-v6-nano.png
rename to output/archive-v3/plumbline-v6-nano.png
diff --git a/output/designs/ray-shadow-v1-nano.png b/output/archive-v3/ray-shadow-v1-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v1-nano.png
rename to output/archive-v3/ray-shadow-v1-nano.png
diff --git a/output/designs/ray-shadow-v4-nano.png b/output/archive-v3/ray-shadow-v4-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v4-nano.png
rename to output/archive-v3/ray-shadow-v4-nano.png
diff --git a/output/designs/ray-shadow-v5-nano.png b/output/archive-v3/ray-shadow-v5-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v5-nano.png
rename to output/archive-v3/ray-shadow-v5-nano.png
diff --git a/output/designs/ray-shadow-v6-nano.png b/output/archive-v3/ray-shadow-v6-nano.png
similarity index 100%
rename from output/designs/ray-shadow-v6-nano.png
rename to output/archive-v3/ray-shadow-v6-nano.png
diff --git a/output/designs/regatta-day-v1-nano.png b/output/archive-v3/regatta-day-v1-nano.png
similarity index 100%
rename from output/designs/regatta-day-v1-nano.png
rename to output/archive-v3/regatta-day-v1-nano.png
diff --git a/output/designs/regatta-day-v4-nano.png b/output/archive-v3/regatta-day-v4-nano.png
similarity index 100%
rename from output/designs/regatta-day-v4-nano.png
rename to output/archive-v3/regatta-day-v4-nano.png
diff --git a/output/designs/regatta-day-v5-nano.png b/output/archive-v3/regatta-day-v5-nano.png
similarity index 100%
rename from output/designs/regatta-day-v5-nano.png
rename to output/archive-v3/regatta-day-v5-nano.png
diff --git a/output/designs/regatta-day-v6-nano.png b/output/archive-v3/regatta-day-v6-nano.png
similarity index 100%
rename from output/designs/regatta-day-v6-nano.png
rename to output/archive-v3/regatta-day-v6-nano.png
diff --git a/output/designs/robot-parade-v1-nano.png b/output/archive-v3/robot-parade-v1-nano.png
similarity index 100%
rename from output/designs/robot-parade-v1-nano.png
rename to output/archive-v3/robot-parade-v1-nano.png
diff --git a/output/designs/robot-parade-v4-nano.png b/output/archive-v3/robot-parade-v4-nano.png
similarity index 100%
rename from output/designs/robot-parade-v4-nano.png
rename to output/archive-v3/robot-parade-v4-nano.png
diff --git a/output/designs/robot-parade-v5-nano.png b/output/archive-v3/robot-parade-v5-nano.png
similarity index 100%
rename from output/designs/robot-parade-v5-nano.png
rename to output/archive-v3/robot-parade-v5-nano.png
diff --git a/output/designs/robot-parade-v6-nano.png b/output/archive-v3/robot-parade-v6-nano.png
similarity index 100%
rename from output/designs/robot-parade-v6-nano.png
rename to output/archive-v3/robot-parade-v6-nano.png
diff --git a/output/designs/tidepool-bloom-v1-nano.png b/output/archive-v3/tidepool-bloom-v1-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v1-nano.png
rename to output/archive-v3/tidepool-bloom-v1-nano.png
diff --git a/output/designs/tidepool-bloom-v4-nano.png b/output/archive-v3/tidepool-bloom-v4-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v4-nano.png
rename to output/archive-v3/tidepool-bloom-v4-nano.png
diff --git a/output/designs/tidepool-bloom-v5-nano.png b/output/archive-v3/tidepool-bloom-v5-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v5-nano.png
rename to output/archive-v3/tidepool-bloom-v5-nano.png
diff --git a/output/designs/tidepool-bloom-v6-nano.png b/output/archive-v3/tidepool-bloom-v6-nano.png
similarity index 100%
rename from output/designs/tidepool-bloom-v6-nano.png
rename to output/archive-v3/tidepool-bloom-v6-nano.png
diff --git a/scripts/batch_gen.py b/scripts/batch_gen.py
index 2f5c2d3..0da8274 100644
--- a/scripts/batch_gen.py
+++ b/scripts/batch_gen.py
@@ -50,19 +50,13 @@ def scale_clause(brief):
 def full_prompt(brief, engine, variation=""):
     pal = brief.get("palette", [])
     if engine == "nano":
-        # reference-image mode: the attached original drives scale/density/colors
-        p = (f"The attached image is a reference wallpaper pattern. Use it ONLY to match "
-             f"motif SCALE, packing DENSITY, and flat print style, and use EXACTLY and ONLY "
-             f"its colors ({', '.join(pal)} — no other colors, no gradients, flat screen-print "
-             f"inks only). CRITICAL ORIGINALITY RULE: do NOT copy, trace, or closely imitate "
-             f"ANY motif, object, or shape from the reference. Every element must be a brand-new "
-             f"drawing in our own hand with a DIFFERENT silhouette, different edges and outlines, "
-             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. Motif scale: {scale_clause(brief)}. "
-             f"Subject to draw: {brief['prompt']}. "
-             f"{HARD_NEG}")
+        # TEXT-ONLY by policy (2026-07-22, Steve): the generator NEVER sees the
+        # reference image — element copying is impossible by construction. The
+        # original contributes only extracted data: palette hexes + measured scale.
+        p = (f"Create a completely original seamless repeating wallpaper pattern in our own "
+             f"hand, flat screen-print style. Use EXACTLY and ONLY these colors ({', '.join(pal)} "
+             f"— no other colors, no gradients, flat inks only). Motif scale: {scale_clause(brief)}. "
+             f"Subject: {brief['prompt']}. {HARD_NEG}")
         if variation:
             p += " Variation: " + variation
         return p
@@ -124,11 +118,8 @@ def main():
                 if os.path.exists(path):
                     save_variant(b, "nano-banana", fname); continue
                 print(f"[nano {ver}] {b['id']}")
-                ref = os.path.join(ROOT, "output", "refs", f"ref-{b['id']}.jpg")
                 cmd = [sys.executable, os.path.join(SCRIPTS, "nano_gen.py"),
                        full_prompt(b, "nano", variation), path]
-                if os.path.exists(ref):
-                    cmd.append(ref)
                 if run(cmd, 200):
                     subprocess.run([sys.executable, os.path.join(SCRIPTS, "snap_palette.py"),
                                     path, b["id"]], capture_output=True)
diff --git a/scripts/copy_check.py b/scripts/copy_check.py
new file mode 100644
index 0000000..268b471
--- /dev/null
+++ b/scripts/copy_check.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+"""Copy-check gate: compare each render against its Aimee Wilder reference and
+flag any element that reads as a copy or near-identical imitation.
+
+Writes verdict into data/designs.json per variant: copycheck = CLEAN | FLAGGED.
+Skips variants already checked. Cost ~$0.002/image (two images per call).
+
+Usage: GEMINI_API_KEY=... copy_check.py
+"""
+import base64, json, os, time, urllib.request
+
+ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+KEY = os.environ["GEMINI_API_KEY"]
+URL = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key={KEY}"
+
+PROMPT = """Image 1 is an existing commercial wallpaper design. Image 2 is a new design that
+must be ORIGINAL — same general theme is allowed, but no motif may be a copy or
+near-identical imitation of any motif in image 1. Judge strictly like an IP reviewer.
+Answer ONLY JSON:
+{"copied_elements": bool,   // true if ANY motif in image 2 is a copy/near-identical imitation of a motif in image 1
+ "what": "short description of the copied element(s), or empty",
+ "similarity": "high|medium|low"}  // overall motif-level similarity (style/theme similarity alone = low)"""
+
+def check(ref, img):
+    parts = [{"text": PROMPT}]
+    for p, mime in ((ref, "image/jpeg"), (img, "image/png")):
+        parts.append({"inline_data": {"mime_type": mime,
+                      "data": base64.b64encode(open(p, "rb").read()).decode()}})
+    body = {"contents": [{"parts": parts}],
+            "generationConfig": {"responseMimeType": "application/json"}}
+    req = urllib.request.Request(URL, data=json.dumps(body).encode(),
+                                 headers={"Content-Type": "application/json"})
+    with urllib.request.urlopen(req, timeout=90) as r:
+        resp = json.load(r)
+    return json.loads(resp["candidates"][0]["content"]["parts"][0]["text"])
+
+def main():
+    d = json.load(open(os.path.join(ROOT, "data", "designs.json")))
+    n = 0
+    for x in d:
+        ref = os.path.join(ROOT, "output", "refs", f"ref-{x['id']}.jpg")
+        if not os.path.exists(ref):
+            continue
+        for v in x["variants"]:
+            if v.get("copycheck"):
+                continue
+            img = os.path.join(ROOT, "output", "designs", v["file"])
+            if not os.path.exists(img):
+                continue
+            for attempt in range(3):
+                try:
+                    res = check(ref, img)
+                    break
+                except Exception:
+                    res = None
+                    time.sleep(5)
+            if res is None:
+                v["copycheck"] = "ERROR"
+            else:
+                v["copycheck"] = "FLAGGED" if res.get("copied_elements") else "CLEAN"
+                if res.get("copied_elements"):
+                    v["copycheck_what"] = res.get("what", "")
+            print(f"{v['file']:<40} {v['copycheck']} {v.get('copycheck_what','')}", flush=True)
+            n += 1
+    json.dump(d, open(os.path.join(ROOT, "data", "designs.json"), "w"), indent=1)
+    print(f"checked {n}, est cost ${n*0.002:.2f}")
+
+if __name__ == "__main__":
+    main()

← 1242dfa seamless-focused v7 round: 19/25 designs now have a tile-PAS  ·  back to Wild Wallcoverings  ·  auto-save: 2026-07-22T17:45:47 (103 files) — data/designs.js 3fe0b3f →