{
  "$comment": "The name sweatshirt (names-sweatshirt, round 3, 11 Nov 2026): a family title, the names and the year, on the front of a Gildan 18000 sweatshirt (main product), a SOL'S 03568 hoodie, the owner-locked Gildan 5000 T-shirt or a mug, and - the signature detail - the names between the shoulders at the top of the back ('+ names on the back' variants, Gelato 4-4, sweatshirt and T-shirt; the names then move off the front); the T-shirt also sells a left-sleeve print ('+ names on the sleeve', 4-0_shsll). Composer tools/design-harness/src/compose-namesweatshirt.mjs; the preview is the garment itself laid flat (namesweatshirt-mockup.mjs), with a Front / Back switch.",
  "configVersion": 1,
  "designId": "names-sweatshirt",
  "rendererVersion": "names-sweatshirt/0.6.0",
  "service": {
    "origin": "",
    "savePath": "/v1/designs",
    "analyticsPath": "/v1/analytics/events",
    "previewDebounceMs": 120
  },
  "sheet": {
    "width": 1000,
    "height": 1500
  },
  "assetVersion": "2026-11-11.7",
  "preview": {
    "wall": false,
    "exampleAsset": "design-names-sweatshirt-example.jpg",
    "exampleAlt": "A sand sweatshirt printed with MAMA in tall open-outline capitals in cocoa brown, and ava, leo and rosie in script beneath with a small rust heart between each name.",
    "seed": {
      "layout": "outline",
      "garment": "sand",
      "titleWord": "mama",
      "ownTitle": "",
      "names": "Ava, Leo & Rosie",
      "year": "2019",
      "dateStyle": "none",
      "accent": "rust",
      "namesStyle": "hearts",
      "mugPrint": "both"
    }
  },
  "distinctSamples": {
    "keys": [],
    "spares": []
  },
  "fields": {
    "requiredLabel": "Make it yours",
    "required": [
      {
        "key": "titleWord",
        "type": "thumbnails",
        "label": "Title",
        "default": "mama",
        "affects": "render",
        "options": [
          {
            "value": "mama",
            "label": "Mama",
            "thumbnail": "design-names-sweatshirt-titleWord-mama.jpg"
          },
          {
            "value": "mum",
            "label": "Mum",
            "thumbnail": "design-names-sweatshirt-titleWord-mum.jpg"
          },
          {
            "value": "mummy",
            "label": "Mummy",
            "thumbnail": "design-names-sweatshirt-titleWord-mummy.jpg"
          },
          {
            "value": "mam",
            "label": "Mam",
            "thumbnail": "design-names-sweatshirt-titleWord-mam.jpg"
          },
          {
            "value": "nanny",
            "label": "Nanny",
            "thumbnail": "design-names-sweatshirt-titleWord-nanny.jpg"
          },
          {
            "value": "nana",
            "label": "Nana",
            "thumbnail": "design-names-sweatshirt-titleWord-nana.jpg"
          },
          {
            "value": "nan",
            "label": "Nan",
            "thumbnail": "design-names-sweatshirt-titleWord-nan.jpg"
          },
          {
            "value": "gran",
            "label": "Gran",
            "thumbnail": "design-names-sweatshirt-titleWord-gran.jpg"
          },
          {
            "value": "grandma",
            "label": "Grandma",
            "thumbnail": "design-names-sweatshirt-titleWord-grandma.jpg"
          },
          {
            "value": "grandad",
            "label": "Grandad",
            "thumbnail": "design-names-sweatshirt-titleWord-grandad.jpg"
          },
          {
            "value": "dad",
            "label": "Dad",
            "thumbnail": "design-names-sweatshirt-titleWord-dad.jpg"
          },
          {
            "value": "mrs",
            "label": "Mrs",
            "thumbnail": "design-names-sweatshirt-titleWord-mrs.jpg"
          },
          {
            "value": "mr",
            "label": "Mr",
            "thumbnail": "design-names-sweatshirt-titleWord-mr.jpg"
          },
          {
            "value": "own",
            "label": "Your own",
            "thumbnail": "design-names-sweatshirt-titleWord-own.jpg"
          }
        ]
      },
      {
        "key": "ownTitle",
        "type": "text",
        "label": "Your title",
        "maxLength": 14,
        "optional": true,
        "affects": "render",
        "showWhen": {
          "key": "titleWord",
          "equals": [
            "own"
          ]
        }
      },
      {
        "key": "names",
        "type": "text",
        "label": "The names",
        "hint": "Commas or & between them, up to eight. For Mr or Mrs, your married name (The Hartleys).",
        "maxLength": 140,
        "optional": true,
        "affects": "render"
      },
      {
        "key": "year",
        "type": "text",
        "label": "The year, or a date",
        "maxLength": 20,
        "optional": true,
        "affects": "render",
        "hint": "A year (2019) or a full date (14/06/2025)."
      }
    ],
    "optionsLabel": "The look",
    "options": [
      {
        "key": "layout",
        "type": "thumbnails",
        "label": "Style",
        "default": "outline",
        "affects": "render",
        "options": [
          {
            "value": "outline",
            "label": "Outline",
            "thumbnail": "design-names-sweatshirt-layout-outline.jpg"
          },
          {
            "value": "script",
            "label": "Script",
            "thumbnail": "design-names-sweatshirt-layout-script.jpg"
          },
          {
            "value": "varsity",
            "label": "Heritage",
            "thumbnail": "design-names-sweatshirt-layout-varsity.jpg"
          },
          {
            "value": "chest",
            "label": "Left chest",
            "thumbnail": "design-names-sweatshirt-layout-chest.jpg"
          }
        ]
      },
      {
        "key": "garment",
        "type": "thumbnails",
        "label": "Colour",
        "default": "sand",
        "affects": "render",
        "options": [
          {
            "value": "sand",
            "label": "Sand",
            "thumbnail": "design-names-sweatshirt-garment-sand.jpg"
          },
          {
            "value": "heather",
            "label": "Heather grey",
            "thumbnail": "design-names-sweatshirt-garment-heather.jpg"
          },
          {
            "value": "blush",
            "label": "Blush pink",
            "thumbnail": "design-names-sweatshirt-garment-blush.jpg"
          },
          {
            "value": "sage",
            "label": "Sage",
            "thumbnail": "design-names-sweatshirt-garment-sage.jpg"
          },
          {
            "value": "navy",
            "label": "Navy",
            "thumbnail": "design-names-sweatshirt-garment-navy.jpg"
          },
          {
            "value": "black",
            "label": "Black",
            "thumbnail": "design-names-sweatshirt-garment-black.jpg"
          }
        ]
      },
      {
        "key": "accent",
        "type": "thumbnails",
        "label": "Hearts and details",
        "default": "rust",
        "affects": "render",
        "options": [
          {
            "value": "match",
            "label": "One ink",
            "thumbnail": "design-names-sweatshirt-accent-match.jpg"
          },
          {
            "value": "rust",
            "label": "Rust",
            "thumbnail": "design-names-sweatshirt-accent-rust.jpg"
          },
          {
            "value": "rose",
            "label": "Rose",
            "thumbnail": "design-names-sweatshirt-accent-rose.jpg"
          },
          {
            "value": "gold",
            "label": "Gold tone",
            "thumbnail": "design-names-sweatshirt-accent-gold.jpg"
          },
          {
            "value": "blue",
            "label": "Cornflower",
            "thumbnail": "design-names-sweatshirt-accent-blue.jpg"
          }
        ]
      },
      {
        "key": "dateStyle",
        "type": "thumbnails",
        "label": "The year",
        "default": "none",
        "affects": "render",
        "options": [
          {
            "value": "est",
            "label": "Est.",
            "thumbnail": "design-names-sweatshirt-dateStyle-est.jpg"
          },
          {
            "value": "since",
            "label": "Since",
            "thumbnail": "design-names-sweatshirt-dateStyle-since.jpg"
          },
          {
            "value": "roman",
            "label": "Roman numerals",
            "thumbnail": "design-names-sweatshirt-dateStyle-roman.jpg"
          },
          {
            "value": "none",
            "label": "No year",
            "thumbnail": "design-names-sweatshirt-dateStyle-none.jpg"
          }
        ]
      },
      {
        "key": "namesStyle",
        "type": "thumbnails",
        "label": "The names",
        "default": "hearts",
        "affects": "render",
        "options": [
          {
            "value": "hearts",
            "label": "Hearts between",
            "thumbnail": "design-names-sweatshirt-namesStyle-hearts.jpg"
          },
          {
            "value": "dots",
            "label": "Dots between",
            "thumbnail": "design-names-sweatshirt-namesStyle-dots.jpg"
          },
          {
            "value": "stack",
            "label": "One per line",
            "thumbnail": "design-names-sweatshirt-namesStyle-stack.jpg"
          }
        ]
      }
    ]
  },
  "presets": {
    "label": "Start from an idea",
    "options": [
      {
        "id": "mama",
        "label": "Mama outline",
        "values": {
          "layout": "outline",
          "garment": "sand",
          "titleWord": "mama",
          "ownTitle": "",
          "names": "Ava, Leo & Rosie",
          "year": "2019",
          "dateStyle": "none",
          "accent": "rust",
          "namesStyle": "hearts",
          "mugPrint": "both"
        },
        "thumbnail": "design-names-sweatshirt-preset-mama.jpg"
      },
      {
        "id": "grandad",
        "label": "Grandad heritage",
        "values": {
          "layout": "varsity",
          "garment": "heather",
          "titleWord": "grandad",
          "ownTitle": "",
          "names": "Alfie, Freya & George",
          "year": "2012",
          "dateStyle": "est",
          "accent": "match",
          "namesStyle": "dots",
          "mugPrint": "both"
        },
        "thumbnail": "design-names-sweatshirt-preset-grandad.jpg"
      },
      {
        "id": "mum",
        "label": "Mum, left chest",
        "values": {
          "layout": "chest",
          "garment": "sage",
          "titleWord": "mum",
          "ownTitle": "",
          "names": "Evie & Theo",
          "year": "2020",
          "dateStyle": "est",
          "accent": "match",
          "namesStyle": "hearts",
          "mugPrint": "both"
        },
        "thumbnail": "design-names-sweatshirt-preset-mum.jpg"
      },
      {
        "id": "mrs",
        "label": "Mrs & Mr",
        "values": {
          "layout": "chest",
          "garment": "black",
          "titleWord": "mrs",
          "ownTitle": "",
          "names": "The Hartleys",
          "year": "14.06.2025",
          "dateStyle": "roman",
          "accent": "gold",
          "namesStyle": "hearts",
          "mugPrint": "both"
        },
        "thumbnail": "design-names-sweatshirt-preset-mrs.jpg"
      }
    ]
  },
  "recipes": {
    "label": "Ready-made looks",
    "items": [
      {
        "id": "boutique",
        "label": "Mama script",
        "look": {
          "layout": "script",
          "garment": "sand",
          "accent": "rust",
          "namesStyle": "hearts",
          "dateStyle": "est"
        }
      }
    ]
  },
  "cart": {
    "summary": "{titleWord.label} {ownTitle} · {names} · {layout.label} · {garment.label}"
  },
  "merch": {
    "$comment": "Garment-first: step 4 offers the sweatshirt, hoodie, T-shirt and mug from the product's variants whose finish names one ('Navy sweatshirt', 'Navy sweatshirt + names on the back', 'Natural T-shirt + names on the sleeve', '11oz'). The colour comes from the design's own Colour option (colourField/colourMatch); the extra print is the Print row (extraLabel). A couple's pair adds two basket lines, each its own size. The order lane prints each garment's files (render-namesweatshirt-master.mjs --product --garment [--side back|sleeve]).",
    "hold": { "groups": ["hoodie"], "extras": true, "$comment": "Front-only launch (11 Nov 2026): delete this line to offer the hoodie and the back and sleeve prints again." },
    "groups": {
      "sweatshirt": "Sweatshirt",
      "hoodie": "Hoodie",
      "tee": "T-shirt",
      "mug": "Mug"
    },
    "match": {
      "sweatshirt": "sweatshirt",
      "hoodie": "hoodie"
    },
    "garments": [
      "sweatshirt",
      "hoodie",
      "tee"
    ],
    "extraLabel": "Print",
    "extraNone": "Front only",
    "colourLabel": "Colour",
    "colourField": "garment",
    "colourMatch": {
      "sand": "^(sand|off-white|natural)\\b",
      "heather": "^(heather grey|grey melange|sport grey)\\b",
      "blush": "^(blush pink|pale pink)\\b",
      "sage": "^(sage|bottle green)\\b",
      "navy": "^(navy|french navy)\\b",
      "black": "^black\\b"
    },
    "colourMissing": "{colour} isn't made as a {group}. Choose another colour."
  }
}
