{
    "effectName": "Fireworks",
    "properties": [
        {
            "id": "Fireworks_Explosions",
            "label": "Number of Explosions",
            "type": "int",
            "controlType": "slider",
            "default": 16,
            "min": 1,
            "max": 50,
            "lockable": true,
            "description": "Total number of firework explosions randomly distributed across the effect duration. Disabled when using music or timing triggers."
        },
        {
            "id": "Fireworks_Count",
            "label": "Particles in Explosion",
            "type": "int",
            "controlType": "slider",
            "default": 50,
            "min": 1,
            "max": 100,
            "valueCurve": true,
            "lockable": true,
            "description": "Number of particles created in each explosion. More particles create denser, more dramatic bursts."
        },
        {
            "id": "Fireworks_Velocity",
            "label": "Velocity of Particles",
            "type": "int",
            "controlType": "slider",
            "default": 2,
            "min": 1,
            "max": 10,
            "valueCurve": true,
            "lockable": true,
            "description": "Maximum speed of particles as they fly outward from the explosion center. Higher values create larger bursts."
        },
        {
            "id": "Fireworks_XVelocity",
            "label": "X Velocity",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "min": -100,
            "max": 100,
            "valueCurve": true,
            "description": "Horizontal drift applied to all particles. Positive values push particles to the right, negative to the left."
        },
        {
            "id": "Fireworks_YVelocity",
            "label": "Y Velocity",
            "type": "int",
            "controlType": "slider",
            "default": 0,
            "min": -100,
            "max": 100,
            "valueCurve": true,
            "description": "Vertical drift applied to all particles. Positive values push particles upward, negative downward."
        },
        {
            "id": "Fireworks_XLocation",
            "label": "X Location",
            "type": "int",
            "controlType": "slider",
            "default": -1,
            "min": -1,
            "max": 100,
            "valueCurve": true,
            "description": "Fixed horizontal position for explosions as a percentage of buffer width. Set to -1 for random placement."
        },
        {
            "id": "Fireworks_YLocation",
            "label": "Y Location",
            "type": "int",
            "controlType": "slider",
            "default": -1,
            "min": -1,
            "max": 100,
            "valueCurve": true,
            "description": "Fixed vertical position for explosions as a percentage of buffer height. Set to -1 for random placement."
        },
        {
            "id": "Fireworks_HoldColour",
            "label": "Hold color",
            "type": "bool",
            "controlType": "checkbox",
            "default": true,
            "description": "When enabled, each particle keeps its initial color as it fades. When disabled, particles cycle through the palette as they age."
        },
        {
            "id": "Fireworks_Gravity",
            "label": "Gravity",
            "type": "bool",
            "controlType": "checkbox",
            "default": true,
            "description": "When enabled, particles arc downward over time simulating gravity. When disabled, particles fly in straight lines."
        },
        {
            "id": "Fireworks_Fade",
            "label": "Particle Fade",
            "type": "int",
            "controlType": "slider",
            "default": 50,
            "min": 1,
            "max": 100,
            "valueCurve": true,
            "lockable": true,
            "description": "How long particles remain visible before fading out. Higher values make particles last longer."
        },
        {
            "id": "Fireworks_UseMusic",
            "label": "Fire with music",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true,
            "description": "When enabled, explosions are triggered by audio volume peaks instead of being evenly distributed."
        },
        {
            "id": "Fireworks_Sensitivity",
            "label": "Trigger level",
            "type": "int",
            "controlType": "slider",
            "default": 50,
            "min": 0,
            "max": 100,
            "lockable": true,
            "description": "Audio volume threshold for triggering explosions when Fire with music is enabled. Lower values trigger more easily."
        },
        {
            "id": "FIRETIMING",
            "label": "Fire with timing track",
            "type": "bool",
            "controlType": "checkbox",
            "default": false,
            "lockable": true,
            "description": "When enabled, explosions are triggered at the start and end marks of a selected timing track."
        },
        {
            "id": "FIRETIMINGTRACK",
            "label": "Timing Track",
            "type": "enum",
            "controlType": "choice",
            "options": [],
            "default": "",
            "dynamicOptions": "timingTracks",
            "expandToFill": true,
            "description": "The timing track whose marks trigger firework explosions when Fire with timing track is enabled."
        }
    ],
    "visibilityRules": [
        {
            "when": {
                "property": "Fireworks_UseMusic",
                "equals": true
            },
            "enable": [
                "Fireworks_Sensitivity"
            ]
        },
        {
            "when": {
                "property": "FIRETIMING",
                "equals": true
            },
            "enable": [
                "FIRETIMINGTRACK"
            ]
        },
        {
            "when": {
                "any": [
                    "FIRETIMING",
                    "Fireworks_UseMusic"
                ]
            },
            "disable": [
                "Fireworks_Explosions"
            ]
        }
    ]
}
