{
  "$schema": "https://ghost-arcade.com/schemas/effect-v1.json",
  "version": 1,
  "type": "my-custom-effect",
  "label": "My Custom Effect",
  "category": "Stylize",
  "description": "What this effect does, in one sentence.",
  "author": "Your Name",
  "previewCSS": "linear-gradient(45deg, #f0f, #0ff)",
  "params": [
    {
      "param": "uAmount",
      "name": "Intensity",
      "type": "slider",
      "min": 0,
      "max": 1,
      "default": 0.5,
      "step": 0.01
    },
    {
      "param": "uColor",
      "name": "Tint",
      "type": "color",
      "default": [1, 0.5, 0.2, 1]
    }
  ],
  "shader": "precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uResolution;\nuniform float uTime;\nuniform float uAmount;\nuniform vec3 uColor;\nvarying vec2 vUv;\n\nvoid main() {\n  vec4 src = texture2D(uTexture, vUv);\n  // Example: tint the image by uColor weighted by uAmount.\n  vec3 tinted = mix(src.rgb, src.rgb * uColor, uAmount);\n  gl_FragColor = vec4(clamp(tinted, 0.0, 1.0), src.a);\n}\n"
}
