[
  {
    "name": "key-art-window",
    "svg": "r10-mockups/artwork/key-art-window.svg",
    "preview": "r10-mockups/artwork-previews/key-art-window.png",
    "width_mm": 110,
    "height_mm": 110,
    "note": "Original illustration master; not an acrylic cutting outline.",
    "sha256": "6f0b8a85f71007898036bbd4b63c5d3f81f6cb4cf2478a21cd798ee28bc74ca7"
  },
  {
    "name": "lamp-face",
    "svg": "r10-mockups/artwork/lamp-face.svg",
    "preview": "r10-mockups/artwork-previews/lamp-face.png",
    "width_mm": 110,
    "height_mm": 110,
    "note": "Proposed print inside a round 110mm acrylic plate. Existing base. No custom cutting assumed.",
    "sha256": "a7fdc4586487625557448b7fcba2b744e5090dc57d14940a7157968e504135ec"
  },
  {
    "name": "deskmat-face",
    "svg": "r10-mockups/artwork/deskmat-face.svg",
    "preview": "r10-mockups/artwork-previews/deskmat-face.png",
    "width_mm": 600,
    "height_mm": 300,
    "note": "Proposed 600x300mm face, ivory base and corner printing; base colour/print area require supplier confirmation.",
    "sha256": "e5ce2d7d75512485eb5b5039f6e50fda977326d48f2985d50e7eefba6a02e896"
  },
  {
    "name": "blanket-face",
    "svg": "r10-mockups/artwork/blanket-face.svg",
    "preview": "r10-mockups/artwork-previews/blanket-face.png",
    "width_mm": 1400,
    "height_mm": 1000,
    "note": "Proposed full-colour front on MF2610 L; reverse material and sewing require sample confirmation.",
    "sha256": "b312b61b55c22c860be302fa1bb55ac1abae1d833aa98513ecd532e20ae690cc"
  },
  {
    "name": "mug-print",
    "svg": "r10-mockups/artwork/mug-print.svg",
    "preview": "r10-mockups/artwork-previews/mug-print.png",
    "width_mm": 60,
    "height_mm": 45,
    "note": "Proposed 60x45mm imprint area; mug remains H648-879 fluted 11oz body.",
    "sha256": "766581bfd703d64812b0a886d050857a8269f5b4e59cdcd430587cb235a8aa55"
  },
  {
    "name": "coaster-face",
    "svg": "r10-mockups/artwork/coaster-face.svg",
    "preview": "r10-mockups/artwork-previews/coaster-face.png",
    "width_mm": 98,
    "height_mm": 98,
    "note": "Round placement proposal based on supplier photograph; printable safe area pending.",
    "sha256": "5fbe23d264af33794989a61ff22d3c24866f9e7383558fc7d79895f1df81df66"
  },
  {
    "name": "bag-face",
    "svg": "r10-mockups/artwork/bag-face.svg",
    "preview": "r10-mockups/artwork-previews/bag-face.png",
    "width_mm": 358,
    "height_mm": 270,
    "note": "MF1123 13-inch-name exterior placement. Not a bag sewing pattern or guaranteed device fit.",
    "sha256": "f0782efdc41e4bfa038a24db66f68386949dc8178edfbeec909e9aac37de33d3"
  },
  {
    "name": "diary-cover",
    "svg": "r10-mockups/artwork/diary-cover.svg",
    "preview": "r10-mockups/artwork-previews/diary-cover.png",
    "width_mm": 150,
    "height_mm": 216,
    "note": "MG0619 front-cover placement; source page and diagram width differ. Confirm factory dieline.",
    "sha256": "63298c213731071d0a306cc4f20985d3ad67ea1e1ac3fe8c7878ae2e0d903479"
  },
  {
    "name": "pouch-face",
    "svg": "r10-mockups/artwork/pouch-face.svg",
    "preview": "r10-mockups/artwork-previews/pouch-face.png",
    "width_mm": 150,
    "height_mm": 120,
    "note": "H838-1197 small gusset pouch front; print area and actual fabric colour pending.",
    "sha256": "3fd2bc2a1f3e06bf8a3da6d69686ea9e86d50f0f0d1662ebb2476035738708d5"
  },
  {
    "name": "handkerchief-face",
    "svg": "r10-mockups/artwork/handkerchief-face.svg",
    "preview": "r10-mockups/artwork-previews/handkerchief-face.png",
    "width_mm": 500,
    "height_mm": 500,
    "note": "J350-83 cotton 500x500mm face; edge finish and ink spread pending.",
    "sha256": "118ded674609e31f3e0ed2ea5efebbca9a946932a4181faeaad65b2878600edd"
  },
  {
    "name": "mask-print",
    "svg": "r10-mockups/artwork/mask-print.svg",
    "preview": "r10-mockups/artwork-previews/mask-print.png",
    "width_mm": 110,
    "height_mm": 45,
    "note": "Print placement only on existing cloud-shaped J244-276; no changed mask cutting outline.",
    "sha256": "bd2506ae565800a7e940f4bd2e27d22c4e9da5a39ab5e90b7bdaae41a354dff8"
  },
  {
    "name": "tray-print",
    "svg": "r10-mockups/artwork/tray-print.svg",
    "preview": "r10-mockups/artwork-previews/tray-print.png",
    "width_mm": 80,
    "height_mm": 80,
    "note": "Central imprint proposal on existing button tray. Actual print area pending.",
    "sha256": "0ec1bad7e463ccda3eec62fc41706fb9ed0577336fc22954877c651004edb99a"
  },
  {
    "name": "welcome-card-A",
    "svg": "r10-mockups/artwork/welcome-card-A.svg",
    "preview": "r10-mockups/artwork-previews/welcome-card-A.png",
    "width_mm": 148,
    "height_mm": 105,
    "note": "Outlined typography. One card per set; individual handwriting is optional.",
    "sha256": "0d98fb13fbbb4a4c429fe5bb1d49b9fae124c45158fdffd81b19eec427bf9cd4"
  },
  {
    "name": "welcome-card-B",
    "svg": "r10-mockups/artwork/welcome-card-B.svg",
    "preview": "r10-mockups/artwork-previews/welcome-card-B.png",
    "width_mm": 148,
    "height_mm": 105,
    "note": "Outlined typography. One card per set; individual handwriting is optional.",
    "sha256": "a633c01b24b9a7f9883192011a110e599d069e97e39de825d5834bc64baf3f5e"
  },
  {
    "name": "welcome-card-C",
    "svg": "r10-mockups/artwork/welcome-card-C.svg",
    "preview": "r10-mockups/artwork-previews/welcome-card-C.png",
    "width_mm": 148,
    "height_mm": 105,
    "note": "Outlined typography. One card per set; individual handwriting is optional.",
    "sha256": "a0e6f9e23b77637ace3e042bff0ddb6b532378113f26d66af185522f2a855e20"
  },
  {
    "name": "box-lid-A",
    "svg": "r10-mockups/artwork/box-lid-A.svg",
    "preview": "r10-mockups/artwork-previews/box-lid-A.png",
    "width_mm": 460,
    "height_mm": 340,
    "note": "Illustrative lid placement only. New box size and fit need factory dieline; not a cutting/folding master.",
    "sha256": "57f1d5cfa70159f591e3d97a019c3a712478c8b24e520b78c593c5ac69a5e919"
  },
  {
    "name": "box-lid-A-small",
    "svg": "r10-mockups/artwork/box-lid-A-small.svg",
    "preview": "r10-mockups/artwork-previews/box-lid-A-small.png",
    "width_mm": 300,
    "height_mm": 220,
    "note": "Illustrative lid placement only. New box size and fit need factory dieline; not a cutting/folding master.",
    "sha256": "8b76c95efaea0777d870773871ae416dff82ac801179129c50dd61094e65a002"
  },
  {
    "name": "box-lid-B",
    "svg": "r10-mockups/artwork/box-lid-B.svg",
    "preview": "r10-mockups/artwork-previews/box-lid-B.png",
    "width_mm": 400,
    "height_mm": 310,
    "note": "Illustrative lid placement only. New box size and fit need factory dieline; not a cutting/folding master.",
    "sha256": "65a0b0afb3ee44ebfedd36a45521d90232234d9ac21d5a7863225fa15a3036e8"
  },
  {
    "name": "box-lid-C",
    "svg": "r10-mockups/artwork/box-lid-C.svg",
    "preview": "r10-mockups/artwork-previews/box-lid-C.png",
    "width_mm": 400,
    "height_mm": 310,
    "note": "Illustrative lid placement only. New box size and fit need factory dieline; not a cutting/folding master.",
    "sha256": "21dfd5cdabf392e2d2c24f060fc7a0b15ffaa676123a243b51baed07c463ea11"
  }
]