{
  "id": "white-match-probe",
  "name": "White Match Probe",
  "description": "Samples a movable box, stores a reference color on trigger using shader-local feedback, and compares the current sample against a captured or manual reference for camera matching.",
  "category": "Scopes & Guides",
  "entryPoint": "storeReferenceState",
  "passes": [
    {
      "id": "store",
      "source": "shader.slang",
      "entryPoint": "storeReferenceState",
      "output": "referenceState"
    },
    {
      "id": "display",
      "source": "shader.slang",
      "entryPoint": "displayReferenceCompare",
      "inputs": [
        "referenceState"
      ],
      "output": "layerOutput"
    }
  ],
  "feedback": {
    "enabled": true,
    "writePass": "store"
  },
  "parameters": [
    {
      "id": "referenceSource",
      "label": "Reference Source",
      "type": "enum",
      "default": "captured",
      "options": [
        {
          "value": "captured",
          "label": "Captured Sample"
        },
        {
          "value": "manual",
          "label": "Manual Color"
        }
      ],
      "description": "Choose whether the probe compares against a captured screen sample or a manually selected reference color."
    },
    {
      "id": "captureReference",
      "label": "Capture Reference",
      "type": "trigger",
      "description": "Stores the current sample box average as the held reference."
    },
    {
      "id": "sampleCenter",
      "label": "Sample Center",
      "type": "vec2",
      "default": [
        0.5,
        0.5
      ],
      "min": [
        0.0,
        0.0
      ],
      "max": [
        1.0,
        1.0
      ],
      "step": [
        0.001,
        0.001
      ],
      "description": "Center of the sample box in normalized coordinates."
    },
    {
      "id": "sampleSize",
      "label": "Sample Size",
      "type": "vec2",
      "default": [
        0.14,
        0.14
      ],
      "min": [
        0.02,
        0.02
      ],
      "max": [
        0.5,
        0.5
      ],
      "step": [
        0.001,
        0.001
      ],
      "description": "Width and height of the sample box."
    },
    {
      "id": "manualReference",
      "label": "Manual Reference",
      "type": "color",
      "default": [
        1.0,
        1.0,
        1.0,
        1.0
      ],
      "min": [
        0.0,
        0.0,
        0.0,
        0.0
      ],
      "max": [
        1.0,
        1.0,
        1.0,
        1.0
      ],
      "step": [
        0.01,
        0.01,
        0.01,
        0.01
      ],
      "description": "Manual reference color used when Reference Source is set to Manual Color."
    },
    {
      "id": "overlayOpacity",
      "label": "Overlay Opacity",
      "type": "float",
      "default": 0.9,
      "min": 0.0,
      "max": 1.0,
      "step": 0.01,
      "description": "Strength of the swatch and box overlay."
    },
    {
      "id": "differenceGain",
      "label": "Difference Gain",
      "type": "float",
      "default": 2.0,
      "min": 0.0,
      "max": 8.0,
      "step": 0.01,
      "description": "Scales the displayed reference-vs-current difference."
    }
  ]
}
