{
  "id": "feedback-data-blocks",
  "name": "Feedback Data Blocks",
  "description": "Demonstrates coarse shader-local data storage by reserving eight 3x3 feedback cells for sampled colors and one hidden metadata cell for refresh state.",
  "category": "Feedback",
  "entryPoint": "storeProbeData",
  "passes": [
    {
      "id": "store",
      "source": "shader.slang",
      "entryPoint": "storeProbeData",
      "output": "dataBuffer"
    },
    {
      "id": "display",
      "source": "shader.slang",
      "entryPoint": "displayProbeData",
      "inputs": [
        "dataBuffer"
      ],
      "output": "layerOutput"
    }
  ],
  "feedback": {
    "enabled": true,
    "writePass": "store"
  },
  "parameters": [
    {
      "id": "refresh",
      "label": "Refresh",
      "type": "trigger",
      "description": "Forces the stored probe colors to resample immediately."
    },
    {
      "id": "refreshSeconds",
      "label": "Refresh Seconds",
      "type": "float",
      "default": 15.0,
      "min": 1.0,
      "max": 60.0,
      "step": 0.1,
      "description": "Automatic interval for resampling all stored probe colors."
    },
    {
      "id": "overlayOpacity",
      "label": "Overlay Opacity",
      "type": "float",
      "default": 1.0,
      "min": 0.0,
      "max": 1.0,
      "step": 0.01,
      "description": "Strength of the swatch overlay drawn from the stored data cells."
    },
    {
      "id": "swatchSize",
      "label": "Swatch Size",
      "type": "vec2",
      "default": [0.045, 0.055],
      "min": [0.02, 0.02],
      "max": [0.12, 0.12],
      "step": [0.001, 0.001],
      "description": "Size of the top-left preview swatches that show the stored cell values."
    }
  ]
}
