{
  "id": "gaussian-blur",
  "name": "Gaussian Blur",
  "description": "Applies a separable two-pass Gaussian-style blur to the decoded video input.",
  "category": "Transform",
  "entryPoint": "shadeVideo",
  "passes": [
    {
      "id": "horizontal",
      "source": "shader.slang",
      "entryPoint": "blurHorizontal",
      "inputs": [
        "layerInput"
      ],
      "output": "blurHorizontal"
    },
    {
      "id": "vertical",
      "source": "shader.slang",
      "entryPoint": "blurVertical",
      "inputs": [
        "blurHorizontal"
      ],
      "output": "layerOutput"
    }
  ],
  "parameters": [
    {
      "id": "radius",
      "label": "Radius",
      "type": "float",
      "default": 2,
      "min": 0,
      "max": 8,
      "step": 0.1,
      "description": "Blur radius in pixels for each separable pass."
    },
    {
      "id": "strength",
      "label": "Strength",
      "type": "float",
      "default": 1,
      "min": 0,
      "max": 1,
      "step": 0.01,
      "description": "Blends between the original and blurred result."
    },
    {
      "id": "samples",
      "label": "Samples",
      "type": "float",
      "default": 2,
      "min": 0,
      "max": 25,
      "step": 1,
      "description": "Number of taps per direction; higher values cost more GPU time."
    }
  ]
}
