{
    "effectName": "Meteors",
    "properties": [
        {
            "id": "Meteors_Type",
            "label": "Colors",
            "type": "enum",
            "controlType": "choice",
            "options": [
                "Rainbow",
                "Range",
                "Palette"
            ],
            "default": "Rainbow",
            "lockable": true,
            "description": "Color scheme for the meteors. Rainbow uses random hues, Range picks random colors from the palette range, and Palette cycles through the defined palette colors."
        },
        {
            "id": "Meteors_Effect",
            "label": "Effect",
            "type": "enum",
            "controlType": "choice",
            "options": [
                "Down",
                "Up",
                "Left",
                "Right",
                "Implode",
                "Explode",
                "Icicles",
                "Icicles + bkg"
            ],
            "default": "Down",
            "lockable": true,
            "description": "Direction of meteor movement. Down/Up/Left/Right move linearly, Implode moves toward center, Explode moves outward from center, and Icicles create random-length dripping streaks."
        },
        {
            "id": "Meteors_Count",
            "label": "Count",
            "type": "int",
            "controlType": "slider",
            "default": 10,
            "min": 1,
            "max": 100,
            "valueCurve": true,
            "lockable": true,
            "description": "Number of new meteors spawned per frame. Higher values create a denser shower of meteors."
        },
        {
            "id": "Meteors_Length",
            "label": "Trail Length",
            "type": "int",
            "controlType": "slider",
            "default": 25,
            "min": 1,
            "max": 100,
            "valueCurve": true,
            "lockable": true,
            "description": "Length of the fading trail behind each meteor. Higher values create longer tails that fade more gradually."
        },
        {
            "id": "Meteors_Swirl_Intensity",
            "label": "Swirl Intensity",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "min": 0,
            "max": 20,
            "valueCurve": true,
            "lockable": true,
            "description": "Adds a random sideways wobble to each meteor as it moves. Higher values create more pronounced swirling motion."
        },
        {
            "id": "Meteors_Speed",
            "label": "Speed",
            "type": "int",
            "controlType": "slider",
            "default": 10,
            "min": 0,
            "max": 50,
            "valueCurve": true,
            "description": "How fast the meteors travel across the model. Higher values make meteors move more pixels per frame."
        },
        {
            "id": "Meteors_WamupFrames",
            "label": "Warm up frames",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "min": 0,
            "max": 100,
            "description": "Number of simulation frames to run before the first visible frame, so the effect starts with meteors already in flight rather than an empty screen."
        },
        {
            "id": "Meteors_XOffset",
            "label": "Horizontal Offset",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "valueCurve": true,
            "lockable": true,
            "min": -100,
            "max": 100,
            "settingPrefix": "TEXTCTRL",
            "description": "Shifts the center point horizontally for Implode and Explode modes. Negative values move the center left, positive values move it right."
        },
        {
            "id": "Meteors_YOffset",
            "label": "Vertical Offset",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "valueCurve": true,
            "lockable": true,
            "min": -100,
            "max": 100,
            "settingPrefix": "TEXTCTRL",
            "description": "Shifts the center point vertically for Implode and Explode modes. Negative values move the center down, positive values move it up."
        },
        {
            "id": "Meteors_UseMusic",
            "label": "Adjust count based on music",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true,
            "description": "When enabled, the meteor count is scaled by the current music volume, producing more meteors during loud passages and fewer during quiet ones."
        },
        {
            "id": "FadeWithDistance",
            "label": "Starfield simulation",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true,
            "description": "For Implode/Explode modes, meteors fade in brightness based on their distance from center, creating a 3D starfield depth illusion."
        }
    ],
    "visibilityRules": [
        {
            "when": {
                "property": "Meteors_Effect",
                "oneOf": [
                    "Implode",
                    "Explode"
                ]
            },
            "enable": [
                "Meteors_XOffset",
                "Meteors_YOffset",
                "FadeWithDistance"
            ]
        }
    ]
}
