{
  "base": "ff64b2a74f3df6e8cced087f6fc43c51814c5c4d",
  "head": "41d30c33602b6193d60f2b9be6c7f410aa2903c0",
  "sourceCount": 15,
  "sources": [
    {
      "number": 252,
      "title": "design(forest): preserve the ground study with calm borders",
      "headRefOid": "71cc2cafde2f6731298ba056aa6ef35140107a8d",
      "headRefName": "lookdev/fields-ground-forest"
    },
    {
      "number": 245,
      "title": "design(farm): adopt the published lawn treatment",
      "headRefOid": "9244e3a9b7c264fef931dd7a9a72adac70e3e0c2",
      "headRefName": "lookdev/fields-ground-farm"
    },
    {
      "number": 255,
      "title": "design(farm): ground props with local shade",
      "headRefOid": "98a60cd8bf0fbbf0ed24809df06867b1c2429bbd",
      "headRefName": "design/fields-light-farm"
    },
    {
      "number": 256,
      "title": "design(forest): deepen leaf contact with soft ground shade",
      "headRefOid": "7ebe20a3480e260e9417c2f599bdd3ee2e27c97c",
      "headRefName": "design/fields-light-forest"
    },
    {
      "number": 250,
      "title": "design(forest): deepen foliage shading",
      "headRefOid": "1f1c905b4f48ebd1bea890af804ed02640715e41",
      "headRefName": "design/fields-foliage-forest"
    },
    {
      "number": 251,
      "title": "design(farm): soften leaf rims",
      "headRefOid": "6062de3602844a8e57d2ae34cc9f106437aff9d5",
      "headRefName": "design/fields-foliage-farm"
    },
    {
      "number": 259,
      "title": "design(fields): calm fine leaf contour highlights",
      "headRefOid": "9a4c2aefa9eabdb83ab42ae12288f3d26e936ccf",
      "headRefName": "lookdev/fields-edges-contour"
    },
    {
      "number": 264,
      "title": "design(forest): finish bark, cut wood, stone materials",
      "headRefOid": "5c84ea348643866958bff9d86d950c7b16c95b2d",
      "headRefName": "lookdev/fields-edges-forest"
    },
    {
      "number": 260,
      "title": "design(farm): close rail ends with softer prop edges",
      "headRefOid": "d65d54ffef17e802fe0dabbc85ba483f936f8396",
      "headRefName": "lookdev/fields-edges-farm"
    },
    {
      "number": 262,
      "title": "design(forest): define creek banks with a softer shoreline",
      "headRefOid": "f6223c7fdf584bb6fd94cee59cdcb31fedfe67a8",
      "headRefName": "lookdev/fields-atmosphere-creek"
    },
    {
      "number": 265,
      "title": "design(forest): add aerial depth to distant tree bands",
      "headRefOid": "902e89238c7d54fb9aeb674de543191790119d42",
      "headRefName": "lookdev/fields-atmosphere-forest-depth"
    },
    {
      "number": 266,
      "title": "design(farm): soften hill-to-field distance colors",
      "headRefOid": "6c471be9ba3b95d3bae0615057ef080ec2bebbd3",
      "headRefName": "lookdev/fields-atmosphere-farm-haze"
    },
    {
      "number": 248,
      "title": "design(fields): coordinate a gentle breeze across both fields",
      "headRefOid": "653ac0adc4f6bed6b375d6af8213980799beabac",
      "headRefName": "lookdev/fields-life-wind"
    },
    {
      "number": 246,
      "title": "design(forest): add quiet life along the woodland edge",
      "headRefOid": "0c4d64297e9eca8ef82fde2b755d8a65629f7f6d",
      "headRefName": "lookdev/fields-life-forest"
    },
    {
      "number": 249,
      "title": "design(farm): add quiet flower visitors with gpu pollen",
      "headRefOid": "3e887aa671187c52f091c039d10b58312f51cc8d",
      "headRefName": "lookdev/fields-life-farm"
    }
  ],
  "binaryRegeneration": {
    "ground": {
      "input": "/tmp/aa-fields-combined/original.glb",
      "output": "/tmp/aa-fields-combined/regenerated-ground.glb",
      "inputSHA256": "21aa8aa2d898cf01c3171b251cd6ff40b9e04c80a6abfea7fa4dd501033efb78",
      "studySHA256": "c599dba610e32a65f0f468d209bdda316acf02ffc5207ce09d41f8396cf13a36",
      "outputSHA256": "8e8aef42756e0774b00d0928c5656754ad1b25514d3c15fbf5016176a339fd23",
      "sharp": "0.34.5",
      "libvips": "8.17.3",
      "jpegtran": "libjpeg-turbo version 3.1.3 (build 20260309)",
      "original": 13959800,
      "after": 14008072,
      "albedoBytes": 267545,
      "normalBytes": 457213,
      "albedoDimensions": [
        2048,
        2048
      ],
      "normalDimensions": [
        1024,
        1024
      ],
      "borderPixels": [
        128,
        64
      ],
      "geometryChanged": false
    },
    "light": {
      "inputBytes": 14008072,
      "outputBytes": 14954580,
      "deltaBytes": 946508,
      "sha256": "58f70aa1c0944f56a04c31978395f2f5c9e531899a784463c7cf56489ded023b",
      "guard": {
        "passed": true,
        "unchangedStreams": 85,
        "decodedBytes": 30615722,
        "changedColorStreams": 11,
        "originalImages": 6
      }
    }
  },
  "conflicts": [
    "Forest GLB: regenerate ground from original plus published study, compare byte-identical with #252, prepare against that output, prove every model/geometry/placement bake input byte-identical with corrected light bake, reuse exact AO/shade arrays, then pack light over the ground result. Ground images and all 85 non-colour streams survive.",
    "Forest foliage #250: retain inherited hooks, LEAF_LIT, atlas, foliage shader and wind; combine cache keys instead of selecting either lane.",
    "Farm foliage #251: retain ground/light imports and private foliage material.",
    "Shared contours #259: compose both field hooks and forest test keys; use the contour-owned farm material for foliage so no abandoned private material is leaked.",
    "Forest props #264 and farm props #260: union imports; preserve finish invocation and all rail/scarecrow geometry edits.",
    "Forest depth #265: add the atmosphere callback and -air-1 key after existing lighting/foliage. Ground, creek and sky remain untagged.",
    "Wind #248: retain foliage on both tiers, disable only wind work on low, keep rooted Current motion and combined high/low keys. Update assertions for composed keys and no low-tier wind uniform.",
    "Forest life #246: preserve finish call before adding life initialization. Farm life #249: union imports and retain slower mill, light application and GPU life updates."
  ],
  "tuning": [
    "Farm foliage and contour masks share a single 82% rim attenuation, using max(vLeafContour, plantMask), rather than multiplying two 82% reductions. The broad foliage shade and the f1 contour mask both survive.",
    "Forest prop selection uses pigment ratios after AO instead of absolute RGB bands. Exhaustive decoded comparison preserves all 947 stone and 3114 cut-wood vertices with zero false positives or negatives; exported log footprints still limit cut wood.",
    "Life stays exactly at Current. No More/Lots motion is imported; forestLife.js, farmLife.js and their counts/paths remain separable for a later swap.",
    "No global brightness, camera, sky, fog or density changes beyond the supplied lanes. M1 Home captures retain the bright pastel farm and the layered woodland; no extra global colour tuning was needed.",
    "Material ownership: name the private farm foliage material so light reuses it instead of cloning it again. The disposal assertion fails before and passes after. All shaders, uniforms, geometry and program keys are byte-identical for A/B seats on full/reduced detail; captured visuals and per-frame costs remain valid."
  ],
  "assetCompositionProof": {
    "allLightColorStreamsExact": 13,
    "changedAOColorStreams": 11,
    "lightAtlasExact": true,
    "groundImagesExact": 2
  },
  "captureCorrections": [
    "Local HTTP server listen backlog increased from 5 to 128 after a farm Home capture recorded connection resets. The rejected capture is excluded and retaken; app source is unchanged.",
    "An initial low capture auto-promoted to mid during the long intro. It is excluded. Accepted low captures pin the existing host quality override before settling and verify DPR1, reduced detail, no MSAA, no atlas sampler and no wind uniforms."
  ],
  "captureHead": "dfcded228d95a78bc16ef1fd3b0ce33d2ce0890a",
  "fullGateHead": "dfcded228d95a78bc16ef1fd3b0ce33d2ce0890a",
  "postGateDelta": {
    "files": [
      "apps/mobile/src/three/scene/fields/farm.js",
      "apps/mobile/src/three/scene/fields/farmLight.test.ts"
    ],
    "behavior": "Name the already private farm foliage material so lighting reuses it instead of cloning it again and abandoning it. No visual or per-frame change.",
    "regression": "Existing test now tracks every clone from the shared kit material. It failed before the fix and passes after.",
    "checks": {
      "targetedPassed": 16,
      "targetedFailed": 0,
      "typecheck": "PASS",
      "lint": "PASS"
    },
    "equivalence": [
      {
        "seats": "A",
        "detail": "full",
        "hash": "a1a5f09f403d355dc1ab612078f8cf5f9280763483b385deb525ee3d3e0e3dfb"
      },
      {
        "seats": "A",
        "detail": "reduced",
        "hash": "e595f3e590a1ef950ded29aa032b239f04842ee8a72784998fef9b6555ac5dc8"
      },
      {
        "seats": "B",
        "detail": "full",
        "hash": "d6e6d1243bb2468998ff90f422bef13d8ed61ce7e65aa0008d06b1ec6d30871a"
      },
      {
        "seats": "B",
        "detail": "reduced",
        "hash": "e595f3e590a1ef950ded29aa032b239f04842ee8a72784998fef9b6555ac5dc8"
      }
    ]
  }
}