{
    "effectName": "Twinkle",
    "properties": [
        {
            "id": "Twinkle_Count",
            "label": "Percent of Lights",
            "description": "Percentage of pixels that are actively twinkling at any given time. Higher values create a denser twinkling field.",
            "type": "int",
            "controlType": "slider",
            "default": 3,
            "min": 2,
            "max": 100,
            "valueCurve": true,
            "lockable": true
        },
        {
            "id": "Twinkle_Steps",
            "label": "Twinkle Steps",
            "description": "Number of frames for a complete twinkle cycle (fade up then fade down). Lower values create faster, snappier twinkles; higher values create slow, gentle fades.",
            "type": "int",
            "controlType": "slider",
            "default": 30,
            "min": 2,
            "max": 400,
            "vcMax": 400,
            "valueCurve": true,
            "lockable": true
        },
        {
            "id": "Twinkle_Style",
            "label": "Style",
            "description": "Selects the rendering algorithm. Old Render Method uses the original per-frame logic; New Render Method uses an updated approach with smoother transitions.",
            "type": "enum",
            "controlType": "choice",
            "options": [
                "Old Render Method",
                "New Render Method"
            ],
            "default": "New Render Method"
        },
        {
            "id": "Twinkle_Strobe",
            "label": "Strobe",
            "description": "When enabled, twinkling pixels snap on and off instantly instead of fading, creating a strobe-like flash effect.",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true
        },
        {
            "id": "Twinkle_ReRandom",
            "label": "Re-Randomize after twinkle",
            "description": "When enabled, each pixel is assigned a new random position after its twinkle cycle completes. When disabled, pixels twinkle in the same locations repeatedly.",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true
        }
    ]
}
