{
    "effectName": "Snowflakes",
    "properties": [
        {
            "id": "Snowflakes_Count",
            "label": "Max flakes",
            "type": "int",
            "controlType": "slider",
            "default": 5,
            "min": 1,
            "max": 100,
            "valueCurve": true,
            "lockable": true,
            "description": "Maximum number of snowflakes visible on the buffer at the same time."
        },
        {
            "id": "Snowflakes_Type",
            "label": "Type",
            "type": "int",
            "controlType": "slider",
            "default": 1,
            "min": 0,
            "max": 9,
            "lockable": true,
            "description": "Selects the snowflake shape. 0 uses a random mix of all types each frame. Types 1-9 are specific shapes ranging from single pixels to multi-node crosses, diamonds, and squares."
        },
        {
            "id": "Snowflakes_Speed",
            "label": "Speed",
            "type": "int",
            "controlType": "slider",
            "default": 10,
            "min": 0,
            "max": 50,
            "valueCurve": true,
            "lockable": true,
            "description": "Controls how fast snowflakes move. In Driving mode this affects horizontal and vertical scroll speed; in Falling modes it controls the rate of downward movement."
        },
        {
            "id": "Falling",
            "label": "Falling",
            "type": "enum",
            "controlType": "choice",
            "options": [
                "Driving",
                "Falling",
                "Falling & Accumulating"
            ],
            "default": "Driving",
            "lockable": true,
            "description": "Selects the snowflake movement mode. 'Driving' scrolls flakes diagonally across the buffer. 'Falling' drops flakes from top to bottom. 'Falling & Accumulating' drops flakes that pile up at the bottom."
        },
        {
            "id": "Snowflakes_WarmupFrames",
            "label": "Warm up frames",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "min": 0,
            "max": 100,
            "description": "Number of simulation frames to run before the effect starts rendering. This pre-fills the buffer so falling snowflakes appear mid-flight from the first visible frame."
        }
    ],
    "visibilityRules": [
        {
            "when": { "property": "Falling", "equals": "Driving" },
            "disable": [ "Snowflakes_WarmupFrames" ]
        }
    ]
}
