{
  "schemaVersion": "VS2.1",
  "pack": "EASTFRONT_VS2_002_PRODUCTION_MATERIAL_KIT",
  "status": "READY FOR LEADER REVIEW",
  "scope": "MVP world-space Material + Patch + Mask + Stamp kit; no canonical coordinates",
  "worldScaleDefinition": "H = adjacent canonical Hex-center distance; width refers to full source canvas width unless worldMapping specifies cross-path width",
  "lightModel": "NW soft daylight; subtle SE shadow; no runtime rotation of lit stamps",
  "determinism": "selection belongs to independent visual seed stream; no gameplay RNG consumption",
  "assets": [
    {
      "id": "VS2_FOREST_LOCAL_EDGE_01",
      "family": "forest",
      "file": "assets/forest/reuse_FR01.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.25,
          0.65
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/fringe/FR01.png",
        "sourceId": "FR01",
        "sha256": "3c9014e81715889947977ab7f98a2d9ef6fa0affde8c88ce6badcd786741c16e"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.04
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "3c9014e81715889947977ab7f98a2d9ef6fa0affde8c88ce6badcd786741c16e",
      "bytes": 25842,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_LOCAL_EDGE_02",
      "family": "forest",
      "file": "assets/forest/reuse_FR02.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.25,
          0.65
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/fringe/FR02.png",
        "sourceId": "FR02",
        "sha256": "3581b9c076c89ed077fa08850fefccb9b46391d8d13f1aad9ab3bad1ce2bdc52"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.04
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "3581b9c076c89ed077fa08850fefccb9b46391d8d13f1aad9ab3bad1ce2bdc52",
      "bytes": 31280,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_LOCAL_EDGE_03",
      "family": "forest",
      "file": "assets/forest/reuse_FR03.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.25,
          0.65
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/fringe/FR03.png",
        "sourceId": "FR03",
        "sha256": "1c1192f3e3427a3509a44033178cb754c83bccb82d00d47238fa13fd1975d80e"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.04
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1c1192f3e3427a3509a44033178cb754c83bccb82d00d47238fa13fd1975d80e",
      "bytes": 26087,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_LOCAL_EDGE_04",
      "family": "forest",
      "file": "assets/forest/reuse_FR04.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.25,
          0.65
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/fringe/FR04.png",
        "sourceId": "FR04",
        "sha256": "47bda856b7225c41ba28cbc6a4f9cd451fe82358d82cde924510b3e220b99ef1"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.04
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "47bda856b7225c41ba28cbc6a4f9cd451fe82358d82cde924510b3e220b99ef1",
      "bytes": 24661,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_CLEARING_01",
      "family": "forest",
      "file": "assets/forest/reuse_CL01_mask.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.6,
          1.8
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "coverageMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "source-preserved; see channelEncoding",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/clearing/CL01_mask.png",
        "sourceId": "CL01",
        "sha256": "e30c882fb069133686dec5a8fcd9a8915de46c9a437be790ff5ae75b054f2d8d"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": true,
        "scaleJitter": 0.04
      },
      "channelEncoding": "luminance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "e30c882fb069133686dec5a8fcd9a8915de46c9a437be790ff5ae75b054f2d8d",
      "bytes": 4889,
      "channels": "L"
    },
    {
      "id": "VS2_FOREST_CLEARING_02",
      "family": "forest",
      "file": "assets/forest/reuse_CL02_mask.png",
      "sourceSize": [
        384,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.6,
          1.8
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "coverageMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "source-preserved; see channelEncoding",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "forest/clearing/CL02_mask.png",
        "sourceId": "CL02",
        "sha256": "75cfd696b1a96dbdfe1b3f90558b3823bfa2d7d29e796c96a4ebff16ee9511cd"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": true,
        "scaleJitter": 0.04
      },
      "channelEncoding": "luminance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "75cfd696b1a96dbdfe1b3f90558b3823bfa2d7d29e796c96a4ebff16ee9511cd",
      "bytes": 4504,
      "channels": "L"
    },
    {
      "id": "VS2_MARSH_REED_01",
      "family": "marsh",
      "file": "assets/marsh/reuse_REED_01.png",
      "sourceSize": [
        192,
        192
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.12,
          0.35
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "marsh/reed/REED_01.png",
        "sourceId": "REED01",
        "sha256": "1dc12735066046ca9a083574d6442e1ae7f24222af37076dd3cd5d5798eed4ae"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "any",
        "mirror": true,
        "scaleJitter": 0.08
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1dc12735066046ca9a083574d6442e1ae7f24222af37076dd3cd5d5798eed4ae",
      "bytes": 6367,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_REED_02",
      "family": "marsh",
      "file": "assets/marsh/reuse_REED_02.png",
      "sourceSize": [
        192,
        192
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.12,
          0.35
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "marsh/reed/REED_02.png",
        "sourceId": "REED02",
        "sha256": "a64914d083a84a8cc88494d3abbfb98f2243d6d9f95cc4dc327609703adccec4"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "any",
        "mirror": true,
        "scaleJitter": 0.08
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "a64914d083a84a8cc88494d3abbfb98f2243d6d9f95cc4dc327609703adccec4",
      "bytes": 6140,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_REED_03",
      "family": "marsh",
      "file": "assets/marsh/reuse_REED_03.png",
      "sourceSize": [
        192,
        192
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.12,
          0.35
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "marsh/reed/REED_03.png",
        "sourceId": "REED03",
        "sha256": "89e9330af29d5994f9a199c1555261e9d0cc60b15e3b824cdcd73379c0d1b0a2"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "any",
        "mirror": true,
        "scaleJitter": 0.08
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "89e9330af29d5994f9a199c1555261e9d0cc60b15e3b824cdcd73379c0d1b0a2",
      "bytes": 5877,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_REED_04",
      "family": "marsh",
      "file": "assets/marsh/reuse_REED_04.png",
      "sourceSize": [
        192,
        192
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.12,
          0.35
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "marsh/reed/REED_04.png",
        "sourceId": "REED04",
        "sha256": "c2f8910853a84c9dfd5de8334d51849b4908647c343ff2c09ab6731f5468ef07"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "any",
        "mirror": true,
        "scaleJitter": 0.08
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "c2f8910853a84c9dfd5de8334d51849b4908647c343ff2c09ab6731f5468ef07",
      "bytes": 6508,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_01",
      "family": "city",
      "file": "assets/city/reuse_BC01.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC01.png",
        "sourceId": "BC01",
        "sha256": "5978502f013489c0fc841f67d0362628fddaec250769cf7af2d0e2a103718af1"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "5978502f013489c0fc841f67d0362628fddaec250769cf7af2d0e2a103718af1",
      "bytes": 8526,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_02",
      "family": "city",
      "file": "assets/city/reuse_BC02.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC02.png",
        "sourceId": "BC02",
        "sha256": "dea330ea1623801e81ed9084ef067d3fd5b0b7f3b485bf23ae69c7fcafd750e6"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "dea330ea1623801e81ed9084ef067d3fd5b0b7f3b485bf23ae69c7fcafd750e6",
      "bytes": 8223,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_03",
      "family": "city",
      "file": "assets/city/reuse_BC03.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC03.png",
        "sourceId": "BC03",
        "sha256": "44879fca51cf73c8c57b6123e6273000314aa6f86b94bb160a3f45b65d37193e"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "44879fca51cf73c8c57b6123e6273000314aa6f86b94bb160a3f45b65d37193e",
      "bytes": 9047,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_04",
      "family": "city",
      "file": "assets/city/reuse_BC04.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC04.png",
        "sourceId": "BC04",
        "sha256": "17b360e04d3880c724ec6cc34edca372156f7bb5c239ad68bfea6c408598c604"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "17b360e04d3880c724ec6cc34edca372156f7bb5c239ad68bfea6c408598c604",
      "bytes": 11075,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_05",
      "family": "city",
      "file": "assets/city/reuse_BC05.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC05.png",
        "sourceId": "BC05",
        "sha256": "e544a97bbad20ddc652a1faf5574ac2d830d1a63e855a880f1f0baf329c641a7"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "e544a97bbad20ddc652a1faf5574ac2d830d1a63e855a880f1f0baf329c641a7",
      "bytes": 7210,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_06",
      "family": "city",
      "file": "assets/city/reuse_BC06.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC06.png",
        "sourceId": "BC06",
        "sha256": "4a722f1477986b24cd37343fbe8019b5fdd937fa843b3f6f2f8a86bbb1ed0f51"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "4a722f1477986b24cd37343fbe8019b5fdd937fa843b3f6f2f8a86bbb1ed0f51",
      "bytes": 12577,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_07",
      "family": "city",
      "file": "assets/city/reuse_BC07.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC07.png",
        "sourceId": "BC07",
        "sha256": "1b1c461a5255992794f97d92d58c9552a122c50ece4b66561e0d2694d6816888"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1b1c461a5255992794f97d92d58c9552a122c50ece4b66561e0d2694d6816888",
      "bytes": 10815,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_LOCAL_BUILDING_08",
      "family": "city",
      "file": "assets/city/reuse_BC08.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.16,
          0.4
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "city/components/BC08.png",
        "sourceId": "BC08",
        "sha256": "25eba898527adc81175b16974e5575a81bbf64b9108d69df09d7512e3d3f4812"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "60deg",
        "mirror": false,
        "scaleJitter": 0.05
      },
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "25eba898527adc81175b16974e5575a81bbf64b9108d69df09d7512e3d3f4812",
      "bytes": 10322,
      "channels": "P"
    },
    {
      "id": "VS2_RIVER_WATER",
      "family": "river",
      "file": "assets/river/reuse_water_01.webp",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.05,
          0.13
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque RGB; mandatory renderer river-bed mask",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "river/water_01.webp",
        "sourceId": "RIV_WATER01",
        "sha256": "a02cdc8b68088c0e7ac3aff37ed9a50acdde991ec8fe2e2947b41396cd14592b"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "requiredExternalMask": "riverBed",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "a02cdc8b68088c0e7ac3aff37ed9a50acdde991ec8fe2e2947b41396cd14592b",
      "bytes": 4706,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RIVER_WET_BANK",
      "family": "river",
      "file": "assets/river/reuse_bank_01.png",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.05,
          0.13
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "river/bank_01.png",
        "sourceId": "RIV_BANK01",
        "sha256": "1757bb655a5c12533d7990602560c09ac71cc1e7c78191be269b6d5e72520aff"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1757bb655a5c12533d7990602560c09ac71cc1e7c78191be269b6d5e72520aff",
      "bytes": 20117,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RIVER_BANK_SHADOW",
      "family": "river",
      "file": "assets/river/reuse_bank_shadow_profile.png",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.05,
          0.13
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "luminance used as mask, never draw opaque black rectangle",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "river/bank_shadow_profile.png",
        "sourceId": "RIV_SHADOW",
        "sha256": "3a013371c51efc417210c812bbf0f68f7bfcd2a89ab44a7931e6c9070464ba9c"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "channelEncoding": "luminance linear coverage",
      "sha256": "3a013371c51efc417210c812bbf0f68f7bfcd2a89ab44a7931e6c9070464ba9c",
      "bytes": 404,
      "channels": "L"
    },
    {
      "id": "VS2_RIVER_SHALLOW_EDGE",
      "family": "river",
      "file": "assets/river/reuse_inner_highlight_01.png",
      "sourceSize": [
        512,
        64
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.05,
          0.13
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "river/inner_highlight_01.png",
        "sourceId": "RIV_HI01",
        "sha256": "1746291ad65a98c5646ec7f72e0315b969846583295fafa2fda3262527d46cbe"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1746291ad65a98c5646ec7f72e0315b969846583295fafa2fda3262527d46cbe",
      "bytes": 1370,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RIVER_BANK_VEGETATION",
      "family": "river",
      "file": "assets/river/reuse_edge_vegetation_01.png",
      "sourceSize": [
        512,
        96
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.05,
          0.13
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "close"
      ],
      "semanticRole": "localDecoration",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "river/edge_vegetation_01.png",
        "sourceId": "RIV_VEG01",
        "sha256": "1a49834fedbb5a0cc83f725265ca97eb83a67439241f8bfc4037268708d7ffb1"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "1a49834fedbb5a0cc83f725265ca97eb83a67439241f8bfc4037268708d7ffb1",
      "bytes": 2282,
      "channels": "RGBA"
    },
    {
      "id": "VS2_ROAD_SURFACE_01",
      "family": "road",
      "file": "assets/road/reuse_ROAD_01.png",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.05
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "road/ROAD_01.png",
        "sourceId": "ROAD01",
        "sha256": "3ed5cb550d307459f7145a51232212de605b70591054bf768748679a07912f1b"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "renderer tangent",
        "mirror": false,
        "scaleJitter": 0
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "3ed5cb550d307459f7145a51232212de605b70591054bf768748679a07912f1b",
      "bytes": 21927,
      "channels": "RGBA"
    },
    {
      "id": "VS2_ROAD_SURFACE_02",
      "family": "road",
      "file": "assets/road/reuse_ROAD_02.png",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.05
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "road/ROAD_02.png",
        "sourceId": "ROAD02",
        "sha256": "e4f5e382c3eec0619cdc584343829d155eb1bfb7eb8f37e0ac9c8eb1c22a2bc7"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": "renderer tangent",
        "mirror": false,
        "scaleJitter": 0
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "e4f5e382c3eec0619cdc584343829d155eb1bfb7eb8f37e0ac9c8eb1c22a2bc7",
      "bytes": 21513,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RAIL_BALLAST",
      "family": "rail",
      "file": "assets/rail/reuse_BALLAST_01.png",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.06
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "railway/BALLAST_01.png",
        "sourceId": "BALLAST01",
        "sha256": "7032bbe81dfe7cc3785e0b70e450b54520e8f49bc4e5bbbddc9f8f2ab0805802"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "7032bbe81dfe7cc3785e0b70e450b54520e8f49bc4e5bbbddc9f8f2ab0805802",
      "bytes": 22104,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RAIL_SLEEPERS",
      "family": "rail",
      "file": "assets/rail/reuse_sleeper_motif.png",
      "sourceSize": [
        256,
        64
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.06
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "railway/sleeper_motif.png",
        "sourceId": "RAIL_SLEEP",
        "sha256": "fdc363e93f6e0f4326148991351279782e7a33171cdff4bddb3838d3f86eefc5"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "fdc363e93f6e0f4326148991351279782e7a33171cdff4bddb3838d3f86eefc5",
      "bytes": 402,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RAIL_RAIL_PAIR",
      "family": "rail",
      "file": "assets/rail/reuse_rail_pair.png",
      "sourceSize": [
        512,
        64
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.06
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMaterial",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "railway/rail_pair.png",
        "sourceId": "RAIL_PAIR",
        "sha256": "7997e86f8f47d394ae87ef3bb0590ec82a4c6142569e080ac0e753456a9acb1e"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "sha256": "7997e86f8f47d394ae87ef3bb0590ec82a4c6142569e080ac0e753456a9acb1e",
      "bytes": 273,
      "channels": "RGBA"
    },
    {
      "id": "VS2_RAIL_CONTACT",
      "family": "rail",
      "file": "assets/rail/reuse_contact_shadow.png",
      "sourceSize": [
        512,
        64
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.025,
          0.06
        ]
      },
      "opacityRange": [
        0.7,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "medium",
        "close"
      ],
      "semanticRole": "pathMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "luminance used as mask, never draw opaque black rectangle",
      "provenance": {
        "method": "P5R1 byte-identical reuse",
        "sourceFile": "railway/contact_shadow.png",
        "sourceId": "RAIL_SHADOW",
        "sha256": "f261f8ab5c386313043652c645d7791f9d21a41c6887d82ab4b6fac632986db8"
      },
      "baseLayerEligible": false,
      "originalTransformContract": {
        "rotation": null,
        "mirror": null,
        "scaleJitter": null
      },
      "worldMapping": "u = continuous path arc length; v = normalized cross-path distance",
      "usageRestriction": "local detail, masks or canonical infrastructure finishing only; never hex-local base terrain",
      "channelEncoding": "luminance linear coverage",
      "sha256": "f261f8ab5c386313043652c645d7791f9d21a41c6887d82ab4b6fac632986db8",
      "bytes": 233,
      "channels": "L"
    },
    {
      "id": "VS2_GROUND_MACRO_VALUE",
      "family": "ground",
      "file": "assets/masks/macro_value.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        0.12
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "12f179ca3f5b129ed120e79dde6272fdb8675d4bed5d49d914e7cc8a03916d0f",
      "bytes": 9615,
      "channels": "L"
    },
    {
      "id": "VS2_GROUND_ROUGHNESS_VARIATION",
      "family": "ground",
      "file": "assets/masks/roughness_variation.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        0.12
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "633a9d4e0baa7507c08dd79ed647542383070edae3f4f26e78ce49082e7efea2",
      "bytes": 12720,
      "channels": "L"
    },
    {
      "id": "VS2_RELIEF_GENTLE_HEIGHT",
      "family": "relief",
      "file": "assets/masks/gentle_height.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "d43770cf374f6bdc5a336a09fb4042946a80886024e06643efacc658bb99b26b",
      "bytes": 9945,
      "channels": "L"
    },
    {
      "id": "VS2_RELIEF_GENTLE_SHADE",
      "family": "relief",
      "file": "assets/masks/gentle_shade.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        0.12
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "3432a372ee3a0191173f4dbbf456d84353d7f59c9ece400d34939c5ca52f1faf",
      "bytes": 731,
      "channels": "L"
    },
    {
      "id": "VS2_RELIEF_BROAD_RIDGE",
      "family": "relief",
      "file": "assets/masks/broad_ridge.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "494d97dece76c0ef002699316bed67a56bd49178d43e174e573004994fe0c63b",
      "bytes": 9269,
      "channels": "L"
    },
    {
      "id": "VS2_ROUGH_ROUGH_RELIEF",
      "family": "rough",
      "file": "assets/masks/rough_relief.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "b706a8146fc48c94474dda8df2112ec94f4a9cab5a34e5cfae696ae1a3f89048",
      "bytes": 5058,
      "channels": "L"
    },
    {
      "id": "VS2_MARSH_MOISTURE_EDGE",
      "family": "marsh",
      "file": "assets/masks/moisture_edge.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          4,
          12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "semanticRegion",
      "sha256": "61f454c6935db25d0a8b426917631320192aa1baad3e2eb7b08730654934a837",
      "bytes": 840,
      "channels": "L"
    },
    {
      "id": "VS2_ROAD_ROAD_SHOULDER",
      "family": "road",
      "file": "assets/masks/road_shoulder.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.04,
          0.12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "canonicalPathEnvelope",
      "sha256": "786cc8fc0c66ad192797aff20efb3cf1196b93dd6403f6dc3f4bd423786ea466",
      "bytes": 521,
      "channels": "L"
    },
    {
      "id": "VS2_ROAD_ROAD_WEAR",
      "family": "road",
      "file": "assets/masks/road_wear.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.04,
          0.12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "canonicalPathEnvelope",
      "sha256": "0a2e7dc44f4a963c261648acd34cdb37022cc2386ab061c254d20052621d1a51",
      "bytes": 619,
      "channels": "L"
    },
    {
      "id": "VS2_ROAD_ROAD_DEPRESSION",
      "family": "road",
      "file": "assets/masks/road_depression.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.04,
          0.12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "canonicalPathEnvelope",
      "sha256": "e5a6885b7fbd0ea8318c05c5ed3fd383026b1907d2475be534bd986ef5809d8f",
      "bytes": 573,
      "channels": "L"
    },
    {
      "id": "VS2_RAIL_RAIL_CLEARANCE",
      "family": "rail",
      "file": "assets/masks/rail_clearance.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.04,
          0.12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "canonicalPathEnvelope",
      "sha256": "aaa319a4a5fce857ad42ae6a12150d5be542195ad41fed7d56e315f95ce4a081",
      "bytes": 516,
      "channels": "L"
    },
    {
      "id": "VS2_BRIDGE_BRIDGE_CONTACT",
      "family": "bridge",
      "file": "assets/masks/bridge_contact.png",
      "sourceSize": [
        256,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.04,
          0.12
        ]
      },
      "opacityRange": [
        0,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "semanticRole": "scalarMask",
      "lightModel": "NW soft daylight",
      "anchor": [
        0.5,
        0.5
      ],
      "alphaConvention": "opaque scalar data, NOT a visible sprite",
      "channelEncoding": "luminance linear data; 0..255 maps to 0..1",
      "tileableX": true,
      "tileableY": false,
      "provenance": {
        "method": "deterministic numeric scalar field; no painted terrain",
        "formulaVersion": "VS2002_scalar_v1"
      },
      "requiredExternalMask": "canonicalPathEnvelope",
      "sha256": "14f9a80c3c0f57919b5402c6b715a085b446e1ad879a61d161e4a9a6d6435857",
      "bytes": 556,
      "channels": "L"
    },
    {
      "id": "VS2_BRIDGE_DECK_MATERIAL",
      "family": "bridge",
      "file": "assets/bridge/deck_material.webp",
      "sourceSize": [
        512,
        128
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.06,
          0.12
        ]
      },
      "semanticRole": "pathMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "mode": "canonicalPathTangent"
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "42cf0c4fb1e662b75e3ff7962b5cc3e1ac862cd60ec8601661ed00a385417cd8"
      },
      "worldMapping": "u follows canonical path arc length, v cross-path",
      "sha256": "53c2364c347db471d90f85f275829573d8825264cf068bfaf630e831a38cacc4",
      "bytes": 77368,
      "channels": "RGB"
    },
    {
      "id": "VS2_CITY_COURTYARD",
      "family": "city",
      "file": "assets/city/courtyard.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1,
          2
        ]
      },
      "semanticRole": "settlementMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "924656a85005f3f0e773ebe88c20d32658be0a0e3d73d4904dc02410ff01fa46"
      },
      "sha256": "7e42d7144e2553c6c5aaea350abd5680119407501789304faf77bde837e34269",
      "bytes": 423870,
      "channels": "RGB"
    },
    {
      "id": "VS2_CITY_MEDIUM_CLUSTER",
      "family": "city",
      "file": "assets/city/medium_cluster.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.5,
          1.1
        ]
      },
      "semanticRole": "buildingStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "4e0b25d80e06c623ab2b1548bfd14d3ffda7d97e8f9b33ea6fc3c3113cf05a0a"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "82d46bfe65993a7b7dbc31d1b9b04112bd6e563d42c129d05ee578d6e07b1ab0",
      "bytes": 95254,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_PERIPHERAL_HOUSES",
      "family": "city",
      "file": "assets/city/peripheral_houses.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.3,
          0.65
        ]
      },
      "semanticRole": "buildingStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "4296cd4ca7f49ebe74c2fba2cedfdca87dbe200380a734d25dd3182836eba030"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "d7bd256fa74a3e421127278bca3cdec7d24522158c4e9f52f7d9738542e87db5",
      "bytes": 78832,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_SETTLEMENT_GROUND",
      "family": "city",
      "file": "assets/city/settlement_ground.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1,
          3
        ]
      },
      "semanticRole": "settlementMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "3571219ea1ec22e00363bb883e192460638d62baea2e73e13ff6b45c4a6c0101"
      },
      "sha256": "c88df83849afbf8f581a047758554dfc7d02a3b28d1d1a2b4a88f324ac6fc14e",
      "bytes": 442634,
      "channels": "RGB"
    },
    {
      "id": "VS2_CITY_SMALL_CLUSTER",
      "family": "city",
      "file": "assets/city/small_cluster.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.35,
          0.8
        ]
      },
      "semanticRole": "buildingStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "8d52c57bc690a4a457b037f6f58596879334a5ce625738a6582856b602a2ba25"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "b69004233fdf447a885e9f0c012a76bfd46239567a239c4c6a872b6dfe67ea4b",
      "bytes": 100128,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_STATION_STRUCTURE",
      "family": "city",
      "file": "assets/city/station_structure.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.3,
          0.7
        ]
      },
      "semanticRole": "buildingStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "a490580557870c09de130d7ebf88f28f1b6ccec61a329a0a50f648f4638637b7"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "efb25d08af15c63480f24c3c72e7d474bd7ea5ab61d19b8ef8a05419bf69b1ba",
      "bytes": 110802,
      "channels": "P"
    },
    {
      "id": "VS2_CITY_URBAN_FRAGMENT",
      "family": "city",
      "file": "assets/city/urban_fragment.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          0.6,
          1.3
        ]
      },
      "semanticRole": "buildingStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "e471fc27a3bfa48f3daa81e586394f0dd2eff8a82dc9b96c8031fb731eedc551"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "f2ad41f1febfb410ade6f8b551713751631867bc74096002bc036473d1c93efe",
      "bytes": 135002,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_GREEN_FIELD",
      "family": "field",
      "file": "assets/field/green_field.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "96a92e95e337c5250466e55fc11ca07cac4d892dfc4e633e2b112f7a88318f58"
      },
      "sha256": "863ee3cf9823ae4f5697d796c5fcf0f223db92cee49e028257e1a9bdcbd89a08",
      "bytes": 116678,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_IRREGULAR_FIELD",
      "family": "field",
      "file": "assets/field/irregular_field.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "d0f68751fcc5bb4f499dd38c56bbc0e4f182f7515a3ac40ba455500f7268e156"
      },
      "sha256": "8286365100eaf19469b5992565040881b1285f30370c0430232db76540df64dd",
      "bytes": 133097,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_LONG_STRIP",
      "family": "field",
      "file": "assets/field/long_strip.png",
      "sourceSize": [
        768,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "fefc971ea23a2664a838b86f72d300191439c0b71d04636da6441f9704561ba6"
      },
      "sha256": "e824989510758a8f01bc19f5ef26bcddc3068a2d056cf37ec55241dcb1495381",
      "bytes": 54220,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_MEADOW_PATCH",
      "family": "field",
      "file": "assets/field/meadow_patch.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "9e04893406234fb5ef84f4d33c392204f6f0d2d3182f05ef914fb7d1bf6c061a"
      },
      "sha256": "6f5423177bd4e5cf40b377f93febd514d52a11173d8b420eaf35e7f1a17fa00c",
      "bytes": 159985,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_MIXED_BLOCK",
      "family": "field",
      "file": "assets/field/mixed_block.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "2a065929b44145185a65c70ed08e19131e458846e05a23a736406c5c193f3e63"
      },
      "sha256": "8368c5e0e20fec0aac7df914c45936f1f98d91fdc09f9e3a436b55b78bac6491",
      "bytes": 159224,
      "channels": "P"
    },
    {
      "id": "VS2_FIELD_SOIL_PATCH",
      "family": "field",
      "file": "assets/field/soil_patch.png",
      "sourceSize": [
        512,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "landUseStamp",
      "opacityRange": [
        0.5,
        0.9
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "b3921314429869ddbad443eb9bd9aeee12376cf3f263a096e7b15047ecd4fb48"
      },
      "sha256": "94c3aa04eec8f92160ab693db63de73484eed10568a158e289c2011a10a40a20",
      "bytes": 76933,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_BELT_WINDING",
      "family": "forest",
      "file": "assets/forest/belt_winding.png",
      "sourceSize": [
        768,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "edgeStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "8494f25017510862df5c47a8e6617509b7477216a86c606bfbae3a224f073206"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "1cbb46cf2d52d7ad02e249809322bd6691b2bff0bd1be8bd048cfde1e3a4fe08",
      "bytes": 32264,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_DENSE_BRANCH",
      "family": "forest",
      "file": "assets/forest/dense_branch.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "ae11495ce63ee8db9bbf6c4b5c45f1b251c178c9d565aecccf64b0d04a112302"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "e5297596a6507473a2af15df282a65ad6fce4e1bdd1b3814e6de95b2a5a28661",
      "bytes": 128932,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_DENSE_LONG",
      "family": "forest",
      "file": "assets/forest/dense_long.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "3c76e01b0a65c3e2b20c5361fbb570170036d7efafb8e1b6dc27d6102effc31d"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "c13ab80937ff39f89f85c7e236eb147bbf05a2eff6eb423be1fad09288290d2c",
      "bytes": 128192,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_EDGE_BROKEN",
      "family": "forest",
      "file": "assets/forest/edge_broken.png",
      "sourceSize": [
        768,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "edgeStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "bae744dbd9bec9c93f4192c44e9df39b131c92cb5b8b65e38536e36ff5baf49e"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "5b7b355bd51c8b66f65fd1e6d1fb07b5d1550c9ce5535aa844879e3b941ad49e",
      "bytes": 129910,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_EDGE_RAGGED",
      "family": "forest",
      "file": "assets/forest/edge_ragged.png",
      "sourceSize": [
        768,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "edgeStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "8a74bdb7fc71e57380a17688f2db3c27bf6a696c6789a00882dffb34ab1524d5"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "f886477fd0588cc78c9a425f35b59734fd1a916564cb71ea41398efcb4d614de",
      "bytes": 116346,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_HEDGEROW",
      "family": "forest",
      "file": "assets/forest/hedgerow.png",
      "sourceSize": [
        768,
        256
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "edgeStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "8ad206e0fbb58514e0ce16f84d96917db14729a2ff75619112019126303ff00c"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "977bff9dd5fc8936cfb7170b43b7eeb3eae8b6e9c79bd419cfec98f69be8a074",
      "bytes": 38534,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_MEDIUM_FORK",
      "family": "forest",
      "file": "assets/forest/medium_fork.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "3ed69f13d5c4c00588369e177d373015c4a5b8d2bf25b40c11503b5cbf0e26fe"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "18f56eeb9f4b143b8b63f8d19213ffcf6cbf506d4c08e3fe8f306c945cae9899",
      "bytes": 140070,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_MEDIUM_OPEN",
      "family": "forest",
      "file": "assets/forest/medium_open.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "104f7c5b7750221f79d6aac3cc325592df5d11757e7c900fac3778950e0fe921"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "9347fab14e24fa49167bb6eadbc5b61fc4fc83498d49917ff14e6e678b5529dd",
      "bytes": 148010,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_SPARSE_FRAGMENT",
      "family": "forest",
      "file": "assets/forest/sparse_fragment.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "3d1d946ee0cfbe2104ba16fedbd808c24110649ac970f62bf47aca9d6c41924e"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "c9d058844543d5b5c9d1dc13f77f03f8b31bcb91ba56e2d901e48df2d62dcf57",
      "bytes": 111928,
      "channels": "P"
    },
    {
      "id": "VS2_FOREST_SPARSE_SCATTER",
      "family": "forest",
      "file": "assets/forest/sparse_scatter.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "canopyStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "74e2ea7824f72b615e7814cb2b4c01ad23d98a80527fd3b883beaadfb38fc304"
      },
      "usageRestriction": "Do not rotate or mirror baked NW lighting. Select placement or future orientation-specific asset instead.",
      "sha256": "88b2aac0d13695cb8575c69e5243a5b66cfa2d3badbfa725c42948edb8600367",
      "bytes": 104122,
      "channels": "P"
    },
    {
      "id": "VS2_GROUND_CULTIVATED_SOIL",
      "family": "ground",
      "file": "assets/ground/cultivated_soil.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "baseMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "37236fec651f61285328cf1fb03068b60ac42b7c231639f85dde41e91080bae4"
      },
      "sha256": "7e5f0e8fd2a2a8f79745954ccc65c2084050d53863789de49eacda1c7dd89699",
      "bytes": 434564,
      "channels": "RGB"
    },
    {
      "id": "VS2_GROUND_DRY_SOIL",
      "family": "ground",
      "file": "assets/ground/dry_soil.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "baseMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "1cb82fb124443e0ecc3775759dd01b4bfd30adefe5f6e50b6c518dca8ab928f0"
      },
      "sha256": "fa060295b65e5b0a663e0f3d1b29a8fec9b34f626851eca3abfa30c2185897fe",
      "bytes": 443224,
      "channels": "RGB"
    },
    {
      "id": "VS2_GROUND_GRASS",
      "family": "ground",
      "file": "assets/ground/grass.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "baseMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "6e785014ee7eb1d7aae0aca2fd02981216f9b69b4f9b61cb37468107ef41a6ed"
      },
      "sha256": "f673fe1a7e59847c3752ab5a4d0261b3fa0b397671c6159ad3e07f48e3e399cf",
      "bytes": 450290,
      "channels": "RGB"
    },
    {
      "id": "VS2_GROUND_MEADOW",
      "family": "ground",
      "file": "assets/ground/meadow.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "baseMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "24f1fd142d29339215e907b42edb983c4f83f8d09d677c5191daf72e75bfd471"
      },
      "sha256": "eaa0cf3cc82315ad1af2f17b42d116f02776021f527d3243156c0dbca07394fd",
      "bytes": 435316,
      "channels": "RGB"
    },
    {
      "id": "VS2_GROUND_MOIST_SOIL",
      "family": "ground",
      "file": "assets/ground/moist_soil.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "baseMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "14b31acfaaa9f46f0f2743e28c98fddd642d46ec5597539e2ddbdccf8f1350d8"
      },
      "sha256": "3ff0734a6f0bc7d1ff2fb827d189aa1c297a50759bc1e59c1422200e12ae261b",
      "bytes": 460014,
      "channels": "RGB"
    },
    {
      "id": "VS2_MARSH_DRY_ISLAND",
      "family": "marsh",
      "file": "assets/marsh/dry_island.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          4
        ]
      },
      "semanticRole": "wetlandStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "3f040e02ee61194d64c9d34f3cb1bbbc163efbda3b3871bdbee0bf792ecea541"
      },
      "sha256": "5bea312444604aef91462996a9493764a5a9d483f6b9f363dfc57abfc05c3ee2",
      "bytes": 126065,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_MUD",
      "family": "marsh",
      "file": "assets/marsh/mud.webp",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          4
        ]
      },
      "semanticRole": "wetMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "47613e77a97637bd12269a6d2abb1bea70d6e162ab6d465ded8fcaca33c481cd"
      },
      "sha256": "8d7d49f4a165549e8ba789ac7216fa1884c24b249cb3f39aa20d33cf27b48a52",
      "bytes": 544228,
      "channels": "RGB"
    },
    {
      "id": "VS2_MARSH_REEDY_PATCH",
      "family": "marsh",
      "file": "assets/marsh/reedy_patch.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          4
        ]
      },
      "semanticRole": "wetlandStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "d758fe142ee9c327534ed210960d4e1e0bb8cc77076b9d61c97ad633230763c9"
      },
      "sha256": "ad799e0a51988da2c45feef3c892019707886f969dcd5955d0aa8f1868e4acf2",
      "bytes": 140982,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_WATER_FRAGMENT",
      "family": "marsh",
      "file": "assets/marsh/water_fragment.png",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          4
        ]
      },
      "semanticRole": "wetlandStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "d91b91fe87705831f6b47a78593dacfdf9aaec3afb241216fac1f8d91a24c46f"
      },
      "sha256": "f2f8b9f67073ed468a656f0662cfb2fa3098abbe9deaac55b4463c1971c9b1ed",
      "bytes": 127746,
      "channels": "P"
    },
    {
      "id": "VS2_MARSH_WET_GROUND",
      "family": "marsh",
      "file": "assets/marsh/wet_ground.webp",
      "sourceSize": [
        640,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          4
        ]
      },
      "semanticRole": "wetMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "62f48b3b64d2266ab54c25d9fb3b82c1590a1f1799cd9990ff62e13006ce468e"
      },
      "sha256": "e391bb89e08a2d7738872bdcf88b9d72700621be0c9e1f0a73c4c53838c87fd1",
      "bytes": 563290,
      "channels": "RGB"
    },
    {
      "id": "VS2_RELIEF_SLOPE_MATERIAL",
      "family": "relief",
      "file": "assets/relief/slope_material.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          2,
          5
        ]
      },
      "semanticRole": "slopeMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "ca94c72eebf2e80715b2fd933f24e463339732d9180a77e496aa858d999415d5"
      },
      "sha256": "4cfbca5b462addc9052e3581162a8424c497ebb20af8686d1028ff69887be3b7",
      "bytes": 430202,
      "channels": "RGB"
    },
    {
      "id": "VS2_ROUGH_BROKEN_SOIL",
      "family": "rough",
      "file": "assets/rough/broken_soil.webp",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1.5,
          4
        ]
      },
      "semanticRole": "roughMaterial",
      "opacityRange": [
        0.6,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0,
          90,
          180,
          270
        ]
      },
      "mirrorAllowed": true,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "opaque RGB material",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": true,
      "tileableX": true,
      "tileableY": true,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "b40a794958b431a9e38222dd1056abb2406540f700767fa8a5edd909168193b6"
      },
      "sha256": "febc06440d4f66b3028d0bab960c881ecfffba9390b97bdb146aedb2ed96d22e",
      "bytes": 463228,
      "channels": "RGB"
    },
    {
      "id": "VS2_ROUGH_DRY_SCRUB",
      "family": "rough",
      "file": "assets/rough/dry_scrub.png",
      "sourceSize": [
        640,
        384
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1,
          2.5
        ]
      },
      "semanticRole": "detailStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "2287a1c8fb24d5b2380819ccdd179e687634e559878484b9261e75ad4de4efea"
      },
      "sha256": "ff61d9559223fabd2af40d97f89fa7526e5892c8cb51560f4a0a3227d4742276",
      "bytes": 102261,
      "channels": "P"
    },
    {
      "id": "VS2_ROUGH_ROCK_EXPOSURE",
      "family": "rough",
      "file": "assets/rough/rock_exposure.png",
      "sourceSize": [
        512,
        512
      ],
      "recommendedWorldScale": {
        "unit": "adjacentHexCenterDistance",
        "width": [
          1,
          2.5
        ]
      },
      "semanticRole": "rockStamp",
      "opacityRange": [
        0.85,
        1
      ],
      "rotationAllowed": {
        "degrees": [
          0
        ]
      },
      "mirrorAllowed": false,
      "LOD": [
        "far",
        "medium",
        "close"
      ],
      "lightModel": "NW soft daylight",
      "alphaConvention": "straight RGBA; decode to premultiplied for compositing",
      "anchor": [
        0.5,
        0.5
      ],
      "baseLayerEligible": false,
      "tileableX": false,
      "tileableY": false,
      "provenance": {
        "method": "new imagegen art; technically normalized",
        "record": "docs/GENERATION_PROVENANCE.json",
        "sourceImageSha256": "c17415137188cd388ffa9e58ac9b82fd19cbf0ac964f0da9a9098844ceea68fa"
      },
      "sha256": "b64b1a49f4692af277a623f22f2495f6a98783951555f71b7081fdf82b44836c",
      "bytes": 100701,
      "channels": "P"
    }
  ]
}