{
  "$comment": "The Moon print. Four required fields, six option sets always visible, the rest below. No map provider is called: the Moon is computed from the place, the date and the time, and its face comes from two theme images, so a preview costs nothing but the one geocode a place search needs.",
  "configVersion": 1,
  "designId": "moon-print",
  "rendererVersion": "1.0.0",
  "service": {
    "origin": "",
    "geocodePath": "/v1/geocode",
    "savePath": "/v1/designs",
    "analyticsPath": "/v1/analytics/events",
    "previewDebounceMs": 120,
    "geocodeDebounceMs": 450
  },
  "sheet": {
    "width": 1000,
    "height": 1500,
    "mapWindow": {
      "x": 92,
      "y": 92,
      "width": 816,
      "height": 816
    },
    "plate": {
      "x": 92,
      "y": 1000,
      "width": 816,
      "height": 330
    }
  },
  "preview": {
    "exampleAsset": "design-moon-print-example.jpg",
    "exampleAlt": "Personalised Moon print: the waxing gibbous Moon calculated for Brighton on 14 June 2019, lit from the right and tilted for that place and time, among the stars of that night on an ink-black sheet, with the words, names, date and coordinates beneath.",
    "dataAssets": [
      {
        "key": "stars",
        "asset": "sky-stars.json"
      },
      {
        "key": "constellations",
        "asset": "sky-constellations.json"
      }
    ],
    "seed": {
      "place": "The Lanes, Brighton",
      "placePoint": {
        "lat": 50.8214482,
        "lon": -0.1437216
      },
      "placeTimezone": "Europe/London",
      "placeLine": "BRIGHTON",
      "title": "The night we met",
      "names": "Sam & Priya",
      "date": "2019-06-14",
      "time": "22:00",
      "coordinates": true,
      "moonStyle": "photo",
      "colourway": "ink",
      "typeface": "classic",
      "texture": "none",
      "layout": "full",
      "detail": "light",
      "moons": [
        {
          "name": "Mum",
          "date": "1975-11-22",
          "time": ""
        },
        {
          "name": "Olivia",
          "date": "2011-04-21",
          "time": ""
        }
      ]
    },
    "ambience": "stars",
    "ambienceWhen": {
      "key": "colourway",
      "in": [
        "ink",
        "midnight"
      ]
    }
  },
  "fields": {
    "$comment": "Four required fields; six option sets always visible in a two-column grid; the rest below.",
    "required": [
      {
        "key": "nights",
        "type": "thumbnails",
        "label": "One night or two?",
        "hint": "",
        "default": "one",
        "affects": "render",
        "options": [
          {
            "value": "one",
            "label": "One night",
            "description": "The Moon as it hung that night"
          },
          {
            "value": "two",
            "label": "Two nights",
            "description": "Two Moons, one above the other — met and married, two birthdays"
          },
          {
            "value": "family",
            "label": "A family of Moons",
            "description": "Three or four nights in a grid — the generations, each with its own word"
          },
          {
            "value": "month",
            "label": "The month it happened",
            "description": "Every Moon of that month in a calendar, your night ringed"
          }
        ]
      },
      {
        "key": "place",
        "type": "place",
        "label": "The place",
        "hint": "A town, street or postcode. The Moon's position and orientation are calculated for the place and local time you choose.",
        "maxLength": 80
      },
      {
        "$comment": "The two nights' details side by side (owner, 8 Sep 2026); one column, full width, while nights is one. Stacks under 750px.",
        "key": "nightsColumns",
        "type": "columns",
        "when": {
          "key": "nights",
          "equals": "two"
        },
        "headings": [
          "First night",
          "Second night"
        ],
        "columns": [
          [
            {
              "key": "date",
              "type": "date",
              "inputType": "date",
              "label": "The date",
              "hint": "Any date from 1900 onwards.",
              "showWhen": {
                "key": "nights",
                "equals": [
                  "one",
                  "two",
                  "month"
                ]
              }
            },
            {
              "key": "time",
              "type": "date",
              "inputType": "time",
              "label": "The time",
              "hint": "Local time where you were. Not sure? Leave it blank: we draw the Moon as it stood highest that night and print the date alone.",
              "default": "21:00",
              "optional": true,
              "showWhen": {
                "key": "nights",
                "equals": [
                  "one",
                  "two",
                  "month"
                ]
              }
            },
            {
              "key": "moonLabel",
              "optional": true,
              "type": "text",
              "label": "A word under this Moon",
              "hint": "Up to 14 letters — Met, Born, Home.",
              "maxLength": 14,
              "placeholder": "Met",
              "showWhen": {
                "key": "nights",
                "equals": "two"
              }
            }
          ],
          [
            {
              "key": "secondDate",
              "type": "date",
              "inputType": "date",
              "label": "The date",
              "hint": "The second night.",
              "showWhen": {
                "key": "nights",
                "equals": "two"
              }
            },
            {
              "key": "secondTime",
              "type": "date",
              "inputType": "time",
              "label": "The time",
              "hint": "Local time there. Not sure? Leave it blank: we draw it at its highest that night.",
              "default": "21:00",
              "optional": true,
              "showWhen": {
                "key": "nights",
                "equals": "two"
              }
            },
            {
              "key": "secondLabel",
              "optional": true,
              "type": "text",
              "label": "A word under this Moon",
              "hint": "Up to 14 letters — Married, Again, Ours.",
              "maxLength": 14,
              "placeholder": "Married",
              "showWhen": {
                "key": "nights",
                "equals": "two"
              }
            }
          ]
        ]
      },
      {
        "$comment": "Critic r14: the shell mounts only four required entries, so the title (fifth) never showed; the family Moons and the title share one full-width column group.",
        "key": "details",
        "type": "columns",
        "columns": [
          [
            {
              "$comment": "A family of Moons (plan phase 4, 14 Sep 2026): two to four nights, a word and a date each, drawn in a grid. Shown only for nights = family; optional so the step-1 tick does not wait on it.",
              "key": "moons",
              "type": "people",
              "yearMode": "date",
              "timeWith": true,
              "optional": true,
              "label": "The nights",
              "hint": "Two to four nights — the generations, the four of you, the years that made a family. A word under each; a time if you know it, else we draw each Moon at its highest that night.",
              "min": 2,
              "max": 4,
              "nameMaxLength": 14,
              "namePlaceholder": "Nana",
              "showWhen": {
                "key": "nights",
                "equals": "family"
              },
              "messages": {
                "add": "Add a night",
                "remove": "Remove",
                "name": "A word under this Moon",
                "year": "The date",
                "time": "Local time, optional",
                "count": "{count} nights so far — room for {remaining} more.",
                "full": "That's the full four.",
                "fewest": "Two is the fewest, so these stay."
              }
            },
            {
              "key": "title",
              "type": "text",
              "label": "Title",
              "hint": "The big words — whatever you would say on the card. Up to 33 letters.",
              "maxLength": 33,
              "placeholder": "The night we met"
            }
          ]
        ]
      }
    ],
    "options": [
      {
        "key": "moonStyle",
        "type": "thumbnails",
        "label": "Moon style",
        "hint": "Every Moon is drawn among catalogue stars calculated for that night.",
        "default": "photo",
        "options": [
          {
            "value": "photo",
            "label": "Photograph",
            "thumbnail": "design-moon-print-style-photo.jpg",
            "description": "the Moon's lit side calculated for the chosen night"
          },
          {
            "value": "glow",
            "label": "Glow",
            "thumbnail": "design-moon-print-style-glow.jpg",
            "description": "the Moon with a soft halo"
          },
          {
            "value": "minimal",
            "label": "Pale",
            "thumbnail": "design-moon-print-style-minimal.jpg",
            "description": "a pale, quiet Moon with the seas just showing"
          },
          {
            "value": "chart",
            "label": "Engraved",
            "thumbnail": "design-moon-print-style-chart.jpg",
            "description": "engraved in ink on the pale sheet"
          },
          {
            "value": "alone",
            "label": "Just the Moon",
            "thumbnail": "design-moon-print-style-alone.jpg",
            "description": "the Moon on a bare night, no stars"
          }
        ]
      },
      {
        "key": "layout",
        "type": "thumbnails",
        "label": "Layout",
        "default": "full",
        "options": [
          {
            "value": "full",
            "label": "Full",
            "thumbnail": "design-moon-print-layout-full.jpg",
            "description": "the night to every edge, your words on it"
          },
          {
            "value": "fade",
            "label": "Fade",
            "thumbnail": "design-moon-print-layout-fade.jpg",
            "description": "the foot of the night softens into the paper"
          },
          {
            "value": "band",
            "label": "Band",
            "thumbnail": "design-moon-print-layout-band.jpg",
            "description": "a hard horizon — night above, your words on paper below"
          },
          {
            "value": "frame",
            "label": "Frame",
            "thumbnail": "design-moon-print-layout-frame.jpg",
            "description": "the night in a bordered rectangle",
            "showWhen": {
              "key": "nights",
              "equals": "one"
            }
          },
          {
            "value": "horizon",
            "label": "Horizon",
            "thumbnail": "design-moon-print-layout-horizon.jpg",
            "description": "the Moon over a line of hills, your words on paper below"
          }
        ]
      },
      {
        "key": "colourway",
        "type": "thumbnails",
        "label": "Colours",
        "default": "ink",
        "options": [
          {
            "value": "ink",
            "label": "Ink",
            "thumbnail": "design-moon-print-colourway-ink.jpg"
          },
          {
            "value": "midnight",
            "label": "Midnight",
            "thumbnail": "design-moon-print-colourway-midnight.jpg"
          },
          {
            "value": "ivory",
            "label": "Ivory",
            "thumbnail": "design-moon-print-colourway-ivory.jpg",
            "description": "a warm umber night; cream paper shows on Band, Fade and Frame"
          },
          {
            "value": "daylight",
            "label": "Daylight",
            "thumbnail": "design-moon-print-colourway-daylight.jpg",
            "description": "the photographed Moon on cream paper, warm grey stars"
          },
          {
            "value": "meadow",
            "label": "Meadow",
            "thumbnail": "design-moon-print-colourway-meadow.jpg",
            "description": "a deep green night; pale sage paper shows on Band, Fade and Frame",
            "retired": true
          },
          {
            "value": "blush",
            "label": "Blush",
            "thumbnail": "design-moon-print-colourway-blush.jpg",
            "description": "a deep rose night; blush paper shows on Band, Fade and Frame"
          }
        ],
        "hint": "Gold looks are printed in gold-tone ink, not foil."
      },
      {
        "key": "typeface",
        "type": "thumbnails",
        "label": "Lettering",
        "default": "classic",
        "options": [
          {
            "value": "classic",
            "label": "Classic",
            "thumbnail": "design-moon-print-typeface-classic.jpg"
          },
          {
            "value": "modern",
            "label": "Modern",
            "thumbnail": "design-moon-print-typeface-modern.jpg"
          },
          {
            "value": "soft-serif",
            "label": "Soft serif",
            "thumbnail": "design-moon-print-typeface-soft-serif.jpg"
          },
          {
            "value": "editorial",
            "label": "Editorial",
            "thumbnail": "design-moon-print-typeface-editorial.jpg"
          },
          {
            "value": "script",
            "label": "Script",
            "thumbnail": "design-moon-print-typeface-script.jpg"
          }
        ]
      },
      {
        "key": "texture",
        "type": "thumbnails",
        "label": "Printed texture",
        "default": "none",
        "options": [
          {
            "value": "none",
            "label": "Smooth",
            "thumbnail": "design-moon-print-texture-none.jpg"
          },
          {
            "value": "grain",
            "label": "Fine grain",
            "thumbnail": "design-moon-print-texture-grain.jpg"
          },
          {
            "value": "fibre",
            "label": "Handmade",
            "thumbnail": "design-moon-print-texture-fibre.jpg"
          },
          {
            "value": "cardstock",
            "label": "Cardstock",
            "thumbnail": "design-moon-print-texture-cardstock.jpg"
          },
          {
            "value": "linen",
            "label": "Linen",
            "thumbnail": "design-moon-print-texture-linen.jpg"
          }
        ]
      },
      {
        "key": "detail",
        "type": "thumbnails",
        "label": "Details",
        "default": "none",
        "options": [
          {
            "value": "none",
            "label": "None",
            "thumbnail": "design-moon-print-detail-none.jpg",
            "description": "nothing written about the Moon"
          },
          {
            "value": "phase",
            "label": "The phase",
            "thumbnail": "design-moon-print-detail-phase.jpg",
            "description": "the phase, in words",
            "showWhen": {
              "key": "detail",
              "equals": "phase"
            }
          },
          {
            "value": "light",
            "label": "Phase & light",
            "thumbnail": "design-moon-print-detail-light.jpg",
            "description": "the phase and how much of it was lit"
          },
          {
            "value": "facts",
            "label": "The facts",
            "thumbnail": "design-moon-print-detail-facts.jpg",
            "description": "phase, light, age, distance, and where it stood over you"
          },
          {
            "value": "full",
            "label": "Everything",
            "thumbnail": "design-moon-print-detail-full.jpg",
            "description": "all of that, and the seas and craters named on its face",
            "showWhen": {
              "key": "detail",
              "equals": "full"
            }
          },
          {
            "value": "strip",
            "label": "Phase strip",
            "thumbnail": "design-moon-print-detail-strip.jpg",
            "description": "your Moon among the three nights either side, ringed, with its phase and light",
            "showWhen": {
              "key": "nights",
              "equals": "one"
            }
          }
        ]
      }
    ],
    "more": [
      {
        "key": "message",
        "type": "text",
        "label": "A line of your own",
        "hint": "Printed under the date.",
        "maxLength": 300,
        "placeholder": "Under this Moon, we said yes"
      },
      {
        "key": "names",
        "type": "text",
        "label": "Names",
        "hint": "The line under the title.",
        "maxLength": 32,
        "placeholder": "Sam & Priya"
      },
      {
        "key": "placeLine",
        "type": "text",
        "label": "The place, as printed",
        "hint": "Filled in from your search. Change it to whatever you call the spot.",
        "maxLength": 28,
        "placeholder": "BRIGHTON"
      },
      {
        "key": "coordinates",
        "type": "toggle",
        "label": "Print the coordinates",
        "default": true
      },
      {
        "$comment": "The mark that breaks the rule (critic r10, 25 Sep 2026): the heart stays the default; a diamond or a plain line for a sheet a heart does not suit, such as a memorial.",
        "key": "ornament",
        "type": "thumbnails",
        "label": "The mark on the line",
        "hint": "A heart, a small diamond, or a plain line.",
        "affects": "render",
        "default": "heart",
        "options": [
          {
            "value": "heart",
            "label": "Heart",
            "thumbnail": "design-moon-print-ornament-heart.jpg"
          },
          {
            "value": "diamond",
            "label": "Diamond",
            "thumbnail": "design-moon-print-ornament-diamond.jpg"
          },
          {
            "value": "none",
            "label": "Plain line",
            "thumbnail": "design-moon-print-ornament-none.jpg"
          }
        ]
      }
    ],
    "requiredLabel": "Your night",
    "optionsLabel": "The look",
    "moreLabel": "Finishing touches",
    "printed": "As printed: the Moon over {placeLine|the place you pick}, {date|the date you pick}, {time|no time given, so drawn as it stood highest that night}[ — and again {secondDate}, {secondTime|no time given, so drawn as it stood highest that night}].",
    "printedBy": {
      "key": "nights",
      "family": "As printed: the Moons over {placeLine|the place you pick} — {moons|the nights you add}. A night with no time given is drawn as its Moon stood highest that night.",
      "month": "As printed: every Moon of the month of {date|the date you pick} over {placeLine|the place you pick}, each at {time|nine at night}, your night ringed."
    }
  },
  "presets": {
    "$comment": "Five occasions lead the form, as on every design page. A tap fills the example words and the look; it never touches the place, the date or the time, and never overwrites words the customer has typed. Round 21 (29 Sep 2026): 'She said yes' and 'Our first home' were the same big Moon again; their places went to the two month looks (ids retired, not reused).",
    "label": "Start from an occasion",
    "options": [
      {
        "id": "the-night-we-met",
        "label": "The night we met",
        "values": {
          "title": "The night we met",
          "names": "Sam & Priya",
          "message": "Under this Moon, we said yes",
          "moonStyle": "photo",
          "layout": "full",
          "colourway": "ink",
          "typeface": "classic",
          "texture": "none",
          "detail": "light",
          "nights": "one",
          "ornament": "heart"
        }
      },
      {
        "id": "met-and-married",
        "label": "Met and married",
        "values": {
          "title": "Met, then married",
          "names": "Sam & Priya",
          "message": "and under every Moon since",
          "moonStyle": "photo",
          "layout": "full",
          "colourway": "ink",
          "typeface": "classic",
          "texture": "none",
          "detail": "light",
          "nights": "two",
          "date": "2019-06-14",
          "time": "22:00",
          "secondDate": "2023-12-16",
          "secondTime": "15:30",
          "moonLabel": "Met",
          "secondLabel": "Married",
          "ornament": "heart"
        }
      },
      {
        "id": "two-birthdays",
        "label": "Two birthdays",
        "values": {
          "title": "Our two",
          "names": "Amara & Theo",
          "message": "",
          "moonStyle": "glow",
          "layout": "full",
          "colourway": "midnight",
          "typeface": "modern",
          "texture": "cardstock",
          "detail": "phase",
          "nights": "two",
          "date": "2021-03-02",
          "time": "04:10",
          "secondDate": "2024-08-08",
          "secondTime": "20:45",
          "moonLabel": "Amara",
          "secondLabel": "Theo",
          "ornament": "heart"
        }
      },
      {
        "id": "the-three-of-us",
        "label": "The three of us",
        "values": {
          "title": "The three of us",
          "names": "",
          "message": "three Moons, one sky",
          "moonStyle": "glow",
          "layout": "full",
          "colourway": "midnight",
          "typeface": "classic",
          "texture": "none",
          "detail": "phase",
          "nights": "family",
          "moons": [
            {
              "name": "Mum",
              "date": "1975-11-22",
              "time": "06:40"
            },
            {
              "name": "Dad",
              "date": "1973-05-18",
              "time": ""
            },
            {
              "name": "Olivia",
              "date": "2011-04-21",
              "time": "05:30"
            }
          ],
          "ornament": "heart"
        }
      },
      {
        "id": "four-generations",
        "label": "Four generations",
        "values": {
          "title": "The Thompsons",
          "names": "",
          "message": "four generations, one sky",
          "moonStyle": "chart",
          "layout": "band",
          "colourway": "ivory",
          "typeface": "classic",
          "texture": "cardstock",
          "detail": "phase",
          "nights": "family",
          "moons": [
            {
              "name": "Nana",
              "date": "1948-03-18",
              "time": ""
            },
            {
              "name": "Mum",
              "date": "1975-11-22",
              "time": "06:40"
            },
            {
              "name": "Olivia",
              "date": "2011-04-21",
              "time": "05:30"
            },
            {
              "name": "Rosie",
              "date": "2023-08-30",
              "time": ""
            }
          ],
          "ornament": "heart"
        }
      },
      {
        "id": "the-night-you-were-born",
        "label": "The night you were born",
        "values": {
          "title": "The night you were born",
          "names": "Amara Rose",
          "message": "",
          "moonStyle": "photo",
          "layout": "full",
          "colourway": "daylight",
          "typeface": "modern",
          "texture": "none",
          "detail": "facts",
          "nights": "one",
          "ornament": "heart"
        }
      },
      {
        "id": "our-wedding-month",
        "label": "Our wedding month",
        "values": {
          "title": "Our wedding month",
          "names": "Sam & Priya",
          "message": "",
          "moonStyle": "photo",
          "layout": "full",
          "colourway": "ink",
          "typeface": "classic",
          "texture": "none",
          "detail": "light",
          "nights": "month",
          "ornament": "heart"
        }
      },
      {
        "id": "the-month-you-were-born",
        "label": "The month you were born",
        "values": {
          "title": "The month you were born",
          "names": "Amara Rose",
          "message": "",
          "moonStyle": "photo",
          "layout": "horizon",
          "colourway": "daylight",
          "typeface": "soft-serif",
          "texture": "none",
          "detail": "light",
          "nights": "month",
          "ornament": "heart"
        }
      },
      {
        "id": "the-old-almanac",
        "label": "The old almanac",
        "values": {
          "title": "That summer",
          "names": "Nan & Grandad",
          "message": "",
          "moonStyle": "chart",
          "layout": "full",
          "colourway": "ivory",
          "typeface": "classic",
          "texture": "grain",
          "detail": "facts",
          "nights": "one",
          "ornament": "heart"
        }
      },
      {
        "id": "in-loving-memory",
        "label": "In loving memory",
        "values": {
          "title": "Forever in our hearts",
          "names": "Dad · 1951–2025",
          "message": "The Moon on the night we said goodbye",
          "moonStyle": "photo",
          "layout": "horizon",
          "colourway": "midnight",
          "typeface": "classic",
          "texture": "none",
          "detail": "phase",
          "nights": "one",
          "ornament": "diamond"
        }
      }
    ]
  },
  "recipes": {
    "$comment": "Three named looks a designer chose together (plan of 9 Sep 2026, phase 1). Look keys only, never words or people: the page composes the customer's own design under each and a tap takes it.",
    "items": [
      {
        "id": "photograph-ink",
        "label": "Photograph on cream",
        "note": "The real Moon on cream paper, over a line of hills.",
        "look": {
          "moonStyle": "photo",
          "layout": "horizon",
          "colourway": "daylight",
          "typeface": "classic",
          "texture": "none",
          "detail": "light"
        }
      },
      {
        "id": "glow-midnight",
        "label": "Blush and script",
        "note": "A glowing Moon on a rose night that fades into blush paper.",
        "look": {
          "moonStyle": "glow",
          "layout": "fade",
          "colourway": "blush",
          "typeface": "script",
          "texture": "none",
          "detail": "light"
        }
      },
      {
        "id": "chart-ivory",
        "label": "Chart on ivory",
        "note": "An engraved Moon on cream, with the facts.",
        "look": {
          "moonStyle": "chart",
          "layout": "frame",
          "colourway": "ivory",
          "typeface": "classic",
          "texture": "cardstock",
          "detail": "facts"
        }
      }
    ]
  },
  "wordsPolicy": {
    "blockedTerms": [
      "examplebannedterm",
      "example banned phrase"
    ],
    "blockedTermsUrl": "",
    "message": "That word cannot be printed. Change it and your design carries on from here.",
    "rightsConfirmation": "By ordering you confirm the words and names you added are yours to use.",
    "rightsVersion": "words-2026-08-31"
  },
  "messages": {
    "serviceResting": "Place search is having a short rest. Your design is safe exactly as it is.",
    "serviceOffline": "Place search could not answer just now. Your design is safe exactly as it is.",
    "retry": "Try the search again",
    "placeNotFound": "We can’t find “{text}” — try the town and country, or a postcode.",
    "searching": "Searching…",
    "saveFailed": "Your design could not be saved just now. Nothing is lost — try adding to the basket again.",
    "notReady": "Something in the design needs a look before it can be ordered."
  },
  "analytics": {
    "events": {
      "opened": "design_opened",
      "firstPreview": "design_first_preview",
      "personalised": "design_personalised",
      "sizeSelected": "design_size_selected",
      "addToCart": "design_add_to_cart"
    }
  },
  "cart": {
    "summary": "{title} · {placeLine} · {layout.label} · {colourway.label}"
  },
  "assetVersion": "2026-09-29.8",
  "surprise": {
    "$comment": "Surprise me rolls one of these curated looks, never a random pairing of sets.",
    "looks": [
      {
        "moonStyle": "glow",
        "layout": "horizon",
        "colourway": "ivory",
        "typeface": "editorial",
        "texture": "linen",
        "detail": "light"
      },
      {
        "moonStyle": "glow",
        "layout": "fade",
        "colourway": "midnight",
        "typeface": "soft-serif",
        "texture": "grain",
        "detail": "phase"
      },
      {
        "moonStyle": "photo",
        "layout": "frame",
        "colourway": "ivory",
        "typeface": "soft-serif",
        "texture": "grain",
        "detail": "phase"
      },
      {
        "moonStyle": "minimal",
        "layout": "frame",
        "colourway": "blush",
        "typeface": "modern",
        "texture": "none",
        "detail": "light"
      },
      {
        "moonStyle": "alone",
        "layout": "horizon",
        "colourway": "daylight",
        "typeface": "script",
        "texture": "none",
        "detail": "none"
      }
    ]
  }
}
