{
 "note": "Generated by scripts/gen-audio-requests.mjs. One text-to-SFX prompt per sound; status comes from files in audio/source/<category>/. Edit the generator, not this file.",
 "howTo": "Generate locally with the Stable Audio 3 SFX tool: run each request's command from zoen/ (./tools/sfxgen … --out saveAs; extra takes become <id>_2.mp3, <id>_3.mp3), then pnpm data:build and node tools/audio/sync-wiki-previews.mjs. Codex can loop the whole queue with masterPrompt (audio-requests/queue.json). Music requests add --model sm-music (the optional Small Music bundle), a negative prompt and a longer --crossfade for a smooth loop point.",
 "masterPrompt": "You are generating Zoen's sound effects on this Mac with the local Stable Audio 3 SFX tool. Work in zoen/. Repeat until audio-requests/queue.json has no pending requests, or I stop you:\n1. Re-read audio-requests/queue.json and take the first request (it is already sorted: P0 first).\n2. Run its \"command\" exactly as written (./tools/sfxgen … --out <saveAs>). It runs fully offline: no websites, downloads, accounts or paid services. If the output file already exists, skip it — never add --overwrite unless I ask.\n3. If sfxgen fails, retry once with an extra --seed <random number>. If it fails again, log it and move on.\n4. Append one line to logs/audio-gen.jsonl: {\"ts\", \"request\", \"files\", \"seconds\", \"takes\", \"seed\", \"ok\", \"tool\": \"sfxgen\", \"error\"?}.\n5. After every 10 requests (and at the end): pnpm data:build, then node tools/audio/sync-wiki-previews.mjs, then pnpm data:test. Report failures plainly.\n6. Never edit prompts, data files, the generator or other files; never post-process beyond what sfxgen does. Short layers (0.3 s impact/material layers) are meant to be short — the game stacks them.\n7. Stop and tell me if the Metal GPU is unavailable, model files are missing, disk space is under 5 GB, or more than 3 requests in a row fail. Exception: \"music\" requests use the optional Small Music bundle (--model sm-music). If sfxgen reports that bundle missing, skip the music requests, finish everything else, then tell me it is not installed — never download it yourself.\nLicence: these takes are covered by the Stable Audio 3 entry in docs/LICENSES.md; no per-file edits needed.",
 "byStatus": {
  "done": 318,
  "pending": 2
 },
 "byPriority": {
  "P0": 64,
  "P1": 121,
  "P2": 135
 },
 "counts": {
  "combat-core": 21,
  "ui": 50,
  "foley": 15,
  "weapons": 18,
  "skills": 144,
  "monsters": 32,
  "music": 4,
  "ambience": 24,
  "accents": 12
 },
 "requests": [
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-impact-light",
   "category": "combat-core",
   "priority": "P0",
   "title": "Impact layer — light",
   "usedFor": "Every light hit (impact class from combat-states.json).",
   "seconds": 0.3,
   "prompt": "Short isolated impact layer for a light hit: one tight neutral thud with a crisp high transient and very little low end. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-impact-light.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "every melee hit (e.g. Horizon Cleave)"
   },
   "command": "./tools/sfxgen --prompt \"Short isolated impact layer for a light hit: one tight neutral thud with a crisp high transient and very little low end. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-impact-light.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-impact-medium",
   "category": "combat-core",
   "priority": "P0",
   "title": "Impact layer — medium",
   "usedFor": "Every medium hit (impact class from combat-states.json).",
   "seconds": 0.3,
   "prompt": "Short isolated impact layer for a medium hit: one balanced low-mid thud with a quick crisp crack and more body than a light hit. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-impact-medium.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "every melee hit (e.g. Horizon Cleave)"
   },
   "command": "./tools/sfxgen --prompt \"Short isolated impact layer for a medium hit: one balanced low-mid thud with a quick crisp crack and more body than a light hit. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-impact-medium.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-impact-heavy",
   "category": "combat-core",
   "priority": "P0",
   "title": "Impact layer — heavy",
   "usedFor": "Every heavy hit (impact class from combat-states.json).",
   "seconds": 0.3,
   "prompt": "Short isolated impact layer for a heavy hit: one deep weighty thud with a brief debris crackle and a short low tail. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-impact-heavy.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "every melee hit (e.g. Horizon Cleave)"
   },
   "command": "./tools/sfxgen --prompt \"Short isolated impact layer for a heavy hit: one deep weighty thud with a brief debris crackle and a short low tail. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-impact-heavy.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-impact-massive",
   "category": "combat-core",
   "priority": "P0",
   "title": "Impact layer — massive",
   "usedFor": "Every massive hit (impact class from combat-states.json).",
   "seconds": 1.5,
   "prompt": "Massive ground-shaking impact: huge sub-bass boom, rock crack and a rolling 1-second rumble. Isolated sound effect, no music, no voices, clean start.",
   "saveAs": "audio/source/combat-core/sfx-impact-massive.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "every melee hit (e.g. Horizon Cleave)"
   },
   "command": "./tools/sfxgen --prompt \"Massive ground-shaking impact: huge sub-bass boom, rock crack and a rolling 1-second rumble. Isolated sound effect, no music, no voices, clean start.\" --seconds 1.5 --takes 4 --out audio/source/combat-core/sfx-impact-massive.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-fur",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — fur",
   "usedFor": "Hits on monsters with hitMaterial \"fur\".",
   "seconds": 0.3,
   "prompt": "Fur material-only texture layer for a combat hit: soft padded slap with a brief close fur rustle. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-material-fur.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/dewhorn-hare.webp",
    "caption": "Dewhorn Hare — hit material \"fur\""
   },
   "command": "./tools/sfxgen --prompt \"Fur material-only texture layer for a combat hit: soft padded slap with a brief close fur rustle. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-fur.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-carapace",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — carapace",
   "usedFor": "Hits on monsters with hitMaterial \"carapace\".",
   "seconds": 0.3,
   "prompt": "Single isolated weapon contact against a hard insect carapace: sharp dry chitin crack followed immediately by a hollow shell knock. Brittle, rigid, insect-shell texture with a short natural decay. Material contact only — no weapon swing, no whoosh, no large impact boom, no sub-bass, no music, no voices, no ambience. One impact only near the beginning, followed by silence. Clean immediate attack, dry close sound, reverb tail under 0.3 seconds.",
   "saveAs": "audio/source/combat-core/sfx-material-carapace.mp3",
   "takes": 4,
   "status": "done",
   "art": {
    "src": "/art/bestiary/duneplate-beetle.webp",
    "caption": "Duneplate Beetle — hit material \"carapace\""
   },
   "command": "./tools/sfxgen --prompt \"Single isolated weapon contact against a hard insect carapace: sharp dry chitin crack followed immediately by a hollow shell knock. Brittle, rigid, insect-shell texture with a short natural decay. Material contact only — no weapon swing, no whoosh, no large impact boom, no sub-bass, no music, no voices, no ambience. One impact only near the beginning, followed by silence. Clean immediate attack, dry close sound, reverb tail under 0.3 seconds.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-carapace.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-scale",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — scale",
   "usedFor": "Hits on monsters with hitMaterial \"scale\".",
   "seconds": 0.3,
   "prompt": "Scale material-only texture layer for a combat hit: dry reptile-scale slap with a brief gritty scrape. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-material-scale.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/reedscale-lizard.webp",
    "caption": "Reedscale Lizard — hit material \"scale\""
   },
   "command": "./tools/sfxgen --prompt \"Scale material-only texture layer for a combat hit: dry reptile-scale slap with a brief gritty scrape. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-scale.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-cloth-leather",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — cloth leather",
   "usedFor": "Hits on monsters with hitMaterial \"cloth_leather\".",
   "seconds": 0.3,
   "prompt": "Cloth and leather material-only texture layer for a combat hit: muffled padded tear and brief rustle. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-material-cloth-leather.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/saltway-lancer.webp",
    "caption": "Saltway Bandit — hit material \"cloth leather\""
   },
   "command": "./tools/sfxgen --prompt \"Cloth and leather material-only texture layer for a combat hit: muffled padded tear and brief rustle. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-cloth-leather.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-shell",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — shell",
   "usedFor": "Hits on monsters with hitMaterial \"shell\".",
   "seconds": 0.3,
   "prompt": "Shell material-only texture layer for a combat hit: deep hollow shell knock, compact and dry. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-material-shell.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/brineback-tortoise.webp",
    "caption": "Brineback Tortoise — hit material \"shell\""
   },
   "command": "./tools/sfxgen --prompt \"Shell material-only texture layer for a combat hit: deep hollow shell knock, compact and dry. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-shell.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-material-feather",
   "category": "combat-core",
   "priority": "P0",
   "title": "Material layer — feather",
   "usedFor": "Hits on monsters with hitMaterial \"feather\".",
   "seconds": 0.3,
   "prompt": "Feather material-only texture layer for a combat hit: soft puff with a brief light flutter. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-material-feather.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/stormwing-kestrel.webp",
    "caption": "Stormwing Kestrel — hit material \"feather\""
   },
   "command": "./tools/sfxgen --prompt \"Feather material-only texture layer for a combat hit: soft puff with a brief light flutter. Short isolated material-only texture, designed to sit under a separate shared impact and weapon swish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 4 --out audio/source/combat-core/sfx-material-feather.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-crit",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — crit",
   "usedFor": "Crits and crit hits.",
   "seconds": 0.8,
   "prompt": "Critical hit sweetener: bright metallic ting with a short shimmering ring. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-crit.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Critical hit sweetener: bright metallic ting with a short shimmering ring. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-crit.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-fire",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — fire",
   "usedFor": "Crits and fire hits.",
   "seconds": 0.8,
   "prompt": "Fire hit sweetener: quick flame whoosh and ember crackle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-fire.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Fire hit sweetener: quick flame whoosh and ember crackle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-fire.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-cold",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — cold",
   "usedFor": "Crits and cold hits.",
   "seconds": 0.8,
   "prompt": "Frost hit sweetener: crystalline ice crack with a glassy tinkle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-cold.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Frost hit sweetener: crystalline ice crack with a glassy tinkle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-cold.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-lightning",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — lightning",
   "usedFor": "Crits and lightning hits.",
   "seconds": 0.8,
   "prompt": "Lightning hit sweetener: sharp electric snap and short buzzing crackle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-lightning.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Lightning hit sweetener: sharp electric snap and short buzzing crackle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-lightning.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-spirit-fire",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — spirit fire",
   "usedFor": "Crits and spirit-fire hits.",
   "seconds": 0.8,
   "prompt": "Spirit-fire hit sweetener: airy hollow whoosh with a soft ghostly chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-spirit-fire.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Spirit-fire hit sweetener: airy hollow whoosh with a soft ghostly chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-spirit-fire.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-sonic",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — sonic",
   "usedFor": "Crits and sonic hits.",
   "seconds": 0.8,
   "prompt": "Sonic hit sweetener: deep resonant string twang with a pulsing wobble. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-sonic.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Sonic hit sweetener: deep resonant string twang with a pulsing wobble. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-sonic.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-sweet-bleed",
   "category": "combat-core",
   "priority": "P0",
   "title": "Sweetener — bleed",
   "usedFor": "Crits and bleed hits.",
   "seconds": 0.8,
   "prompt": "Bleed sweetener: wet slice with a short fleshy drip. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-sweet-bleed.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Bleed sweetener: wet slice with a short fleshy drip. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/combat-core/sfx-sweet-bleed.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-telegraph-warn",
   "category": "combat-core",
   "priority": "P0",
   "title": "Monster telegraph cue",
   "usedFor": "Start of every monster telegraph (never pitch-randomised).",
   "seconds": 0.8,
   "prompt": "Short ominous warning cue: low rising whoosh with a dull bronze bell hit, clearly readable over combat. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-telegraph-warn.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/bellbound-regent.webp",
    "caption": "The Bellbound Regent — boss telegraphs"
   },
   "command": "./tools/sfxgen --prompt \"Short ominous warning cue: low rising whoosh with a dull bronze bell hit, clearly readable over combat. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 2 --out audio/source/combat-core/sfx-telegraph-warn.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-telegraph-boss",
   "category": "combat-core",
   "priority": "P0",
   "title": "Boss telegraph cue",
   "usedFor": "Boss signature telegraphs.",
   "seconds": 1.5,
   "prompt": "Big ominous boss warning: deep war drum hit, rising dark whoosh and a cracked bell toll. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-telegraph-boss.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/bellbound-regent.webp",
    "caption": "The Bellbound Regent — boss telegraphs"
   },
   "command": "./tools/sfxgen --prompt \"Big ominous boss warning: deep war drum hit, rising dark whoosh and a cracked bell toll. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.5 --takes 2 --out audio/source/combat-core/sfx-telegraph-boss.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-click",
   "category": "ui",
   "priority": "P0",
   "title": "UI — click",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.2,
   "prompt": "Soft UI button click: small bronze tick with a tiny wooden knock. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-click.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI — click"
   },
   "command": "./tools/sfxgen --prompt \"Soft UI button click: small bronze tick with a tiny wooden knock. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.2 --takes 3 --out audio/source/ui/sfx-ui-click.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-hover",
   "category": "ui",
   "priority": "P0",
   "title": "UI — hover",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.15,
   "prompt": "Very subtle UI hover tick, quiet and short. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-hover.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-gold-l.webp",
    "caption": "UI — hover"
   },
   "command": "./tools/sfxgen --prompt \"Very subtle UI hover tick, quiet and short. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.15 --takes 3 --out audio/source/ui/sfx-ui-hover.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-window-open",
   "category": "ui",
   "priority": "P0",
   "title": "UI — window open",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "UI window opening: parchment unfold with a soft bronze slide. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-window-open.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/window-crest-v2.webp",
    "caption": "UI — window open"
   },
   "command": "./tools/sfxgen --prompt \"UI window opening: parchment unfold with a soft bronze slide. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-window-open.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-window-close",
   "category": "ui",
   "priority": "P0",
   "title": "UI — window close",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "UI window closing: parchment fold and soft thud. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-window-close.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/close-button.webp",
    "caption": "UI — window close"
   },
   "command": "./tools/sfxgen --prompt \"UI window closing: parchment fold and soft thud. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-window-close.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-pickup",
   "category": "ui",
   "priority": "P0",
   "title": "UI — pickup",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.3,
   "prompt": "Picking up an item in the inventory: soft cloth and leather lift. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-pickup.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/inventory-backdrop.webp",
    "caption": "UI — pickup"
   },
   "command": "./tools/sfxgen --prompt \"Picking up an item in the inventory: soft cloth and leather lift. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 3 --out audio/source/ui/sfx-ui-pickup.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-equip-metal",
   "category": "ui",
   "priority": "P0",
   "title": "UI — equip metal",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Equipping metal armour or weapon: short metal clank and buckle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-equip-metal.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-rare.webp",
    "caption": "UI — equip metal"
   },
   "command": "./tools/sfxgen --prompt \"Equipping metal armour or weapon: short metal clank and buckle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-equip-metal.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-drop-invalid",
   "category": "ui",
   "priority": "P0",
   "title": "UI — drop invalid",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.3,
   "prompt": "Invalid action buzz: muted wooden knock with a short low thud, not harsh. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-drop-invalid.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/grid-tile-unusable.webp",
    "caption": "UI — drop invalid"
   },
   "command": "./tools/sfxgen --prompt \"Invalid action buzz: muted wooden knock with a short low thud, not harsh. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 3 --out audio/source/ui/sfx-ui-drop-invalid.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-gold",
   "category": "ui",
   "priority": "P0",
   "title": "UI — gold",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Gold coins picked up: a few coins jingle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-gold.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/zoe-coin.webp",
    "caption": "UI — gold"
   },
   "command": "./tools/sfxgen --prompt \"Gold coins picked up: a few coins jingle. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-gold.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-quest-accept",
   "category": "ui",
   "priority": "P0",
   "title": "UI — quest accept",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.8,
   "prompt": "Quest accepted: short parchment unroll and soft drum tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-quest-accept.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/title-plaque-3.webp",
    "caption": "UI — quest accept"
   },
   "command": "./tools/sfxgen --prompt \"Quest accepted: short parchment unroll and soft drum tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/ui/sfx-ui-quest-accept.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-quest-complete",
   "category": "ui",
   "priority": "P0",
   "title": "UI — quest complete",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.5,
   "prompt": "Quest complete: warm bronze bell and rising pluck flourish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-quest-complete.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/title-plaque-3.webp",
    "caption": "UI — quest complete"
   },
   "command": "./tools/sfxgen --prompt \"Quest complete: warm bronze bell and rising pluck flourish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.5 --takes 3 --out audio/source/ui/sfx-ui-quest-complete.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-atlas-allocate",
   "category": "ui",
   "priority": "P0",
   "title": "UI — atlas allocate",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.6,
   "prompt": "Skill tree node unlocked: crystalline click and soft glow swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-atlas-allocate.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/atlas-tile.webp",
    "caption": "UI — atlas allocate"
   },
   "command": "./tools/sfxgen --prompt \"Skill tree node unlocked: crystalline click and soft glow swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/ui/sfx-ui-atlas-allocate.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-drop-place",
   "category": "ui",
   "priority": "P0",
   "title": "UI — drop place",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.3,
   "prompt": "Item placed into a bag or equipment slot: soft leather thud with a light buckle tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-drop-place.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/inventory-backdrop.webp",
    "caption": "UI — drop place"
   },
   "command": "./tools/sfxgen --prompt \"Item placed into a bag or equipment slot: soft leather thud with a light buckle tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 3 --out audio/source/ui/sfx-ui-drop-place.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-loot-normal",
   "category": "ui",
   "priority": "P0",
   "title": "UI — loot normal",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "Common item dropped on the ground: small cloth-and-metal clatter. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-loot-normal.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-normal.webp",
    "caption": "UI — loot normal"
   },
   "command": "./tools/sfxgen --prompt \"Common item dropped on the ground: small cloth-and-metal clatter. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-loot-normal.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-loot-magic",
   "category": "ui",
   "priority": "P0",
   "title": "UI — loot magic",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Magic item dropped: clatter with a short cool blue shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-loot-magic.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-magic.webp",
    "caption": "UI — loot magic"
   },
   "command": "./tools/sfxgen --prompt \"Magic item dropped: clatter with a short cool blue shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-loot-magic.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-loot-rare",
   "category": "ui",
   "priority": "P0",
   "title": "UI — loot rare",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.7,
   "prompt": "Rare item dropped: clatter with a bright golden chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-loot-rare.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-rare.webp",
    "caption": "UI — loot rare"
   },
   "command": "./tools/sfxgen --prompt \"Rare item dropped: clatter with a bright golden chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.7 --takes 3 --out audio/source/ui/sfx-ui-loot-rare.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-step-sand",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — step sand",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Footsteps on soft desert sand, 4 steps, walking pace. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-step-sand.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Footsteps on soft desert sand, 4 steps, walking pace. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-step-sand.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-step-stone",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — step stone",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Footsteps on worn stone tiles, 4 steps, leather boots. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-step-stone.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Footsteps on worn stone tiles, 4 steps, leather boots. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-step-stone.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-dodge",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — dodge",
   "usedFor": "Player character.",
   "seconds": 0.8,
   "prompt": "Quick dodge roll: cloth rustle, light body thud on sand. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-dodge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Quick dodge roll: cloth rustle, light body thud on sand. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/foley/sfx-foley-dodge.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-player-hurt",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — player hurt",
   "usedFor": "Player character.",
   "seconds": 0.6,
   "prompt": "Armour rattle and grunt-free body impact when a player gets hit. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-player-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Armour rattle and grunt-free body impact when a player gets hit. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/foley/sfx-foley-player-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-level-up",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — level up",
   "usedFor": "Player character.",
   "seconds": 2.5,
   "prompt": "Level up: triumphant bronze gong with a warm rising shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-level-up.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Level up: triumphant bronze gong with a warm rising shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2.5 --takes 3 --out audio/source/foley/sfx-foley-level-up.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-potion",
   "category": "foley",
   "priority": "P0",
   "title": "Foley — potion",
   "usedFor": "Player character.",
   "seconds": 1,
   "prompt": "Drinking a potion: cork pop, short gulp-free liquid slosh, glass clink. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-potion.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/item-icons/art-con-hp-potion-g.webp",
    "caption": "drinking a potion"
   },
   "command": "./tools/sfxgen --prompt \"Drinking a potion: cork pop, short gulp-free liquid slosh, glass clink. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1 --takes 3 --out audio/source/foley/sfx-foley-potion.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-greatsword",
   "category": "weapons",
   "priority": "P0",
   "title": "Swing / fire — Greatsword",
   "usedFor": "Basic chain and skills of Greatsword (Warblade).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a greatsword: long steel ring whoosh, clean slice. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-greatsword.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/vesper-longsword.webp",
    "caption": "Vesper Longsword — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a greatsword: long steel ring whoosh, clean slice. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-greatsword.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-bow",
   "category": "weapons",
   "priority": "P0",
   "title": "Swing / fire — Bow",
   "usedFor": "Basic chain and skills of Bow (Windarcher).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a bow: string draw creak, twang, arrow zip, thunk. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-bow.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/reedstring-bow.webp",
    "caption": "Reedstring Bow — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a bow: string draw creak, twang, arrow zip, thunk. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-bow.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-wand",
   "category": "weapons",
   "priority": "P0",
   "title": "Swing / fire — Wand",
   "usedFor": "Basic chain and skills of Wand (Pyromancer).",
   "seconds": 0.6,
   "prompt": "Weapon attack release for a wand: crisp magic snap, element sweetener. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-wand.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/reedwood-wand.webp",
    "caption": "Reedwood Wand — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a wand: crisp magic snap, element sweetener. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 4 --out audio/source/weapons/sfx-swish-wand.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-horizon-cleave",
   "category": "skills",
   "priority": "P0",
   "title": "Horizon Cleave — Warblade",
   "usedFor": "Skill warblade.horizon_cleave: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Long steel ring whoosh + clean slice impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-horizon-cleave.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "Horizon Cleave — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Long steel ring whoosh + clean slice impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-horizon-cleave.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-crescent-wave",
   "category": "skills",
   "priority": "P0",
   "title": "Crescent Wave — Warblade",
   "usedFor": "Skill warblade.crescent_wave: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Blade ring + travelling hum (doppler) + slicing impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-crescent-wave.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-warblade-crescent-wave.webp",
    "caption": "Crescent Wave — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Blade ring + travelling hum (doppler) + slicing impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-crescent-wave.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-sunfall-thrust",
   "category": "skills",
   "priority": "P0",
   "title": "Sunfall Thrust — Warblade",
   "usedFor": "Skill warblade.sunfall_thrust: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Lunge rush, piercing ring, impact clang. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-sunfall-thrust.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/sunfall-thrust.webp",
    "caption": "Sunfall Thrust — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Lunge rush, piercing ring, impact clang. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-sunfall-thrust.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-iron-riposte",
   "category": "skills",
   "priority": "P0",
   "title": "Iron Riposte — Warblade",
   "usedFor": "Skill warblade.iron_riposte: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Steel scrape guard; parry = bright ring \"ting\" + punish slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-iron-riposte.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-warblade-iron-riposte.webp",
    "caption": "Iron Riposte — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Steel scrape guard; parry = bright ring \\\"ting\\\" + punish slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-iron-riposte.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-blade-oath",
   "category": "skills",
   "priority": "P0",
   "title": "Blade Oath — Warblade",
   "usedFor": "Skill warblade.blade_oath: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Choral shimmer + blade ring. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-blade-oath.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-warblade-blade-oath.webp",
    "caption": "Blade Oath — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Choral shimmer + blade ring. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-warblade-blade-oath.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-sunbreaker",
   "category": "skills",
   "priority": "P0",
   "title": "Sunbreaker — Warblade",
   "usedFor": "Skill warblade.sunbreaker: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Two quick slices, rising choir note, explosive boom + rolling thunder tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-sunbreaker.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-warblade-sunbreaker.webp",
    "caption": "Sunbreaker — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Two quick slices, rising choir note, explosive boom + rolling thunder tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-sunbreaker.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-warblade-zenith-cut",
   "category": "skills",
   "priority": "P0",
   "title": "Zenith Cut — Warblade",
   "usedFor": "Skill warblade.zenith_cut: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Jump grunt, rising whoosh, ringing steel crack, deep landing boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-warblade-zenith-cut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-warblade-zenith-cut.webp",
    "caption": "Zenith Cut — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Jump grunt, rising whoosh, ringing steel crack, deep landing boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-warblade-zenith-cut.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-pinning-shot",
   "category": "skills",
   "priority": "P0",
   "title": "Pinning Shot — Windarcher",
   "usedFor": "Skill windarcher.pinning_shot: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Draw creak, twang, zip, thunk. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-pinning-shot.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/pinning-shot.webp",
    "caption": "Pinning Shot — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Draw creak, twang, zip, thunk. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-pinning-shot.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-split-horizon",
   "category": "skills",
   "priority": "P0",
   "title": "Split Horizon — Windarcher",
   "usedFor": "Skill windarcher.split_horizon: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Triple zip, layered thunks. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-split-horizon.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/split-horizon.webp",
    "caption": "Split Horizon — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Triple zip, layered thunks. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-split-horizon.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-piercing-gale",
   "category": "skills",
   "priority": "P0",
   "title": "Piercing Gale — Windarcher",
   "usedFor": "Skill windarcher.piercing_gale: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rising wind howl during charge, thunderous release crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-piercing-gale.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-windarcher-piercing-gale.webp",
    "caption": "Piercing Gale — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Rising wind howl during charge, thunderous release crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-piercing-gale.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-tumble-shot",
   "category": "skills",
   "priority": "P0",
   "title": "Tumble Shot — Windarcher",
   "usedFor": "Skill windarcher.tumble_shot: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Flip whoosh, double twang, landing scuff. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-tumble-shot.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-windarcher-tumble-shot.webp",
    "caption": "Tumble Shot — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Flip whoosh, double twang, landing scuff. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-tumble-shot.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-hawk-focus",
   "category": "skills",
   "priority": "P0",
   "title": "Hawk Focus — Windarcher",
   "usedFor": "Skill windarcher.hawk_focus: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Hawk cry + soft inhale/exhale. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-hawk-focus.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-windarcher-hawk-focus.webp",
    "caption": "Hawk Focus — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Hawk cry + soft inhale/exhale. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-windarcher-hawk-focus.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-rain-of-arrows",
   "category": "skills",
   "priority": "P0",
   "title": "Rain of Arrows — Windarcher",
   "usedFor": "Skill windarcher.rain_of_arrows: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Upward whistle, rain of thunks building, final gale crack + whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-rain-of-arrows.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-windarcher-rain-of-arrows.webp",
    "caption": "Rain of Arrows — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Upward whistle, rain of thunks building, final gale crack + whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-rain-of-arrows.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windarcher-heartpiercer",
   "category": "skills",
   "priority": "P0",
   "title": "Heartpiercer — Windarcher",
   "usedFor": "Skill windarcher.heartpiercer: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Creaking draw, held breath, cracking release, distant thud. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windarcher-heartpiercer.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-windarcher-heartpiercer.webp",
    "caption": "Heartpiercer — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Creaking draw, held breath, cracking release, distant thud. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windarcher-heartpiercer.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-cinder-needle",
   "category": "skills",
   "priority": "P0",
   "title": "Cinder Needle — Pyromancer",
   "usedFor": "Skill pyromancer.cinder_needle: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Fiery snap + sizzle impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-cinder-needle.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/cinder-needle.webp",
    "caption": "Cinder Needle — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Fiery snap + sizzle impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-cinder-needle.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-lantern-fan",
   "category": "skills",
   "priority": "P0",
   "title": "Lantern Fan — Pyromancer",
   "usedFor": "Skill pyromancer.lantern_fan: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whoomph + roaring fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-lantern-fan.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/lantern-fan.webp",
    "caption": "Lantern Fan — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Whoomph + roaring fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-lantern-fan.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-kiln-burst",
   "category": "skills",
   "priority": "P0",
   "title": "Kiln Burst — Pyromancer",
   "usedFor": "Skill pyromancer.kiln_burst: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Bellows whoomph, crackling roar, ember hiss. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-kiln-burst.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pyromancer-kiln-burst.webp",
    "caption": "Kiln Burst — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Bellows whoomph, crackling roar, ember hiss. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-kiln-burst.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-ember-step",
   "category": "skills",
   "priority": "P0",
   "title": "Ember Step — Pyromancer",
   "usedFor": "Skill pyromancer.ember_step: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Fwoosh-pop of ignition at both ends, ember crackle trailing off. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-ember-step.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pyromancer-ember-step.webp",
    "caption": "Ember Step — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Fwoosh-pop of ignition at both ends, ember crackle trailing off. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-ember-step.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-pyre-mantle",
   "category": "skills",
   "priority": "P0",
   "title": "Pyre Mantle — Pyromancer",
   "usedFor": "Skill pyromancer.pyre_mantle: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Low fire roar loop, crackling. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-pyre-mantle.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pyromancer-pyre-mantle.webp",
    "caption": "Pyre Mantle — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Low fire roar loop, crackling. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-pyre-mantle.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-prism-barrage",
   "category": "skills",
   "priority": "P0",
   "title": "Prism Barrage — Pyromancer",
   "usedFor": "Skill pyromancer.prism_barrage: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rapid magical fire with element sweeteners cycling, rising pitch over the channel. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-prism-barrage.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pyromancer-prism-barrage.webp",
    "caption": "Prism Barrage — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Rapid magical fire with element sweeteners cycling, rising pitch over the channel. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-prism-barrage.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pyromancer-ashfall-verdict",
   "category": "skills",
   "priority": "P0",
   "title": "Ashfall Verdict — Pyromancer",
   "usedFor": "Skill pyromancer.ashfall_verdict: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Deep roar of fire, crackling hail of embers. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pyromancer-ashfall-verdict.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pyromancer-ashfall-verdict.webp",
    "caption": "Ashfall Verdict — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Deep roar of fire, crackling hail of embers. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pyromancer-ashfall-verdict.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-boss-phase",
   "category": "combat-core",
   "priority": "P1",
   "title": "Boss phase change",
   "usedFor": "Boss phase transitions and break.",
   "seconds": 2.5,
   "prompt": "Dramatic boss phase change: heavy stone crack, deep sub boom and a swelling choir-like drone without words. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/combat-core/sfx-boss-phase.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/bellbound-regent.webp",
    "caption": "The Bellbound Regent — boss telegraphs"
   },
   "command": "./tools/sfxgen --prompt \"Dramatic boss phase change: heavy stone crack, deep sub boom and a swelling choir-like drone without words. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2.5 --takes 2 --out audio/source/combat-core/sfx-boss-phase.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-break",
   "category": "combat-core",
   "priority": "P1",
   "title": "Break / stagger burst",
   "usedFor": "Boss break pressure full, elite stagger.",
   "seconds": 1.2,
   "prompt": "Shattering armour break: glassy bronze crack, heavy thump and scattered metal shards. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/combat-core/sfx-break.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/horizon-cleave.webp",
    "caption": "every melee hit (e.g. Horizon Cleave)"
   },
   "command": "./tools/sfxgen --prompt \"Shattering armour break: glassy bronze crack, heavy thump and scattered metal shards. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/combat-core/sfx-break.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-tab",
   "category": "ui",
   "priority": "P1",
   "title": "UI — tab",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.2,
   "prompt": "UI tab switch: light paper flick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-tab.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/tab-active.webp",
    "caption": "UI — tab"
   },
   "command": "./tools/sfxgen --prompt \"UI tab switch: light paper flick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.2 --takes 3 --out audio/source/ui/sfx-ui-tab.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-equip-cloth",
   "category": "ui",
   "priority": "P1",
   "title": "UI — equip cloth",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Equipping cloth or leather: soft rustle and strap pull. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-equip-cloth.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-magic.webp",
    "caption": "UI — equip cloth"
   },
   "command": "./tools/sfxgen --prompt \"Equipping cloth or leather: soft rustle and strap pull. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-equip-cloth.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-equip-jewel",
   "category": "ui",
   "priority": "P1",
   "title": "UI — equip jewel",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "Equipping a ring or necklace: small jewel clink. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-equip-jewel.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-epic.webp",
    "caption": "UI — equip jewel"
   },
   "command": "./tools/sfxgen --prompt \"Equipping a ring or necklace: small jewel clink. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-equip-jewel.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-socket-gem",
   "category": "ui",
   "priority": "P1",
   "title": "UI — socket gem",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.6,
   "prompt": "Socketing a gem: stone click and crystal ring. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-socket-gem.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/emblem-ring.webp",
    "caption": "UI — socket gem"
   },
   "command": "./tools/sfxgen --prompt \"Socketing a gem: stone click and crystal ring. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/ui/sfx-ui-socket-gem.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-orb-use",
   "category": "ui",
   "priority": "P1",
   "title": "UI — orb use",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.8,
   "prompt": "Using a crafting orb: mystic whoosh and soft crystal chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-orb-use.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/currencies/awakening-orb.webp",
    "caption": "UI — orb use"
   },
   "command": "./tools/sfxgen --prompt \"Using a crafting orb: mystic whoosh and soft crystal chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/ui/sfx-ui-orb-use.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-refine-success",
   "category": "ui",
   "priority": "P1",
   "title": "UI — refine success",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.2,
   "prompt": "Refinement success: hammer on anvil and bright rising chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-refine-success.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-legend.webp",
    "caption": "UI — refine success"
   },
   "command": "./tools/sfxgen --prompt \"Refinement success: hammer on anvil and bright rising chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/ui/sfx-ui-refine-success.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-refine-fail",
   "category": "ui",
   "priority": "P1",
   "title": "UI — refine fail",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.2,
   "prompt": "Refinement failure: hammer on anvil, cracking metal and a dull drop. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-refine-fail.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/grid-tile-unusable.webp",
    "caption": "UI — refine fail"
   },
   "command": "./tools/sfxgen --prompt \"Refinement failure: hammer on anvil, cracking metal and a dull drop. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/ui/sfx-ui-refine-fail.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-atlas-refund",
   "category": "ui",
   "priority": "P1",
   "title": "UI — atlas refund",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.6,
   "prompt": "Skill tree node refunded: reverse soft swell and click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-atlas-refund.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/atlas-tile.webp",
    "caption": "UI — atlas refund"
   },
   "command": "./tools/sfxgen --prompt \"Skill tree node refunded: reverse soft swell and click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/ui/sfx-ui-atlas-refund.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-notify",
   "category": "ui",
   "priority": "P1",
   "title": "UI — notify",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "Gentle notification ping: small bronze chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-notify.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Gentle notification ping: small bronze chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-notify.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-error",
   "category": "ui",
   "priority": "P1",
   "title": "UI — error",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.3,
   "prompt": "UI error: low muted double knock. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-error.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"UI error: low muted double knock. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 3 --out audio/source/ui/sfx-ui-error.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-popup-open",
   "category": "ui",
   "priority": "P1",
   "title": "UI — popup open",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.2,
   "prompt": "Tooltip appearing: very soft parchment whisper with a faint glassy shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-popup-open.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/popup-corner-l.webp",
    "caption": "UI — popup open"
   },
   "command": "./tools/sfxgen --prompt \"Tooltip appearing: very soft parchment whisper with a faint glassy shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.2 --takes 3 --out audio/source/ui/sfx-ui-popup-open.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-dropdown-open",
   "category": "ui",
   "priority": "P1",
   "title": "UI — dropdown open",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.25,
   "prompt": "Dropdown list opening: soft leather flap and a tiny bronze click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-dropdown-open.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-c.webp",
    "caption": "UI — dropdown open"
   },
   "command": "./tools/sfxgen --prompt \"Dropdown list opening: soft leather flap and a tiny bronze click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.25 --takes 3 --out audio/source/ui/sfx-ui-dropdown-open.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-dropdown-select",
   "category": "ui",
   "priority": "P1",
   "title": "UI — dropdown select",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.2,
   "prompt": "Choosing an option in a list: small crisp bronze tick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-dropdown-select.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-c.webp",
    "caption": "UI — dropdown select"
   },
   "command": "./tools/sfxgen --prompt \"Choosing an option in a list: small crisp bronze tick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.2 --takes 3 --out audio/source/ui/sfx-ui-dropdown-select.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-toggle-on",
   "category": "ui",
   "priority": "P1",
   "title": "UI — toggle on",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.25,
   "prompt": "Switch turned on: small metal latch click with a gentle rising tone. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-toggle-on.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slider-knob.webp",
    "caption": "UI — toggle on"
   },
   "command": "./tools/sfxgen --prompt \"Switch turned on: small metal latch click with a gentle rising tone. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.25 --takes 3 --out audio/source/ui/sfx-ui-toggle-on.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-toggle-off",
   "category": "ui",
   "priority": "P1",
   "title": "UI — toggle off",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.25,
   "prompt": "Switch turned off: small metal latch click with a gentle falling tone. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-toggle-off.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slider-knob.webp",
    "caption": "UI — toggle off"
   },
   "command": "./tools/sfxgen --prompt \"Switch turned off: small metal latch click with a gentle falling tone. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.25 --takes 3 --out audio/source/ui/sfx-ui-toggle-off.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-quickslot-assign",
   "category": "ui",
   "priority": "P1",
   "title": "UI — quickslot assign",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.3,
   "prompt": "Potion or scroll assigned to a quick slot: glass bottle clink and small click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-quickslot-assign.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/grid-tile-usable.webp",
    "caption": "UI — quickslot assign"
   },
   "command": "./tools/sfxgen --prompt \"Potion or scroll assigned to a quick slot: glass bottle clink and small click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.3 --takes 3 --out audio/source/ui/sfx-ui-quickslot-assign.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-socket-remove",
   "category": "ui",
   "priority": "P1",
   "title": "UI — socket remove",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Gem removed from a socket: stone slide and a soft crystal pop. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-socket-remove.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/emblem-ring.webp",
    "caption": "UI — socket remove"
   },
   "command": "./tools/sfxgen --prompt \"Gem removed from a socket: stone slide and a soft crystal pop. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-socket-remove.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-atlas-node-hover",
   "category": "ui",
   "priority": "P1",
   "title": "UI — atlas node-hover",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.15,
   "prompt": "Hovering a skill-tree node: faint crystalline shimmer, very quiet. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-atlas-node-hover.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/atlas-tile.webp",
    "caption": "UI — atlas node hover"
   },
   "command": "./tools/sfxgen --prompt \"Hovering a skill-tree node: faint crystalline shimmer, very quiet. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.15 --takes 3 --out audio/source/ui/sfx-ui-atlas-node-hover.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-atlas-keystone",
   "category": "ui",
   "priority": "P1",
   "title": "UI — atlas keystone",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.2,
   "prompt": "Keystone node unlocked: deep resonant bell, crystalline burst and warm glow swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-atlas-keystone.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/atlas-tile.webp",
    "caption": "UI — atlas keystone"
   },
   "command": "./tools/sfxgen --prompt \"Keystone node unlocked: deep resonant bell, crystalline burst and warm glow swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/ui/sfx-ui-atlas-keystone.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-chain-slot-set",
   "category": "ui",
   "priority": "P1",
   "title": "UI — chain slot-set",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "Skill placed in a combo chain slot: bronze plate locking into place with a soft magical ping. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-chain-slot-set.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-normal.webp",
    "caption": "UI — chain slot set"
   },
   "command": "./tools/sfxgen --prompt \"Skill placed in a combo chain slot: bronze plate locking into place with a soft magical ping. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-chain-slot-set.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-skill-rank-up",
   "category": "ui",
   "priority": "P1",
   "title": "UI — skill rank-up",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.8,
   "prompt": "Skill rank increased: rising crystalline arpeggio and a soft bronze shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-skill-rank-up.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-legend.webp",
    "caption": "UI — skill rank up"
   },
   "command": "./tools/sfxgen --prompt \"Skill rank increased: rising crystalline arpeggio and a soft bronze shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/ui/sfx-ui-skill-rank-up.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-loot-epic",
   "category": "ui",
   "priority": "P1",
   "title": "UI — loot epic",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1,
   "prompt": "Epic item dropped: heavier clatter with a rich orange magical swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-loot-epic.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-epic.webp",
    "caption": "UI — loot epic"
   },
   "command": "./tools/sfxgen --prompt \"Epic item dropped: heavier clatter with a rich orange magical swell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1 --takes 3 --out audio/source/ui/sfx-ui-loot-epic.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-loot-legend",
   "category": "ui",
   "priority": "P1",
   "title": "UI — loot legend",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.6,
   "prompt": "Legendary item dropped: deep impact, radiant choir-like swell without words and a bright bell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-loot-legend.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slot-legend.webp",
    "caption": "UI — loot legend"
   },
   "command": "./tools/sfxgen --prompt \"Legendary item dropped: deep impact, radiant choir-like swell without words and a bright bell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/ui/sfx-ui-loot-legend.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-zoe-purchase",
   "category": "ui",
   "priority": "P1",
   "title": "UI — zoe purchase",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.8,
   "prompt": "Premium purchase confirmed: heavy gold coin ring and a warm sparkling chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-zoe-purchase.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/zoe-coin.webp",
    "caption": "UI — zoe purchase"
   },
   "command": "./tools/sfxgen --prompt \"Premium purchase confirmed: heavy gold coin ring and a warm sparkling chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.8 --takes 3 --out audio/source/ui/sfx-ui-zoe-purchase.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-chest-open",
   "category": "ui",
   "priority": "P1",
   "title": "UI — chest open",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.9,
   "prompt": "Treasure chest opening: wooden lid creak, latch snap and a soft golden shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-chest-open.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/inventory-backdrop.webp",
    "caption": "UI — chest open"
   },
   "command": "./tools/sfxgen --prompt \"Treasure chest opening: wooden lid creak, latch snap and a soft golden shimmer. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 3 --out audio/source/ui/sfx-ui-chest-open.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-map-open",
   "category": "ui",
   "priority": "P1",
   "title": "UI — map open",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.6,
   "prompt": "World map opening: large parchment unfurl and a soft bronze slide. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-map-open.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "UI — map open"
   },
   "command": "./tools/sfxgen --prompt \"World map opening: large parchment unfurl and a soft bronze slide. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/ui/sfx-ui-map-open.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-bag-full",
   "category": "ui",
   "priority": "P1",
   "title": "UI — bag full",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.4,
   "prompt": "Inventory full warning: muted double wooden knock with a low thud. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-bag-full.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/grid-tile-unusable.webp",
    "caption": "UI — bag full"
   },
   "command": "./tools/sfxgen --prompt \"Inventory full warning: muted double wooden knock with a low thud. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.4 --takes 3 --out audio/source/ui/sfx-ui-bag-full.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-event-start",
   "category": "ui",
   "priority": "P1",
   "title": "UI — event start",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 1.5,
   "prompt": "Event starting: distant caravan horn call with a war-drum roll. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-event-start.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Event starting: distant caravan horn call with a war-drum roll. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.5 --takes 3 --out audio/source/ui/sfx-ui-event-start.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-step-wood",
   "category": "foley",
   "priority": "P1",
   "title": "Foley — step wood",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Footsteps on wooden planks, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-step-wood.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Footsteps on wooden planks, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-step-wood.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-step-water",
   "category": "foley",
   "priority": "P1",
   "title": "Foley — step water",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Footsteps splashing through shallow water, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-step-water.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Footsteps splashing through shallow water, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-step-water.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-step-grass",
   "category": "foley",
   "priority": "P1",
   "title": "Foley — step grass",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Footsteps on dry grass, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-step-grass.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Footsteps on dry grass, 4 steps. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-step-grass.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-player-death",
   "category": "foley",
   "priority": "P1",
   "title": "Foley — player death",
   "usedFor": "Player character.",
   "seconds": 1.5,
   "prompt": "Player falls: armour clatter and body drop on sand. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-player-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Player falls: armour clatter and body drop on sand. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.5 --takes 3 --out audio/source/foley/sfx-foley-player-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-foley-revive",
   "category": "foley",
   "priority": "P1",
   "title": "Foley — revive",
   "usedFor": "Player character.",
   "seconds": 2,
   "prompt": "Revive: rising warm shimmer and soft chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-foley-revive.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "the player character in the Amber Basin"
   },
   "command": "./tools/sfxgen --prompt \"Revive: rising warm shimmer and soft chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-foley-revive.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-greataxe",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Greataxe",
   "usedFor": "Basic chain and skills of Greataxe (Ravager).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a greataxe: low whoosh, wood-haft creak, meaty chop. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-greataxe.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/kilnspine-greataxe.webp",
    "caption": "Kilnspine Great Axe — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a greataxe: low whoosh, wood-haft creak, meaty chop. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-greataxe.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-warhammer",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Warhammer",
   "usedFor": "Basic chain and skills of Warhammer (Earthshaker).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a warhammer: deep air push, stone crunch, sub-bass thump. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-warhammer.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-clayknuckle-maul.webp",
    "caption": "Clayknuckle Maul — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a warhammer: deep air push, stone crunch, sub-bass thump. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-warhammer.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-daggers",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Daggers",
   "usedFor": "Basic chain and skills of Daggers (Nightblade).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a daggers: quick hiss swishes, wet tick impacts. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-daggers.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/dewhorn-knife.webp",
    "caption": "Dewhorn Knife — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a daggers: quick hiss swishes, wet tick impacts. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-daggers.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-claws",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Claws",
   "usedFor": "Basic chain and skills of Claws (Talon).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a claws: tearing scrape swishes, feral breath. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-claws.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/marshfang-claws.webp",
    "caption": "Marshfang Claws — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a claws: tearing scrape swishes, feral breath. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-claws.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-pipa",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Pipa",
   "usedFor": "Basic chain and skills of Pipa (Songweaver).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a pipa: plucked string notes in a pentatonic scale, sequence advances each hit. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-pipa.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewhorn-pipa.webp",
    "caption": "Dewhorn Pipa — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a pipa: plucked string notes in a pentatonic scale, sequence advances each hit. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-pipa.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-scepter",
   "category": "weapons",
   "priority": "P1",
   "title": "Swing / fire — Lantern Scepter",
   "usedFor": "Basic chain and skills of Lantern Scepter (Lanternbinder).",
   "seconds": 0.6,
   "prompt": "Weapon attack release for a lantern scepter: lantern glass clink, soft fire whoosh. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-scepter.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/siltcall-scepter.webp",
    "caption": "Siltcall Scepter — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a lantern scepter: lantern glass clink, soft fire whoosh. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 4 --out audio/source/weapons/sfx-swish-scepter.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-iron-banner",
   "category": "skills",
   "priority": "P1",
   "title": "Iron Banner — pole buff",
   "usedFor": "Skill pole_str.iron_banner: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Iron stake thud, cloth snap, low horn. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-iron-banner.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-iron-banner.webp",
    "caption": "Iron Banner — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Iron stake thud, cloth snap, low horn. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-iron-banner.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-war-drum",
   "category": "skills",
   "priority": "P1",
   "title": "War Drum — pole buff",
   "usedFor": "Skill pole_str.war_drum: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Two taiko-like drum hits synced to stamps + low war chant swell. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-war-drum.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-war-drum.webp",
    "caption": "War Drum — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Two taiko-like drum hits synced to stamps + low war chant swell. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-war-drum.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-bastion-skin",
   "category": "skills",
   "priority": "P1",
   "title": "Bastion Skin — pole buff",
   "usedFor": "Skill pole_str.bastion_skin: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Grinding stone + metallic clench. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-bastion-skin.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-bastion-skin.webp",
    "caption": "Bastion Skin — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Grinding stone + metallic clench. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-bastion-skin.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-rallying-roar",
   "category": "skills",
   "priority": "P1",
   "title": "Rallying Roar — pole buff",
   "usedFor": "Skill pole_str.rallying_roar: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Deep roar layered with a war horn. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-rallying-roar.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-rallying-roar.webp",
    "caption": "Rallying Roar — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Deep roar layered with a war horn. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-rallying-roar.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-bloodrage",
   "category": "skills",
   "priority": "P1",
   "title": "Bloodrage — pole buff",
   "usedFor": "Skill pole_str.bloodrage: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Heartbeat thud x2, guttural exhale, low distorted rumble loop (quiet). Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-bloodrage.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-bloodrage.webp",
    "caption": "Bloodrage — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Heartbeat thud x2, guttural exhale, low distorted rumble loop (quiet). Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-bloodrage.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-str-unbroken-will",
   "category": "skills",
   "priority": "P1",
   "title": "Unbroken Will — pole buff",
   "usedFor": "Skill pole_str.unbroken_will: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Grunt, heartbeat thump, metallic shimmer. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-str-unbroken-will.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-str-unbroken-will.webp",
    "caption": "Unbroken Will — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Grunt, heartbeat thump, metallic shimmer. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-str-unbroken-will.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-falling-wedge",
   "category": "skills",
   "priority": "P1",
   "title": "Falling Wedge — Ravager",
   "usedFor": "Skill ravager.falling_wedge: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Long low whoosh → heavy chop with wood/earth crunch; bleed applies a wet tick. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-falling-wedge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/falling-wedge.webp",
    "caption": "Falling Wedge — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Long low whoosh → heavy chop with wood/earth crunch; bleed applies a wet tick. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-falling-wedge.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-quarry-wheel",
   "category": "skills",
   "priority": "P1",
   "title": "Quarry Wheel — Ravager",
   "usedFor": "Skill ravager.quarry_wheel: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rising spin whoosh layered per revolution, ground scrape loop, finishing heavy swoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-quarry-wheel.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/quarry-wheel.webp",
    "caption": "Quarry Wheel — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Rising spin whoosh layered per revolution, ground scrape loop, finishing heavy swoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-quarry-wheel.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-rending-cleave",
   "category": "skills",
   "priority": "P1",
   "title": "Rending Cleave — Ravager",
   "usedFor": "Skill ravager.rending_cleave: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Slicing tear + gore-light wet layer (rating-safe); follow-up rising whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-rending-cleave.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-ravager-rending-cleave.webp",
    "caption": "Rending Cleave — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Slicing tear + gore-light wet layer (rating-safe); follow-up rising whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-rending-cleave.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-reavers-charge",
   "category": "skills",
   "priority": "P1",
   "title": "Reaver's Charge — Ravager",
   "usedFor": "Skill ravager.reavers_charge: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Heavy footfall gallop rhythm, impact crunch. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-reavers-charge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-ravager-reavers-charge.webp",
    "caption": "Reaver's Charge — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Heavy footfall gallop rhythm, impact crunch. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-reavers-charge.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-blood-frenzy",
   "category": "skills",
   "priority": "P1",
   "title": "Blood Frenzy — Ravager",
   "usedFor": "Skill ravager.blood_frenzy: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Blade scrape, haft thud, short roar. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-blood-frenzy.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-ravager-blood-frenzy.webp",
    "caption": "Blood Frenzy — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Blade scrape, haft thud, short roar. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-ravager-blood-frenzy.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-earthsplitter",
   "category": "skills",
   "priority": "P1",
   "title": "Earthsplitter — Ravager",
   "usedFor": "Skill ravager.earthsplitter: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Leap whoosh, colossal impact boom with sub-bass, rolling crack travelling down the fissure, falling rubble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-earthsplitter.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-ravager-earthsplitter.webp",
    "caption": "Earthsplitter — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Leap whoosh, colossal impact boom with sub-bass, rolling crack travelling down the fissure, falling rubble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-earthsplitter.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ravager-crimson-reckoning",
   "category": "skills",
   "priority": "P1",
   "title": "Crimson Reckoning — Ravager",
   "usedFor": "Skill ravager.crimson_reckoning: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Dragging scrape, roar, butcher chop thud, wet spray, low choir sting. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ravager-crimson-reckoning.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-ravager-crimson-reckoning.webp",
    "caption": "Crimson Reckoning — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Dragging scrape, roar, butcher chop thud, wet spray, low choir sting. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ravager-crimson-reckoning.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-anvil-strike",
   "category": "skills",
   "priority": "P1",
   "title": "Anvil Strike — Earthshaker",
   "usedFor": "Skill earthshaker.anvil_strike: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Anvil clang + earth thump, metallic ring tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-anvil-strike.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-anvil-strike.webp",
    "caption": "Anvil Strike — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Anvil clang + earth thump, metallic ring tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-anvil-strike.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-rimquake",
   "category": "skills",
   "priority": "P1",
   "title": "Rimquake — Earthshaker",
   "usedFor": "Skill earthshaker.rimquake: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Grinding rumble travelling outward, impact thuds per ridge. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-rimquake.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/rimquake.webp",
    "caption": "Rimquake — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Grinding rumble travelling outward, impact thuds per ridge. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-rimquake.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-bell-toll-uppercut",
   "category": "skills",
   "priority": "P1",
   "title": "Bell-Toll Uppercut — Earthshaker",
   "usedFor": "Skill earthshaker.bell_toll_uppercut: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Charge hum rising in pitch; release = deep bell toll + impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-bell-toll-uppercut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-bell-toll-uppercut.webp",
    "caption": "Bell-Toll Uppercut — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Charge hum rising in pitch; release = deep bell toll + impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-bell-toll-uppercut.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-tremor-line",
   "category": "skills",
   "priority": "P1",
   "title": "Tremor Line — Earthshaker",
   "usedFor": "Skill earthshaker.tremor_line: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Travelling rumble, stone slab cracks in sequence. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-tremor-line.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-tremor-line.webp",
    "caption": "Tremor Line — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Travelling rumble, stone slab cracks in sequence. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-tremor-line.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-stoneheart",
   "category": "skills",
   "priority": "P1",
   "title": "Stoneheart — Earthshaker",
   "usedFor": "Skill earthshaker.stoneheart: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Stone grind + low heartbeat thud. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-stoneheart.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-stoneheart.webp",
    "caption": "Stoneheart — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Stone grind + low heartbeat thud. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-stoneheart.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-mountain-fall",
   "category": "skills",
   "priority": "P1",
   "title": "Mountain Fall — Earthshaker",
   "usedFor": "Skill earthshaker.mountain_fall: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Takeoff grunt + whoosh, huge impact boom, rolling rubble, two thumps. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-mountain-fall.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-mountain-fall.webp",
    "caption": "Mountain Fall — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Takeoff grunt + whoosh, huge impact boom, rolling rubble, two thumps. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-mountain-fall.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-earthshaker-tolling-verdict",
   "category": "skills",
   "priority": "P1",
   "title": "Tolling Verdict — Earthshaker",
   "usedFor": "Skill earthshaker.tolling_verdict: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Deep temple-bell toll, crushing impact, long ringing tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-earthshaker-tolling-verdict.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-earthshaker-tolling-verdict.webp",
    "caption": "Tolling Verdict — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Deep temple-bell toll, crushing impact, long ringing tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-earthshaker-tolling-verdict.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-caravan-pace",
   "category": "skills",
   "priority": "P1",
   "title": "Caravan Pace — pole buff",
   "usedFor": "Skill pole_agi.caravan_pace: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Sharp whistle, rush of wind, hoofbeat-like drums. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-caravan-pace.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-caravan-pace.webp",
    "caption": "Caravan Pace — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Sharp whistle, rush of wind, hoofbeat-like drums. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-caravan-pace.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-windwalk",
   "category": "skills",
   "priority": "P1",
   "title": "Windwalk — pole buff",
   "usedFor": "Skill pole_agi.windwalk: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft whoosh swell + wind chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-windwalk.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-windwalk.webp",
    "caption": "Windwalk — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Soft whoosh swell + wind chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-windwalk.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-hunters-mark",
   "category": "skills",
   "priority": "P1",
   "title": "Hunter's Mark — pole buff",
   "usedFor": "Skill pole_agi.hunters_mark: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Bow-string pluck + soft metallic click. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-hunters-mark.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-hunters-mark.webp",
    "caption": "Hunter's Mark — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Bow-string pluck + soft metallic click. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-hunters-mark.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-keen-eye-chant",
   "category": "skills",
   "priority": "P1",
   "title": "Keen Eye Chant — pole buff",
   "usedFor": "Skill pole_agi.keen_eye_chant: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft chant, crisp metallic ping. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-keen-eye-chant.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-keen-eye-chant.webp",
    "caption": "Keen Eye Chant — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Soft chant, crisp metallic ping. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-keen-eye-chant.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-evasive-instinct",
   "category": "skills",
   "priority": "P1",
   "title": "Evasive Instinct — pole buff",
   "usedFor": "Skill pole_agi.evasive_instinct: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Quick breath, fabric whisper, wind flick. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-evasive-instinct.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-evasive-instinct.webp",
    "caption": "Evasive Instinct — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Quick breath, fabric whisper, wind flick. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-evasive-instinct.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-agi-quickening",
   "category": "skills",
   "priority": "P1",
   "title": "Quickening — pole buff",
   "usedFor": "Skill pole_agi.quickening: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Fast rising wing-flutter swell ending in a light tick. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-agi-quickening.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-agi-quickening.webp",
    "caption": "Quickening — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Fast rising wing-flutter swell ending in a light tick. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-agi-quickening.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-threadcut",
   "category": "skills",
   "priority": "P1",
   "title": "Threadcut — Nightblade",
   "usedFor": "Skill nightblade.threadcut: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Quick hiss + wet tick. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-threadcut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/threadcut.webp",
    "caption": "Threadcut — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Quick hiss + wet tick. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-threadcut.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-cross-stitch",
   "category": "skills",
   "priority": "P1",
   "title": "Cross Stitch — Nightblade",
   "usedFor": "Skill nightblade.cross_stitch: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Two sharp slices + cloth-rip sweetener. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-cross-stitch.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/cross-stitch.webp",
    "caption": "Cross Stitch — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Two sharp slices + cloth-rip sweetener. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-cross-stitch.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-fan-of-knives",
   "category": "skills",
   "priority": "P1",
   "title": "Fan of Knives — Nightblade",
   "usedFor": "Skill nightblade.fan_of_knives: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Burst of 12 tiny whistles + scattered ticks. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-fan-of-knives.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-nightblade-fan-of-knives.webp",
    "caption": "Fan of Knives — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Burst of 12 tiny whistles + scattered ticks. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-fan-of-knives.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-shadow-step",
   "category": "skills",
   "priority": "P1",
   "title": "Shadow Step — Nightblade",
   "usedFor": "Skill nightblade.shadow_step: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Smoke puff whoosh, reappear snap, stab. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-shadow-step.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-nightblade-shadow-step.webp",
    "caption": "Shadow Step — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Smoke puff whoosh, reappear snap, stab. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-shadow-step.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-nightshade-coat",
   "category": "skills",
   "priority": "P1",
   "title": "Nightshade Coat — Nightblade",
   "usedFor": "Skill nightblade.nightshade_coat: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Liquid swirl + blade scrape. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-nightshade-coat.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-nightblade-nightshade-coat.webp",
    "caption": "Nightshade Coat — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Liquid swirl + blade scrape. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-nightblade-nightshade-coat.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-death-lotus",
   "category": "skills",
   "priority": "P1",
   "title": "Death Lotus — Nightblade",
   "usedFor": "Skill nightblade.death_lotus: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rapid triple-slice motifs separated by smoke pops; final chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-death-lotus.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-nightblade-death-lotus.webp",
    "caption": "Death Lotus — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Rapid triple-slice motifs separated by smoke pops; final chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-death-lotus.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-nightblade-severance",
   "category": "skills",
   "priority": "P1",
   "title": "Severance — Nightblade",
   "usedFor": "Skill nightblade.severance: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whispered whoosh, quick slice, soft cloth flutter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-nightblade-severance.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-nightblade-severance.webp",
    "caption": "Severance — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Whispered whoosh, quick slice, soft cloth flutter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-nightblade-severance.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-rake-flurry",
   "category": "skills",
   "priority": "P1",
   "title": "Rake Flurry — Talon",
   "usedFor": "Skill talon.rake_flurry: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Tearing scrapes, growl breath. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-rake-flurry.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/rake-flurry.webp",
    "caption": "Rake Flurry — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Tearing scrapes, growl breath. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-rake-flurry.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-hooking-palm",
   "category": "skills",
   "priority": "P1",
   "title": "Hooking Palm — Talon",
   "usedFor": "Skill talon.hooking_palm: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whip crack + tension snap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-hooking-palm.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/hooking-palm.webp",
    "caption": "Hooking Palm — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Whip crack + tension snap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-hooking-palm.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-pounce",
   "category": "skills",
   "priority": "P1",
   "title": "Pounce — Talon",
   "usedFor": "Skill talon.pounce: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Feral snarl, leap whoosh, heavy landing rake. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-pounce.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-talon-pounce.webp",
    "caption": "Pounce — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Feral snarl, leap whoosh, heavy landing rake. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-pounce.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-storm-rend",
   "category": "skills",
   "priority": "P1",
   "title": "Storm Rend — Talon",
   "usedFor": "Skill talon.storm_rend: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Electric crackle sweeps + thunder snap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-storm-rend.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-talon-storm-rend.webp",
    "caption": "Storm Rend — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Electric crackle sweeps + thunder snap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-storm-rend.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-predators-instinct",
   "category": "skills",
   "priority": "P1",
   "title": "Predator's Instinct — Talon",
   "usedFor": "Skill talon.predators_instinct: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Low growl + claw scrape. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-predators-instinct.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-talon-predators-instinct.webp",
    "caption": "Predator's Instinct — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Low growl + claw scrape. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-talon-predators-instinct.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-beast-within",
   "category": "skills",
   "priority": "P1",
   "title": "Beast Within — Talon",
   "usedFor": "Skill talon.beast_within: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Layered beast roar + rapid tearing + final howl. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-beast-within.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-talon-beast-within.webp",
    "caption": "Beast Within — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Layered beast roar + rapid tearing + final howl. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-beast-within.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-talon-apex-rend",
   "category": "skills",
   "priority": "P1",
   "title": "Apex Rend — Talon",
   "usedFor": "Skill talon.apex_rend: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Snarl, rapid rakes, roar. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-talon-apex-rend.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-talon-apex-rend.webp",
    "caption": "Apex Rend — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Snarl, rapid rakes, roar. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-talon-apex-rend.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-plucked-note",
   "category": "skills",
   "priority": "P1",
   "title": "Plucked Note — Songweaver",
   "usedFor": "Skill songweaver.plucked_note: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Plucked pentatonic note (pitch rises with stacks). Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-plucked-note.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-plucked-note.webp",
    "caption": "Plucked Note — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Plucked pentatonic note (pitch rises with stacks). Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-plucked-note.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-discordant-chord",
   "category": "skills",
   "priority": "P1",
   "title": "Discordant Chord — Songweaver",
   "usedFor": "Skill songweaver.discordant_chord: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Harsh dissonant strum + bass thump. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-discordant-chord.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-discordant-chord.webp",
    "caption": "Discordant Chord — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Harsh dissonant strum + bass thump. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-discordant-chord.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-lullaby-of-dunes",
   "category": "skills",
   "priority": "P1",
   "title": "Lullaby of Dunes — Songweaver",
   "usedFor": "Skill songweaver.lullaby_of_dunes: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Lullaby phrase (4 notes), gentle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-lullaby-of-dunes.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-lullaby-of-dunes.webp",
    "caption": "Lullaby of Dunes — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Lullaby phrase (4 notes), gentle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-lullaby-of-dunes.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-resonant-echo",
   "category": "skills",
   "priority": "P1",
   "title": "Resonant Echo — Songweaver",
   "usedFor": "Skill songweaver.resonant_echo: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Sliding glissando + echo reverb. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-resonant-echo.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-resonant-echo.webp",
    "caption": "Resonant Echo — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Sliding glissando + echo reverb. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-resonant-echo.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-hymn-of-the-caravan",
   "category": "skills",
   "priority": "P1",
   "title": "Hymn of the Caravan — Songweaver",
   "usedFor": "Skill songweaver.hymn_of_the_caravan: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Warm 6-note hymn phrase, sustained chord. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-hymn-of-the-caravan.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-hymn-of-the-caravan.webp",
    "caption": "Hymn of the Caravan — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Warm 6-note hymn phrase, sustained chord. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-songweaver-hymn-of-the-caravan.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-crescendo",
   "category": "skills",
   "priority": "P1",
   "title": "Crescendo — Songweaver",
   "usedFor": "Skill songweaver.crescendo: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Accelerating strum building in volume + pitch → explosive final chord with reverb tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-crescendo.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-crescendo.webp",
    "caption": "Crescendo — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Accelerating strum building in volume + pitch → explosive final chord with reverb tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-crescendo.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-songweaver-final-cadence",
   "category": "skills",
   "priority": "P1",
   "title": "Final Cadence — Songweaver",
   "usedFor": "Skill songweaver.final_cadence: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Single full-chord strum with a rising overtone, glass-like shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-songweaver-final-cadence.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-songweaver-final-cadence.webp",
    "caption": "Final Cadence — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Single full-chord strum with a rising overtone, glass-like shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-songweaver-final-cadence.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-elemental-attunement",
   "category": "skills",
   "priority": "P1",
   "title": "Elemental Attunement — pole buff",
   "usedFor": "Skill pole_int.elemental_attunement: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft ignition matching the element. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-elemental-attunement.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-int-elemental-attunement.webp",
    "caption": "Elemental Attunement — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Soft ignition matching the element. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-elemental-attunement.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-lantern-light",
   "category": "skills",
   "priority": "P1",
   "title": "Lantern Light — pole buff",
   "usedFor": "Skill pole_int.lantern_light: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft ignition, paper rustle, warm hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-lantern-light.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-int-lantern-light.webp",
    "caption": "Lantern Light — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Soft ignition, paper rustle, warm hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-lantern-light.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-resonant-ward",
   "category": "skills",
   "priority": "P1",
   "title": "Resonant Ward — pole buff",
   "usedFor": "Skill pole_int.resonant_ward: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Glass chime + low hum; breaking = crystal shatter. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-resonant-ward.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/resonant-ward.webp",
    "caption": "Resonant Ward — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Glass chime + low hum; breaking = crystal shatter. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-resonant-ward.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-sanctuary-glyph",
   "category": "skills",
   "priority": "P1",
   "title": "Sanctuary Glyph — pole buff",
   "usedFor": "Skill pole_int.sanctuary_glyph: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Chalk scratch, resonant chord, soft hum loop. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-sanctuary-glyph.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-int-sanctuary-glyph.webp",
    "caption": "Sanctuary Glyph — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Chalk scratch, resonant chord, soft hum loop. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-sanctuary-glyph.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-arcane-surge",
   "category": "skills",
   "priority": "P1",
   "title": "Arcane Surge — pole buff",
   "usedFor": "Skill pole_int.arcane_surge: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Reverse whoosh into a bright chord. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-arcane-surge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-int-arcane-surge.webp",
    "caption": "Arcane Surge — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Reverse whoosh into a bright chord. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-arcane-surge.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-pole-int-kindred-flame",
   "category": "skills",
   "priority": "P1",
   "title": "Kindred Flame — pole buff",
   "usedFor": "Skill pole_int.kindred_flame: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Ignition crackle matching the element, rising chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-pole-int-kindred-flame.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-pole-int-kindred-flame.webp",
    "caption": "Kindred Flame — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Ignition crackle matching the element, rising chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-pole-int-kindred-flame.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-luminous-bolt",
   "category": "skills",
   "priority": "P1",
   "title": "Luminous Bolt — Lanternbinder",
   "usedFor": "Skill lanternbinder.luminous_bolt: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Soft flame whoosh + chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-luminous-bolt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/luminous-bolt.webp",
    "caption": "Luminous Bolt — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Soft flame whoosh + chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-luminous-bolt.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-ember-curse",
   "category": "skills",
   "priority": "P1",
   "title": "Ember Curse — Lanternbinder",
   "usedFor": "Skill lanternbinder.ember_curse: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whispered chant + crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-ember-curse.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-ember-curse.webp",
    "caption": "Ember Curse — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Whispered chant + crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-ember-curse.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-summon-wisps",
   "category": "skills",
   "priority": "P1",
   "title": "Lantern Wisps — Lanternbinder",
   "usedFor": "Skill lanternbinder.summon_wisps: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Lantern creak, whispering giggles, soft fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-summon-wisps.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-summon-wisps.webp",
    "caption": "Lantern Wisps — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Lantern creak, whispering giggles, soft fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-summon-wisps.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-soul-tether",
   "category": "skills",
   "priority": "P1",
   "title": "Soul Tether — Lanternbinder",
   "usedFor": "Skill lanternbinder.soul_tether: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Low drone with heartbeat pulses. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-soul-tether.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-soul-tether.webp",
    "caption": "Soul Tether — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Low drone with heartbeat pulses. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-soul-tether.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-lamp-warden",
   "category": "skills",
   "priority": "P1",
   "title": "Lamp Warden — Lanternbinder",
   "usedFor": "Skill lanternbinder.lamp_warden: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Deep bellowing hum, heavy slams, crackling fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-lamp-warden.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-lamp-warden.webp",
    "caption": "Lamp Warden — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Deep bellowing hum, heavy slams, crackling fire. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-lamp-warden.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-pyre-procession",
   "category": "skills",
   "priority": "P1",
   "title": "Pyre Procession — Lanternbinder",
   "usedFor": "Skill lanternbinder.pyre_procession: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rising chorus of whispers into a roaring fire blast. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-pyre-procession.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-pyre-procession.webp",
    "caption": "Pyre Procession — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Rising chorus of whispers into a roaring fire blast. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-pyre-procession.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-lanternbinder-last-lantern",
   "category": "skills",
   "priority": "P1",
   "title": "Last Lantern — Lanternbinder",
   "usedFor": "Skill lanternbinder.last_lantern: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Lantern creak, rush of whispers, fire bloom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-lanternbinder-last-lantern.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/skill-icons/art-skl-lanternbinder-last-lantern.webp",
    "caption": "Last Lantern — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Lantern creak, rush of whispers, fire bloom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-lanternbinder-last-lantern.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-small-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "small wild animal (hare or fox) — hurt",
   "usedFor": "Dewhorn Hare, Reed Fox, Bellwhisker Jerboa.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-small-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/dewhorn-hare.webp",
    "caption": "Dewhorn Hare — quadruped small"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-small-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-medium-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "medium beast (boar or jackal) — hurt",
   "usedFor": "Orchard Boar, Marsh Wolf, Duskfang Hyena, Stormquill Stalker.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-medium-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/orchard-boar.webp",
    "caption": "Orchard Boar — quadruped medium"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-medium-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-beetle-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "large beetle with clicking mandibles — hurt",
   "usedFor": "Duneplate Beetle, Kilnback Scarab.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-beetle-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/duneplate-beetle.webp",
    "caption": "Duneplate Beetle — arthropod beetle"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-beetle-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-small-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "small lizard — hurt",
   "usedFor": "Reedscale Lizard, Siltspit Gecko.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-small-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/reedscale-lizard.webp",
    "caption": "Reedscale Lizard — reptile small"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-reptile-small-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-scorpion-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "giant scorpion with rattling plates — hurt",
   "usedFor": "Clayclaw Scorpion, Basaltsting Scorpion.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-scorpion-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/clayclaw-scorpion.webp",
    "caption": "Clayclaw Scorpion — arthropod scorpion"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-scorpion-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-serpent-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "large serpent — hurt",
   "usedFor": "Emberhorn Viper.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-serpent-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/emberhorn-viper.webp",
    "caption": "Emberhorn Viper — serpent"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-serpent-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-humanoid-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "desert bandit (non-verbal grunts only) — hurt",
   "usedFor": "Saltway Bandit, Ashroad Raider.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-humanoid-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/saltway-lancer.webp",
    "caption": "Saltway Bandit — humanoid"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-humanoid-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-shelled-quadruped-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "heavy shelled tortoise beast — hurt",
   "usedFor": "Brineback Tortoise, Ashroot Pangolin.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-shelled-quadruped-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/brineback-tortoise.webp",
    "caption": "Brineback Tortoise — shelled quadruped"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-shelled-quadruped-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-avian-small-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "desert bird of prey — hurt",
   "usedFor": "Stormwing Kestrel.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-avian-small-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/stormwing-kestrel.webp",
    "caption": "Stormwing Kestrel — avian small"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-avian-small-hurt.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-large-hurt",
   "category": "monsters",
   "priority": "P1",
   "title": "large armoured reptile — hurt",
   "usedFor": "Jadecrest Monitor.",
   "seconds": 0.6,
   "prompt": "Creature short pained hurt sound of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-large-hurt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/jadecrest-monitor.webp",
    "caption": "Jadecrest Monitor — reptile large"
   },
   "command": "./tools/sfxgen --prompt \"Creature short pained hurt sound of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 3 --out audio/source/monsters/sfx-mob-reptile-large-hurt.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-boss-bellbound-regent-roar",
   "category": "monsters",
   "priority": "P1",
   "title": "The Bellbound Regent — roar / intro",
   "usedFor": "Boss intro and enrage (jade_seal_ruins).",
   "seconds": 3,
   "prompt": "Huge boss creature roar: deep and resonant, layered with a cracked bronze bell and grinding shell. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/monsters/sfx-boss-bellbound-regent-roar.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/bellbound-regent.webp",
    "caption": "The Bellbound Regent — boss"
   },
   "command": "./tools/sfxgen --prompt \"Huge boss creature roar: deep and resonant, layered with a cracked bronze bell and grinding shell. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 3 --takes 2 --out audio/source/monsters/sfx-boss-bellbound-regent-roar.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-boss-kharuun-ashen-caravan-roar",
   "category": "monsters",
   "priority": "P1",
   "title": "Kharuun, the Ashen Caravan — roar / intro",
   "usedFor": "Boss intro and enrage (caravan_crown_arena).",
   "seconds": 3,
   "prompt": "Huge boss creature roar: deep and resonant, layered with roaring fire and creaking caravan wood. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/monsters/sfx-boss-kharuun-ashen-caravan-roar.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/kharuun-ashen-caravan.webp",
    "caption": "Kharuun, the Ashen Caravan — boss"
   },
   "command": "./tools/sfxgen --prompt \"Huge boss creature roar: deep and resonant, layered with roaring fire and creaking caravan wood. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 3 --takes 2 --out audio/source/monsters/sfx-boss-kharuun-ashen-caravan-roar.mp3"
  },
  {
   "variations": 3,
   "loop": true,
   "model": "sm-music",
   "seconds": 60,
   "crossfade": 2,
   "priority": "P1",
   "negativePrompt": "vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise",
   "id": "mus-boss-bellbound-regent",
   "category": "music",
   "boss": "bellbound_regent",
   "zone": "jade_seal_ruins",
   "playback": "engaged_boss_encounter_only",
   "title": "Music — The Bellbound Regent encounter",
   "usedFor": "Special theme while engaged with The Bellbound Regent; not ambient zone music. Encounter-state start/end/reset/leash/leave/death/reconnect rules apply; duck under boss warnings. Planned brief; select a take after generation and listening review.",
   "prompt": "Classic orchestral fantasy boss battle theme in a sealed jade temple: measured low strings, tense brass, deep ceremonial bells and firm timpani, a solemn rising melody with space between accents, controlled dynamics that leave attack warnings clear, instrumental, seamless loop.",
   "saveAs": "audio/source/music/mus-boss-bellbound-regent.mp3",
   "takes": 0,
   "status": "pending",
   "art": {
    "src": "/art/new/loading-screens/load-jade-seal-ruins.webp",
    "caption": "Jade Seal Ruins — loading screen"
   },
   "command": "./tools/sfxgen --model sm-music --prompt \"Classic orchestral fantasy boss battle theme in a sealed jade temple: measured low strings, tense brass, deep ceremonial bells and firm timpani, a solemn rising melody with space between accents, controlled dynamics that leave attack warnings clear, instrumental, seamless loop.\" --negative-prompt \"vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise\" --seconds 60 --takes 3 --loop --crossfade 2 --out audio/source/music/mus-boss-bellbound-regent.mp3"
  },
  {
   "variations": 3,
   "loop": true,
   "model": "sm-music",
   "seconds": 60,
   "crossfade": 2,
   "priority": "P1",
   "negativePrompt": "vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise",
   "id": "mus-boss-kharuun-ashen-caravan",
   "category": "music",
   "boss": "kharuun_ashen_caravan",
   "zone": "caravan_crown_arena",
   "playback": "engaged_boss_encounter_only",
   "title": "Music — Kharuun, the Ashen Caravan encounter",
   "usedFor": "Special theme while engaged with Kharuun, the Ashen Caravan; not ambient zone music. Encounter-state start/end/reset/leash/leave/death/reconnect rules apply; duck under boss warnings. Planned brief; select a take after generation and listening review.",
   "prompt": "Classic orchestral fantasy boss battle theme in an abandoned caravan wheel-yard: driving low strings, resolute horn melody, dry frame drums and restrained timpani, a dusty ominous rhythm with clear spaces for combat warnings, controlled dynamics, instrumental, seamless loop.",
   "saveAs": "audio/source/music/mus-boss-kharuun-ashen-caravan.mp3",
   "takes": 0,
   "status": "pending",
   "art": {
    "src": "/art/new/loading-screens/load-caravan-crown-arena.webp",
    "caption": "Caravan Crown Arena — loading screen"
   },
   "command": "./tools/sfxgen --model sm-music --prompt \"Classic orchestral fantasy boss battle theme in an abandoned caravan wheel-yard: driving low strings, resolute horn melody, dry frame drums and restrained timpani, a dusty ominous rhythm with clear spaces for combat warnings, controlled dynamics, instrumental, seamless loop.\" --negative-prompt \"vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise\" --seconds 60 --takes 3 --loop --crossfade 2 --out audio/source/music/mus-boss-kharuun-ashen-caravan.mp3"
  },
  {
   "variations": 3,
   "loop": true,
   "model": "sm-music",
   "seconds": 60,
   "crossfade": 2,
   "priority": "P1",
   "negativePrompt": "vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise",
   "id": "mus-amber-gate",
   "category": "music",
   "zone": "amber_gate",
   "title": "Music — Amber Gate theme",
   "usedFor": "Town theme for Amber Gate (Twin-roof gate, caravan square and amber-glazed bell tower): a calm 60 s loop on the music bus for the whole town. The crowd bed (amb-amber-gate) and the forge emitter play under it. Pick one take; the others are alternates.",
   "prompt": "Classic orchestral fantasy town theme, warm and welcoming in the golden late afternoon: a lyrical flute and oboe melody over gentle strings and harp arpeggios, soft plucked oud, light frame drum and tambourine, relaxed 92 BPM, major key, steady medium-low dynamics, instrumental, seamless loop.",
   "saveAs": "audio/source/music/mus-amber-gate.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-amber-gate.webp",
    "caption": "Amber Gate — loading screen"
   },
   "command": "./tools/sfxgen --model sm-music --prompt \"Classic orchestral fantasy town theme, warm and welcoming in the golden late afternoon: a lyrical flute and oboe melody over gentle strings and harp arpeggios, soft plucked oud, light frame drum and tambourine, relaxed 92 BPM, major key, steady medium-low dynamics, instrumental, seamless loop.\" --negative-prompt \"vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise\" --seconds 60 --takes 3 --loop --crossfade 2 --out audio/source/music/mus-amber-gate.mp3"
  },
  {
   "variations": 3,
   "loop": true,
   "model": "sm-music",
   "seconds": 60,
   "crossfade": 2,
   "priority": "P1",
   "negativePrompt": "vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise",
   "id": "mus-gm-proving-ground",
   "category": "music",
   "title": "Music — GM room (Caravan Proving Ground)",
   "usedFor": "The owner's GM room (gm-room.json): a calm, steady classic loop for long manual-test sessions, with no big swells so hit sounds and telegraph cues stay readable. Pick one take; the others are alternates.",
   "prompt": "Classic orchestral fantasy arena theme, calm and steady for long testing sessions: low strings and cellos under a restrained heroic horn melody, soft timpani and a light snare roll, dignified and focused, no big crescendos or sudden loud hits, consistent medium-low dynamics, 100 BPM, minor key, instrumental, seamless loop.",
   "saveAs": "audio/source/music/mus-gm-proving-ground.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/maps/amber-basin.webp",
    "caption": "GM room — the Caravan Proving Ground (instanced test space)"
   },
   "command": "./tools/sfxgen --model sm-music --prompt \"Classic orchestral fantasy arena theme, calm and steady for long testing sessions: low strings and cellos under a restrained heroic horn melody, soft timpani and a light snare roll, dignified and focused, no big crescendos or sudden loud hits, consistent medium-low dynamics, 100 BPM, minor key, instrumental, seamless loop.\" --negative-prompt \"vocals, singing, choir, spoken words, electronic synthesizer, drum kit, distortion, sound effects, crowd noise\" --seconds 60 --takes 3 --loop --crossfade 2 --out audio/source/music/mus-gm-proving-ground.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-amber-gate",
   "category": "ambience",
   "zone": "amber_gate",
   "priority": "P1",
   "title": "Ambience — Amber Gate",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Amber Gate (Twin-roof gate, caravan square and amber-glazed bell tower). Plays under the town theme.",
   "prompt": "Seamless looping ambience of a busy caravan trading town square in the late afternoon: a distant crowd murmur of indistinct chatter, cart wheels rolling over sandstone pavers, market cloth awnings flapping in a light breeze, wooden stalls creaking, far-off muffled crates and coins, a pack animal huffing. Soft and low in level, a quiet backdrop for the square. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-amber-gate.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-amber-gate.webp",
    "caption": "Amber Gate — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of a busy caravan trading town square in the late afternoon: a distant crowd murmur of indistinct chatter, cart wheels rolling over sandstone pavers, market cloth awnings flapping in a light breeze, wooden stalls creaking, far-off muffled crates and coins, a pack animal huffing. Soft and low in level, a quiet backdrop for the square. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-amber-gate.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-dewgrass-meadow",
   "category": "ambience",
   "zone": "dewgrass_meadow",
   "priority": "P1",
   "title": "Ambience — Dewgrass Meadow",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Dewgrass Meadow (Dew-coated terraces, wicker bridges and a fallen training log). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of a dewy meadow in soft morning haze: a gentle breeze moving through short grass, a few small songbirds calling far apart, light crickets and insects, water trickling softly over dew-wet terraces, a faint creak of wicker. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-dewgrass-meadow.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-dewgrass-meadow.webp",
    "caption": "Dewgrass Meadow — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of a dewy meadow in soft morning haze: a gentle breeze moving through short grass, a few small songbirds calling far apart, light crickets and insects, water trickling softly over dew-wet terraces, a faint creak of wicker. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-dewgrass-meadow.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-old-orchard",
   "category": "ambience",
   "zone": "old_orchard",
   "priority": "P1",
   "title": "Ambience — Old Orchard",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Old Orchard (Amber fruit trees and abandoned toll sheds). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of an old orchard in dappled sunlight: leaves rustling softly in fruit trees, bees and flies humming close by, a few songbirds and a distant woodpecker tapping lightly, fruit dropping softly onto grass, faint creaks from abandoned wooden toll sheds. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-old-orchard.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-old-orchard.webp",
    "caption": "Old Orchard — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of an old orchard in dappled sunlight: leaves rustling softly in fruit trees, bees and flies humming close by, a few songbirds and a distant woodpecker tapping lightly, fruit dropping softly onto grass, faint creaks from abandoned wooden toll sheds. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-old-orchard.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-caravan-crown-arena",
   "category": "ambience",
   "zone": "caravan_crown_arena",
   "priority": "P1",
   "title": "Ambience — Caravan Crown Arena",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Caravan Crown Arena (A circular abandoned caravan wheel-yard). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of an abandoned caravan wheel-yard in a dust storm: heavy wind-driven sand hissing, loose wooden wagon wheels creaking and rattling, canvas scraps snapping, a distant low wind howl across the open ring, gritty dust skittering over packed earth. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-caravan-crown-arena.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-caravan-crown-arena.webp",
    "caption": "Caravan Crown Arena — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of an abandoned caravan wheel-yard in a dust storm: heavy wind-driven sand hissing, loose wooden wagon wheels creaking and rattling, canvas scraps snapping, a distant low wind howl across the open ring, gritty dust skittering over packed earth. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-caravan-crown-arena.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-whisper",
   "category": "ui",
   "priority": "P2",
   "title": "UI — whisper",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Private message received: soft two-note wooden chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-whisper.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Private message received: soft two-note wooden chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-whisper.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-checkbox",
   "category": "ui",
   "priority": "P2",
   "title": "UI — checkbox",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.15,
   "prompt": "Checkbox ticked: tiny quill scratch and soft click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-checkbox.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/field-frame.webp",
    "caption": "UI — checkbox"
   },
   "command": "./tools/sfxgen --prompt \"Checkbox ticked: tiny quill scratch and soft click. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.15 --takes 3 --out audio/source/ui/sfx-ui-checkbox.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-slider-tick",
   "category": "ui",
   "priority": "P2",
   "title": "UI — slider tick",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.1,
   "prompt": "Slider step: very short quiet wooden tick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-slider-tick.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/slider-knob.webp",
    "caption": "UI — slider tick"
   },
   "command": "./tools/sfxgen --prompt \"Slider step: very short quiet wooden tick. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.1 --takes 3 --out audio/source/ui/sfx-ui-slider-tick.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-atlas-node-ready",
   "category": "ui",
   "priority": "P2",
   "title": "UI — atlas node-ready",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "A skill-tree node becomes available: soft magical glow swell with a light chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-atlas-node-ready.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/atlas-tile.webp",
    "caption": "UI — atlas node ready"
   },
   "command": "./tools/sfxgen --prompt \"A skill-tree node becomes available: soft magical glow swell with a light chime. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-atlas-node-ready.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-event-countdown",
   "category": "ui",
   "priority": "P2",
   "title": "UI — event countdown",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.2,
   "prompt": "Event countdown tick: soft war-drum tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-event-countdown.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Event countdown tick: soft war-drum tap. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.2 --takes 3 --out audio/source/ui/sfx-ui-event-countdown.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-party-invite",
   "category": "ui",
   "priority": "P2",
   "title": "UI — party invite",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Party invitation received: two warm wooden chimes. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-party-invite.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Party invitation received: two warm wooden chimes. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-party-invite.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-ui-trade-request",
   "category": "ui",
   "priority": "P2",
   "title": "UI — trade request",
   "usedFor": "HUD and windows (bypasses 3D).",
   "seconds": 0.5,
   "prompt": "Trade request received: coin purse jingle and a soft bell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/ui/sfx-ui-trade-request.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/ui/btn-l.webp",
    "caption": "UI"
   },
   "command": "./tools/sfxgen --prompt \"Trade request received: coin purse jingle and a soft bell. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.5 --takes 3 --out audio/source/ui/sfx-ui-trade-request.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mount-reedback-strider",
   "category": "foley",
   "priority": "P2",
   "title": "Mount call — Reedback Strider",
   "usedFor": "Summon/mount sound and gallop layer for Reedback Strider (long-legged dune lizard with reed-like dorsal quills and a woven saddle).",
   "seconds": 2,
   "prompt": "Mount summon sound for a long-legged dune lizard with reed-like dorsal quills and a woven saddle: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-mount-reedback-strider.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/mounts/art-mnt-reedback-strider.webp",
    "caption": "Reedback Strider — mount"
   },
   "command": "./tools/sfxgen --prompt \"Mount summon sound for a long-legged dune lizard with reed-like dorsal quills and a woven saddle: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-mount-reedback-strider.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mount-duneplate-carrier",
   "category": "foley",
   "priority": "P2",
   "title": "Mount call — Duneplate Carrier",
   "usedFor": "Summon/mount sound and gallop layer for Duneplate Carrier (giant armoured dune beetle carrying a lacquered howdah, lamp-glands glowing under its plates).",
   "seconds": 2,
   "prompt": "Mount summon sound for a giant armoured dune beetle carrying a lacquered howdah, lamp-glands glowing under its plates: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-mount-duneplate-carrier.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/mounts/art-mnt-duneplate-carrier.webp",
    "caption": "Duneplate Carrier — mount"
   },
   "command": "./tools/sfxgen --prompt \"Mount summon sound for a giant armoured dune beetle carrying a lacquered howdah, lamp-glands glowing under its plates: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-mount-duneplate-carrier.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mount-emberhorn-aurochs",
   "category": "foley",
   "priority": "P2",
   "title": "Mount call — Emberhorn Aurochs",
   "usedFor": "Summon/mount sound and gallop layer for Emberhorn Aurochs (massive scorched desert ox with ember-veined horns and soot-black fur, bronze barding).",
   "seconds": 2,
   "prompt": "Mount summon sound for a massive scorched desert ox with ember-veined horns and soot-black fur, bronze barding: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-mount-emberhorn-aurochs.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/mounts/art-mnt-emberhorn-aurochs.webp",
    "caption": "Emberhorn Aurochs — mount"
   },
   "command": "./tools/sfxgen --prompt \"Mount summon sound for a massive scorched desert ox with ember-veined horns and soot-black fur, bronze barding: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-mount-emberhorn-aurochs.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mount-mirage-drake",
   "category": "foley",
   "priority": "P2",
   "title": "Mount call — Mirage Drake",
   "usedFor": "Summon/mount sound and gallop layer for Mirage Drake (sand-wyrm drake with translucent heat-haze frills and pale gold scales, wingless, sinuous).",
   "seconds": 2,
   "prompt": "Mount summon sound for a sand-wyrm drake with translucent heat-haze frills and pale gold scales, wingless, sinuous: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/foley/sfx-mount-mirage-drake.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/mounts/art-mnt-mirage-drake.webp",
    "caption": "Mirage Drake — mount"
   },
   "command": "./tools/sfxgen --prompt \"Mount summon sound for a sand-wyrm drake with translucent heat-haze frills and pale gold scales, wingless, sinuous: creature call, saddle leather creak and heavy footfalls starting to move. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 2 --takes 3 --out audio/source/foley/sfx-mount-mirage-drake.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-dual-swords",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Dual Blades",
   "usedFor": "Basic chain and skills of Dual Blades (Twinblade).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a dual blades: paired light swishes alternating L/R pan. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-dual-swords.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Tollkeeper Sword — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a dual blades: paired light swishes alternating L/R pan. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-dual-swords.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-sword-shield",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Sword & Shield",
   "usedFor": "Basic chain and skills of Sword & Shield (Vanguard).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a sword & shield: steel swish, shield wood/brass thud. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-sword-shield.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Tuskguard Buckler — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a sword & shield: steel swish, shield wood/brass thud. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-sword-shield.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-crossbow",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Crossbow",
   "usedFor": "Basic chain and skills of Crossbow (Boltwright).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a crossbow: mechanical clack, heavy thwip, crank ratchet. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-crossbow.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Reedlatch Crossbow — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a crossbow: mechanical clack, heavy thwip, crank ratchet. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-crossbow.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-war-fan",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — War Fan",
   "usedFor": "Basic chain and skills of War Fan (Windmender).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a war fan: paper-silk snap, iron rib clack, soft wind rush. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-war-fan.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Reedsilk Fans — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a war fan: paper-silk snap, iron rib clack, soft wind rush. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-war-fan.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-chakram",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Chakram",
   "usedFor": "Basic chain and skills of Chakram (Ringdancer).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a chakram: whirring spin loop, ring chime on catch. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-chakram.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Bellring Chakram — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a chakram: whirring spin loop, ring chime on catch. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-chakram.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-storm-staff",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Storm Staff",
   "usedFor": "Basic chain and skills of Storm Staff (Stormcaller).",
   "seconds": 0.9,
   "prompt": "Weapon attack release for a storm staff: wooden whoom, electric crackle on finisher. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-storm-staff.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Bellshade Staff — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a storm staff: wooden whoom, electric crackle on finisher. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-storm-staff.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-tome",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Rime Tome",
   "usedFor": "Basic chain and skills of Rime Tome (Frostweaver).",
   "seconds": 0.6,
   "prompt": "Weapon attack release for a rime tome: page flutter, glass chime, cracking ice. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-tome.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Dewleaf Primer — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon attack release for a rime tome: page flutter, glass chime, cracking ice. Fast and tight. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.6 --takes 4 --out audio/source/weapons/sfx-swish-tome.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-censer",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Censer",
   "usedFor": "Basic chain and skills of Censer (Ashwarden).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a censer: chain rattle, bronze clank, smouldering whoosh. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-censer.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Beetlelamp Thurible — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a censer: chain rattle, bronze clank, smouldering whoosh. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-censer.mp3"
  },
  {
   "variations": 4,
   "loop": false,
   "id": "sfx-swish-glaive",
   "category": "weapons",
   "priority": "P2",
   "title": "Swing / fire — Glaive",
   "usedFor": "Basic chain and skills of Glaive (Oathkeeper).",
   "seconds": 0.9,
   "prompt": "Weapon swing whoosh for a glaive: long polearm whoosh, cold chime on finisher. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/weapons/sfx-swish-glaive.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Saltpiercer Glaive — the weapon swung"
   },
   "command": "./tools/sfxgen --prompt \"Weapon swing whoosh for a glaive: long polearm whoosh, cold chime on finisher. Weighty, wide arc. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 0.9 --takes 4 --out audio/source/weapons/sfx-swish-glaive.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-twin-crossing",
   "category": "skills",
   "priority": "P2",
   "title": "Twin Crossing — Twinblade",
   "usedFor": "Skill twinblade.twin_crossing: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Two quick swishes panned L→R, double slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-twin-crossing.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/twin-crossing.webp",
    "caption": "Twin Crossing — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Two quick swishes panned L→R, double slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-twin-crossing.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-cyclone-dance",
   "category": "skills",
   "priority": "P2",
   "title": "Cyclone Dance — Twinblade",
   "usedFor": "Skill twinblade.cyclone_dance: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rhythmic swish per revolution, wind rush loop. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-cyclone-dance.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Cyclone Dance — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Rhythmic swish per revolution, wind rush loop. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-cyclone-dance.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-thousand-cuts",
   "category": "skills",
   "priority": "P2",
   "title": "Thousand Cuts — Twinblade",
   "usedFor": "Skill twinblade.thousand_cuts: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Machine-gun-like rhythm of light slices, final heavy rising cut. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-thousand-cuts.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Thousand Cuts — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Machine-gun-like rhythm of light slices, final heavy rising cut. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-thousand-cuts.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-gale-step-slash",
   "category": "skills",
   "priority": "P2",
   "title": "Gale Step Slash — Twinblade",
   "usedFor": "Skill twinblade.gale_step_slash: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Sharp wind cut, passing double slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-gale-step-slash.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Gale Step Slash — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Sharp wind cut, passing double slice. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-gale-step-slash.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-blade-rhythm",
   "category": "skills",
   "priority": "P2",
   "title": "Blade Rhythm — Twinblade",
   "usedFor": "Skill twinblade.blade_rhythm: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Blade twirl + clash ring; trigger = bright chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-blade-rhythm.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Blade Rhythm — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Blade twirl + clash ring; trigger = bright chime. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-twinblade-blade-rhythm.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-tempest-of-blades",
   "category": "skills",
   "priority": "P2",
   "title": "Tempest of Blades — Twinblade",
   "usedFor": "Skill twinblade.tempest_of_blades: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Choral shing per sword, rain of impacts, final crash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-tempest-of-blades.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Tempest of Blades — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Choral shing per sword, rain of impacts, final crash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-tempest-of-blades.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-twinblade-final-meridian",
   "category": "skills",
   "priority": "P2",
   "title": "Final Meridian — Twinblade",
   "usedFor": "Skill twinblade.final_meridian: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rapid metallic shing rhythm, wind whirr, sharp double slash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-twinblade-final-meridian.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tollkeeper-sword.webp",
    "caption": "Final Meridian — Twinblade (Tollkeeper Sword; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Rapid metallic shing rhythm, wind whirr, sharp double slash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-twinblade-final-meridian.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-shieldline-cut",
   "category": "skills",
   "priority": "P2",
   "title": "Shieldline Cut — Vanguard",
   "usedFor": "Skill vanguard.shieldline_cut: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Steel swish + shield brass knock. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-shieldline-cut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/shieldline-cut.webp",
    "caption": "Shieldline Cut — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Steel swish + shield brass knock. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-vanguard-shieldline-cut.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-gate-reversal",
   "category": "skills",
   "priority": "P2",
   "title": "Gate Reversal — Vanguard",
   "usedFor": "Skill vanguard.gate_reversal: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Shield thump, heavy sword chop, bell ring on stun. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-gate-reversal.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/gate-reversal.webp",
    "caption": "Gate Reversal — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Shield thump, heavy sword chop, bell ring on stun. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-vanguard-gate-reversal.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-shield-charge",
   "category": "skills",
   "priority": "P2",
   "title": "Shield Charge — Vanguard",
   "usedFor": "Skill vanguard.shield_charge: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Armoured run, heavy shield impact boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-shield-charge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Shield Charge — Vanguard (Tuskguard Buckler; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Armoured run, heavy shield impact boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-vanguard-shield-charge.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-bulwark-slam",
   "category": "skills",
   "priority": "P2",
   "title": "Bulwark Slam — Vanguard",
   "usedFor": "Skill vanguard.bulwark_slam: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Brass gong slam + earth thud. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-bulwark-slam.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Bulwark Slam — Vanguard (Tuskguard Buckler; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Brass gong slam + earth thud. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-vanguard-bulwark-slam.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-retribution-stance",
   "category": "skills",
   "priority": "P2",
   "title": "Retribution Stance — Vanguard",
   "usedFor": "Skill vanguard.retribution_stance: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Two rim taps + barrier hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-retribution-stance.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Retribution Stance — Vanguard (Tuskguard Buckler; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Two rim taps + barrier hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-vanguard-retribution-stance.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-jade-aegis",
   "category": "skills",
   "priority": "P2",
   "title": "Jade Aegis — Vanguard",
   "usedFor": "Skill vanguard.jade_aegis: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Deep resonant hum, ripple chimes per impact, detonation boom with crystal shatter tail. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-jade-aegis.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Jade Aegis — Vanguard (Tuskguard Buckler; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Deep resonant hum, ripple chimes per impact, detonation boom with crystal shatter tail. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-vanguard-jade-aegis.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-vanguard-shield-verdict",
   "category": "skills",
   "priority": "P2",
   "title": "Shield Verdict — Vanguard",
   "usedFor": "Skill vanguard.shield_verdict: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Metal clang, grunt, piercing stab. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-vanguard-shield-verdict.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/tuskguard-buckler.webp",
    "caption": "Shield Verdict — Vanguard (Tuskguard Buckler; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Metal clang, grunt, piercing stab. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-vanguard-shield-verdict.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-rapid-bolts",
   "category": "skills",
   "priority": "P2",
   "title": "Rapid Bolts — Boltwright",
   "usedFor": "Skill boltwright.rapid_bolts: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Clack-thwip ×3, ratchet crank. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-rapid-bolts.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Rapid Bolts — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Clack-thwip ×3, ratchet crank. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-rapid-bolts.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-spark-trap",
   "category": "skills",
   "priority": "P2",
   "title": "Spark Trap — Boltwright",
   "usedFor": "Skill boltwright.spark_trap: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Clink-land, mechanical unfold, armed beep; trigger zap-boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-spark-trap.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Spark Trap — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Clink-land, mechanical unfold, armed beep; trigger zap-boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-spark-trap.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-thunder-quarrel",
   "category": "skills",
   "priority": "P2",
   "title": "Thunder Quarrel — Boltwright",
   "usedFor": "Skill boltwright.thunder_quarrel: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Heavy thunk, electric whine in flight, thunder crack on impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-thunder-quarrel.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Thunder Quarrel — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Heavy thunk, electric whine in flight, thunder crack on impact. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-thunder-quarrel.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-recoil-shot",
   "category": "skills",
   "priority": "P2",
   "title": "Recoil Shot — Boltwright",
   "usedFor": "Skill boltwright.recoil_shot: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Big boom + spring twang, sliding scrape. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-recoil-shot.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Recoil Shot — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Big boom + spring twang, sliding scrape. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-recoil-shot.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-ballista-turret",
   "category": "skills",
   "priority": "P2",
   "title": "Ballista Turret — Boltwright",
   "usedFor": "Skill boltwright.ballista_turret: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Clatter, spring, servo whir, rhythmic thwips. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-ballista-turret.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Ballista Turret — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Clatter, spring, servo whir, rhythmic thwips. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-ballista-turret.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-incendiary-payload",
   "category": "skills",
   "priority": "P2",
   "title": "Incendiary Payload — Boltwright",
   "usedFor": "Skill boltwright.incendiary_payload: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Thoomp launch, whistle, large explosion, staggered pops. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-incendiary-payload.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Incendiary Payload — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Thoomp launch, whistle, large explosion, staggered pops. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-incendiary-payload.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-boltwright-siege-quarrel",
   "category": "skills",
   "priority": "P2",
   "title": "Siege Quarrel — Boltwright",
   "usedFor": "Skill boltwright.siege_quarrel: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Ratchet clicks, heavy thunk, crackling blast. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-boltwright-siege-quarrel.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedlatch-crossbow.webp",
    "caption": "Siege Quarrel — Boltwright (Reedlatch Crossbow; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Ratchet clicks, heavy thunk, crackling blast. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-boltwright-siege-quarrel.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-fan-cut",
   "category": "skills",
   "priority": "P2",
   "title": "Fan Cut — Windmender",
   "usedFor": "Skill windmender.fan_cut: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Silk snap, double swish, soft gust. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-fan-cut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Fan Cut — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Silk snap, double swish, soft gust. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windmender-fan-cut.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-healing-gale",
   "category": "skills",
   "priority": "P2",
   "title": "Healing Gale — Windmender",
   "usedFor": "Skill windmender.healing_gale: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Warm whoosh, soft chime per ally healed. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-healing-gale.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Healing Gale — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Warm whoosh, soft chime per ally healed. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-windmender-healing-gale.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-updraft",
   "category": "skills",
   "priority": "P2",
   "title": "Updraft — Windmender",
   "usedFor": "Skill windmender.updraft: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Spinning swish, rising gust howl. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-updraft.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Updraft — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Spinning swish, rising gust howl. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windmender-updraft.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-zephyr-glide",
   "category": "skills",
   "priority": "P2",
   "title": "Zephyr Glide — Windmender",
   "usedFor": "Skill windmender.zephyr_glide: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Long gust, fabric flutter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-zephyr-glide.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Zephyr Glide — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Long gust, fabric flutter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windmender-zephyr-glide.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-cleansing-breeze",
   "category": "skills",
   "priority": "P2",
   "title": "Cleansing Breeze — Windmender",
   "usedFor": "Skill windmender.cleansing_breeze: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft breath of wind, wind-chime tinkle. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-cleansing-breeze.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Cleansing Breeze — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Soft breath of wind, wind-chime tinkle. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-windmender-cleansing-breeze.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-monsoon-blessing",
   "category": "skills",
   "priority": "P2",
   "title": "Monsoon Blessing — Windmender",
   "usedFor": "Skill windmender.monsoon_blessing: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Thunder roll, rain loop, opening gust boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-monsoon-blessing.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Monsoon Blessing — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Thunder roll, rain loop, opening gust boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windmender-monsoon-blessing.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-windmender-eye-of-the-storm",
   "category": "skills",
   "priority": "P2",
   "title": "Eye of the Storm — Windmender",
   "usedFor": "Skill windmender.eye_of_the_storm: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rising wind howl, fan snap, gust boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-windmender-eye-of-the-storm.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-reedsilk-fan.webp",
    "caption": "Eye of the Storm — Windmender (Reedsilk Fans; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Rising wind howl, fan snap, gust boom. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-windmender-eye-of-the-storm.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-moonring-toss",
   "category": "skills",
   "priority": "P2",
   "title": "Moonring Toss — Ringdancer",
   "usedFor": "Skill ringdancer.moonring_toss: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whirr, ting per bounce, catch chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-moonring-toss.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Moonring Toss — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Whirr, ting per bounce, catch chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-moonring-toss.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-orbit-ward",
   "category": "skills",
   "priority": "P2",
   "title": "Orbit Ward — Ringdancer",
   "usedFor": "Skill ringdancer.orbit_ward: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Continuous soft whirr loop with chime on hits. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-orbit-ward.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Orbit Ward — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Continuous soft whirr loop with chime on hits. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-orbit-ward.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-glass-crescent",
   "category": "skills",
   "priority": "P2",
   "title": "Glass Crescent — Ringdancer",
   "usedFor": "Skill ringdancer.glass_crescent: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Icy whistle, crystal tinks, return whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-glass-crescent.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Glass Crescent — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Icy whistle, crystal tinks, return whoosh. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-glass-crescent.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-ring-step",
   "category": "skills",
   "priority": "P2",
   "title": "Ring Step — Ringdancer",
   "usedFor": "Skill ringdancer.ring_step: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Throw whirr, shimmer blink, catch chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-ring-step.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Ring Step — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Throw whirr, shimmer blink, catch chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-ring-step.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-hovering-halo",
   "category": "skills",
   "priority": "P2",
   "title": "Hovering Halo — Ringdancer",
   "usedFor": "Skill ringdancer.hovering_halo: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Soft choral note, whirr. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-hovering-halo.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Hovering Halo — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Soft choral note, whirr. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-hovering-halo.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-ricochet-storm",
   "category": "skills",
   "priority": "P2",
   "title": "Ricochet Storm — Ringdancer",
   "usedFor": "Skill ringdancer.ricochet_storm: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Layered whirrs, dense ting cascade, final convergent chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-ricochet-storm.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Ricochet Storm — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Layered whirrs, dense ting cascade, final convergent chime. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-ricochet-storm.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ringdancer-eclipse-reckoning",
   "category": "skills",
   "priority": "P2",
   "title": "Eclipse Reckoning — Ringdancer",
   "usedFor": "Skill ringdancer.eclipse_reckoning: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Spinning metal whine, crash chime, icy crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ringdancer-eclipse-reckoning.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-bellring-chakram.webp",
    "caption": "Eclipse Reckoning — Ringdancer (Bellring Chakram; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Spinning metal whine, crash chime, icy crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ringdancer-eclipse-reckoning.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-staff-cascade",
   "category": "skills",
   "priority": "P2",
   "title": "Staff Cascade — Stormcaller",
   "usedFor": "Skill stormcaller.staff_cascade: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Wooden whooms, knock impacts, final crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-staff-cascade.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Staff Cascade — Stormcaller (Bellshade Staff; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Wooden whooms, knock impacts, final crackle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-staff-cascade.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-storm-circle",
   "category": "skills",
   "priority": "P2",
   "title": "Storm Circle — Stormcaller",
   "usedFor": "Skill stormcaller.storm_circle: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Charge whine, thunderclap, rolling rumble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-storm-circle.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/storm-circle.webp",
    "caption": "Storm Circle — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Charge whine, thunderclap, rolling rumble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-storm-circle.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-thunderclap-vault",
   "category": "skills",
   "priority": "P2",
   "title": "Thunderclap Vault — Stormcaller",
   "usedFor": "Skill stormcaller.thunderclap_vault: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Wooden flex, whoosh, thunderclap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-thunderclap-vault.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Thunderclap Vault — Stormcaller (Bellshade Staff; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Wooden flex, whoosh, thunderclap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-thunderclap-vault.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-arc-thread",
   "category": "skills",
   "priority": "P2",
   "title": "Arc Thread — Stormcaller",
   "usedFor": "Skill stormcaller.arc_thread: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Electric crack per jump, buzzing tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-arc-thread.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/arc-thread.webp",
    "caption": "Arc Thread — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Electric crack per jump, buzzing tail. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-arc-thread.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-storm-mantle",
   "category": "skills",
   "priority": "P2",
   "title": "Storm Mantle — Stormcaller",
   "usedFor": "Skill stormcaller.storm_mantle: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Electric hum loop + crackle bursts. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-storm-mantle.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Storm Mantle — Stormcaller (Bellshade Staff; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Electric hum loop + crackle bursts. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-storm-mantle.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-heavens-pillar",
   "category": "skills",
   "priority": "P2",
   "title": "Heaven's Pillar — Stormcaller",
   "usedFor": "Skill stormcaller.heavens_pillar: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Huge thunder strike, sustained crackling roar, final thunderclap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-heavens-pillar.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Heaven's Pillar — Stormcaller (Bellshade Staff; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Huge thunder strike, sustained crackling roar, final thunderclap. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-heavens-pillar.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-stormcaller-judgement-bolt",
   "category": "skills",
   "priority": "P2",
   "title": "Judgement Bolt — Stormcaller",
   "usedFor": "Skill stormcaller.judgement_bolt: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Charge whine, deafening crack, rolling thunder. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-stormcaller-judgement-bolt.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/bellshade-staff.webp",
    "caption": "Judgement Bolt — Stormcaller (Bellshade Staff; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Charge whine, deafening crack, rolling thunder. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-stormcaller-judgement-bolt.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-rime-lance",
   "category": "skills",
   "priority": "P2",
   "title": "Rime Lance — Frostweaver",
   "usedFor": "Skill frostweaver.rime_lance: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Crystal hiss, sharp crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-rime-lance.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Rime Lance — Frostweaver (Dewleaf Primer; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Crystal hiss, sharp crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-rime-lance.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-glass-shard",
   "category": "skills",
   "priority": "P2",
   "title": "Glass Shard — Frostweaver",
   "usedFor": "Skill frostweaver.glass_shard: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Crystal tink + whistle + shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-glass-shard.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/glass-shard.webp",
    "caption": "Glass Shard — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Crystal tink + whistle + shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-glass-shard.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-frost-bloom",
   "category": "skills",
   "priority": "P2",
   "title": "Frost Bloom — Frostweaver",
   "usedFor": "Skill frostweaver.frost_bloom: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Crackling growth of ice, chime, glassy freeze. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-frost-bloom.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Frost Bloom — Frostweaver (Dewleaf Primer; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Crackling growth of ice, chime, glassy freeze. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-frost-bloom.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-mirror-glide",
   "category": "skills",
   "priority": "P2",
   "title": "Mirror Glide — Frostweaver",
   "usedFor": "Skill frostweaver.mirror_glide: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Skating hiss, glass ring. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-mirror-glide.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Mirror Glide — Frostweaver (Dewleaf Primer; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Skating hiss, glass ring. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-mirror-glide.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-stillwater-seal",
   "category": "skills",
   "priority": "P2",
   "title": "Stillwater Seal — Frostweaver",
   "usedFor": "Skill frostweaver.stillwater_seal: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Deep water drop + ringing calm tone. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-stillwater-seal.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/stillwater-seal.webp",
    "caption": "Stillwater Seal — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Deep water drop + ringing calm tone. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-stillwater-seal.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-moonfrost-tempest",
   "category": "skills",
   "priority": "P2",
   "title": "Moonfrost Tempest — Frostweaver",
   "usedFor": "Skill frostweaver.moonfrost_tempest: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Howling wind loop, hail patter, final crystal crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-moonfrost-tempest.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Moonfrost Tempest — Frostweaver (Dewleaf Primer; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Howling wind loop, hail patter, final crystal crack. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-moonfrost-tempest.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-frostweaver-shatterpoint",
   "category": "skills",
   "priority": "P2",
   "title": "Shatterpoint — Frostweaver",
   "usedFor": "Skill frostweaver.shatterpoint: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Page tear, rising crystalline whine, shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-frostweaver-shatterpoint.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-dewleaf-primer.webp",
    "caption": "Shatterpoint — Frostweaver (Dewleaf Primer; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Page tear, rising crystalline whine, shatter. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-frostweaver-shatterpoint.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-censer-swing",
   "category": "skills",
   "priority": "P2",
   "title": "Censer Swing — Ashwarden",
   "usedFor": "Skill ashwarden.censer_swing: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Chain rattle, whoosh, bronze clank. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-censer-swing.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Censer Swing — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Chain rattle, whoosh, bronze clank. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-censer-swing.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-pyre-halo",
   "category": "skills",
   "priority": "P2",
   "title": "Pyre Halo — Ashwarden",
   "usedFor": "Skill ashwarden.pyre_halo: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Soft ignition, constant low crackle loop. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-pyre-halo.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Pyre Halo — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Soft ignition, constant low crackle loop. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-pyre-halo.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-thurible-flare",
   "category": "skills",
   "priority": "P2",
   "title": "Thurible Flare — Ashwarden",
   "usedFor": "Skill ashwarden.thurible_flare: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Bronze crash, fire boom, ringing. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-thurible-flare.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Thurible Flare — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Bronze crash, fire boom, ringing. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-thurible-flare.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-ashen-stride",
   "category": "skills",
   "priority": "P2",
   "title": "Ashen Stride — Ashwarden",
   "usedFor": "Skill ashwarden.ashen_stride: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Whoosh, chain jingle, sizzle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-ashen-stride.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Ashen Stride — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Whoosh, chain jingle, sizzle. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-ashen-stride.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-incense-of-valor",
   "category": "skills",
   "priority": "P2",
   "title": "Incense of Valor — Ashwarden",
   "usedFor": "Skill ashwarden.incense_of_valor: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Soft chime, gentle hush of smoke. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-incense-of-valor.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Incense of Valor — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Soft chime, gentle hush of smoke. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-incense-of-valor.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-smouldering-rite",
   "category": "skills",
   "priority": "P2",
   "title": "Smouldering Rite — Ashwarden",
   "usedFor": "Skill ashwarden.smouldering_rite: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rising chain whirr, roaring fire, deep crash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-smouldering-rite.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Smouldering Rite — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Rising chain whirr, roaring fire, deep crash. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-smouldering-rite.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-ashwarden-last-rites",
   "category": "skills",
   "priority": "P2",
   "title": "Last Rites — Ashwarden",
   "usedFor": "Skill ashwarden.last_rites: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Chain whirr rising, bronze crash, smouldering rumble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-ashwarden-last-rites.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/weapon-icons/art-wpn-beetlelamp-thurible.webp",
    "caption": "Last Rites — Ashwarden (Beetlelamp Thurible; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Chain whirr rising, bronze crash, smouldering rumble. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-ashwarden-last-rites.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-reed-sweep",
   "category": "skills",
   "priority": "P2",
   "title": "Reed Sweep — Oathkeeper",
   "usedFor": "Skill oathkeeper.reed_sweep: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Long polearm whoosh, cold chime on hit. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-reed-sweep.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/reed-sweep.webp",
    "caption": "Reed Sweep — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Long polearm whoosh, cold chime on hit. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-reed-sweep.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-moon-crescent",
   "category": "skills",
   "priority": "P2",
   "title": "Moon Crescent — Oathkeeper",
   "usedFor": "Skill oathkeeper.moon_crescent: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Cold whoosh, crystalline ring, frosty impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-moon-crescent.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Moon Crescent — Oathkeeper (Saltpiercer Glaive; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Cold whoosh, crystalline ring, frosty impacts. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-moon-crescent.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-bracepoint",
   "category": "skills",
   "priority": "P2",
   "title": "Bracepoint — Oathkeeper",
   "usedFor": "Skill oathkeeper.bracepoint: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Thrust whoosh + piercing ring. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-bracepoint.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/skills/bracepoint.webp",
    "caption": "Bracepoint — skill icon"
   },
   "command": "./tools/sfxgen --prompt \"Thrust whoosh + piercing ring. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-bracepoint.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-tidewalk",
   "category": "skills",
   "priority": "P2",
   "title": "Tidewalk — Oathkeeper",
   "usedFor": "Skill oathkeeper.tidewalk: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Rushing water whoosh, cold cut. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-tidewalk.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Tidewalk — Oathkeeper (Saltpiercer Glaive; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Rushing water whoosh, cold cut. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-tidewalk.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-oath-challenge",
   "category": "skills",
   "priority": "P2",
   "title": "Oath Challenge — Oathkeeper",
   "usedFor": "Skill oathkeeper.oath_challenge: signature layer, played with the weapon swish and impact layers.",
   "seconds": 2,
   "prompt": "Wooden haft thud, shouted vow, glassy barrier hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-oath-challenge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Oath Challenge — Oathkeeper (Saltpiercer Glaive; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Wooden haft thud, shouted vow, glassy barrier hum. Fantasy action-game skill sound, punchy and weighty, clear and uplifting. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 2 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-oath-challenge.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-falling-moon",
   "category": "skills",
   "priority": "P2",
   "title": "Falling Moon — Oathkeeper",
   "usedFor": "Skill oathkeeper.falling_moon: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Ethereal rising tone, massive cold impact with shatter layer. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-falling-moon.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Falling Moon — Oathkeeper (Saltpiercer Glaive; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Ethereal rising tone, massive cold impact with shatter layer. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-falling-moon.mp3"
  },
  {
   "variations": 2,
   "loop": false,
   "id": "sfx-skill-oathkeeper-oathfall",
   "category": "skills",
   "priority": "P2",
   "title": "Oathfall — Oathkeeper",
   "usedFor": "Skill oathkeeper.oathfall: signature layer, played with the weapon swish and impact layers.",
   "seconds": 1.8,
   "prompt": "Polearm whirl, heavy stab, ice crack, low vow chant. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.",
   "saveAs": "audio/source/skills/sfx-skill-oathkeeper-oathfall.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/icons/weapons/saltpiercer-spear.webp",
    "caption": "Oathfall — Oathkeeper (Saltpiercer Glaive; skill icon not painted yet)"
   },
   "command": "./tools/sfxgen --prompt \"Polearm whirl, heavy stab, ice crack, low vow chant. Fantasy action-game skill sound, punchy and weighty, readable in a crowd. Isolated sound effect, no music bed, no spoken words, clean start, natural tail.\" --seconds 1.8 --takes 2 --out audio/source/skills/sfx-skill-oathkeeper-oathfall.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-small-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "small wild animal (hare or fox) — aggro",
   "usedFor": "Dewhorn Hare, Reed Fox, Bellwhisker Jerboa.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-small-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/dewhorn-hare.webp",
    "caption": "Dewhorn Hare — quadruped small"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-small-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-small-death",
   "category": "monsters",
   "priority": "P2",
   "title": "small wild animal (hare or fox) — death",
   "usedFor": "Dewhorn Hare, Reed Fox, Bellwhisker Jerboa.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-small-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/dewhorn-hare.webp",
    "caption": "Dewhorn Hare — quadruped small"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a small wild animal (hare or fox). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-small-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-medium-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "medium beast (boar or jackal) — aggro",
   "usedFor": "Orchard Boar, Marsh Wolf, Duskfang Hyena, Stormquill Stalker.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-medium-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/orchard-boar.webp",
    "caption": "Orchard Boar — quadruped medium"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-medium-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-quadruped-medium-death",
   "category": "monsters",
   "priority": "P2",
   "title": "medium beast (boar or jackal) — death",
   "usedFor": "Orchard Boar, Marsh Wolf, Duskfang Hyena, Stormquill Stalker.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-quadruped-medium-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/orchard-boar.webp",
    "caption": "Orchard Boar — quadruped medium"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a medium beast (boar or jackal). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-quadruped-medium-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-beetle-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "large beetle with clicking mandibles — aggro",
   "usedFor": "Duneplate Beetle, Kilnback Scarab.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-beetle-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/duneplate-beetle.webp",
    "caption": "Duneplate Beetle — arthropod beetle"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-beetle-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-beetle-death",
   "category": "monsters",
   "priority": "P2",
   "title": "large beetle with clicking mandibles — death",
   "usedFor": "Duneplate Beetle, Kilnback Scarab.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-beetle-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/duneplate-beetle.webp",
    "caption": "Duneplate Beetle — arthropod beetle"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a large beetle with clicking mandibles. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-beetle-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-small-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "small lizard — aggro",
   "usedFor": "Reedscale Lizard, Siltspit Gecko.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-small-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/reedscale-lizard.webp",
    "caption": "Reedscale Lizard — reptile small"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-reptile-small-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-small-death",
   "category": "monsters",
   "priority": "P2",
   "title": "small lizard — death",
   "usedFor": "Reedscale Lizard, Siltspit Gecko.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-small-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/reedscale-lizard.webp",
    "caption": "Reedscale Lizard — reptile small"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a small lizard. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-reptile-small-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-scorpion-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "giant scorpion with rattling plates — aggro",
   "usedFor": "Clayclaw Scorpion, Basaltsting Scorpion.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-scorpion-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/clayclaw-scorpion.webp",
    "caption": "Clayclaw Scorpion — arthropod scorpion"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-scorpion-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-arthropod-scorpion-death",
   "category": "monsters",
   "priority": "P2",
   "title": "giant scorpion with rattling plates — death",
   "usedFor": "Clayclaw Scorpion, Basaltsting Scorpion.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-arthropod-scorpion-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/clayclaw-scorpion.webp",
    "caption": "Clayclaw Scorpion — arthropod scorpion"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a giant scorpion with rattling plates. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-arthropod-scorpion-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-serpent-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "large serpent — aggro",
   "usedFor": "Emberhorn Viper.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-serpent-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/emberhorn-viper.webp",
    "caption": "Emberhorn Viper — serpent"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-serpent-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-serpent-death",
   "category": "monsters",
   "priority": "P2",
   "title": "large serpent — death",
   "usedFor": "Emberhorn Viper.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-serpent-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/emberhorn-viper.webp",
    "caption": "Emberhorn Viper — serpent"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a large serpent. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-serpent-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-humanoid-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "desert bandit (non-verbal grunts only) — aggro",
   "usedFor": "Saltway Bandit, Ashroad Raider.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-humanoid-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/saltway-lancer.webp",
    "caption": "Saltway Bandit — humanoid"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-humanoid-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-humanoid-death",
   "category": "monsters",
   "priority": "P2",
   "title": "desert bandit (non-verbal grunts only) — death",
   "usedFor": "Saltway Bandit, Ashroad Raider.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-humanoid-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/saltway-lancer.webp",
    "caption": "Saltway Bandit — humanoid"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a desert bandit (non-verbal grunts only). Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-humanoid-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-shelled-quadruped-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "heavy shelled tortoise beast — aggro",
   "usedFor": "Brineback Tortoise, Ashroot Pangolin.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-shelled-quadruped-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/brineback-tortoise.webp",
    "caption": "Brineback Tortoise — shelled quadruped"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-shelled-quadruped-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-shelled-quadruped-death",
   "category": "monsters",
   "priority": "P2",
   "title": "heavy shelled tortoise beast — death",
   "usedFor": "Brineback Tortoise, Ashroot Pangolin.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-shelled-quadruped-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary-archive/brineback-tortoise.webp",
    "caption": "Brineback Tortoise — shelled quadruped"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a heavy shelled tortoise beast. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-shelled-quadruped-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-avian-small-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "desert bird of prey — aggro",
   "usedFor": "Stormwing Kestrel.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-avian-small-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/stormwing-kestrel.webp",
    "caption": "Stormwing Kestrel — avian small"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-avian-small-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-avian-small-death",
   "category": "monsters",
   "priority": "P2",
   "title": "desert bird of prey — death",
   "usedFor": "Stormwing Kestrel.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-avian-small-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/stormwing-kestrel.webp",
    "caption": "Stormwing Kestrel — avian small"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a desert bird of prey. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-avian-small-death.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-large-aggro",
   "category": "monsters",
   "priority": "P2",
   "title": "large armoured reptile — aggro",
   "usedFor": "Jadecrest Monitor.",
   "seconds": 1.2,
   "prompt": "Creature alert / aggro call, threatening of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-large-aggro.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/jadecrest-monitor.webp",
    "caption": "Jadecrest Monitor — reptile large"
   },
   "command": "./tools/sfxgen --prompt \"Creature alert / aggro call, threatening of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.2 --takes 3 --out audio/source/monsters/sfx-mob-reptile-large-aggro.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "sfx-mob-reptile-large-death",
   "category": "monsters",
   "priority": "P2",
   "title": "large armoured reptile — death",
   "usedFor": "Jadecrest Monitor.",
   "seconds": 1.6,
   "prompt": "Creature death cry that fades out of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.",
   "saveAs": "audio/source/monsters/sfx-mob-reptile-large-death.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/bestiary/jadecrest-monitor.webp",
    "caption": "Jadecrest Monitor — reptile large"
   },
   "command": "./tools/sfxgen --prompt \"Creature death cry that fades out of a large armoured reptile. Natural, not cartoonish. Isolated sound effect, no music, no voices, no reverb tail beyond 0.3 s, clean start.\" --seconds 1.6 --takes 3 --out audio/source/monsters/sfx-mob-reptile-large-death.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-reedwater-banks",
   "category": "ambience",
   "zone": "reedwater_banks",
   "priority": "P2",
   "title": "Ambience — Reedwater Banks",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Reedwater Banks (Reed beds and a three-arch canal bridge). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of reed beds beside a shallow canal: tall reeds swishing and rattling in the wind, gentle lapping and flowing water, frogs croaking softly in the distance, dragonfly and insect hum, a distant water bird, a faint water murmur under stone arches. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-reedwater-banks.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-reedwater-banks.webp",
    "caption": "Reedwater Banks — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of reed beds beside a shallow canal: tall reeds swishing and rattling in the wind, gentle lapping and flowing water, frogs croaking softly in the distance, dragonfly and insect hum, a distant water bird, a faint water murmur under stone arches. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-reedwater-banks.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-clay-cut",
   "category": "ambience",
   "zone": "clay_cut",
   "priority": "P2",
   "title": "Ambience — Clay Cut",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Clay Cut (Ochre quarry terraces and drained canal locks). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of a hot ochre clay quarry: dry hot wind across rock terraces, cicadas buzzing in the heat, loose gravel trickling down the slopes, faint irregular stone chipping and wooden crane creaks echoing off the quarry walls, an empty canal lock dripping slowly. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-clay-cut.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-clay-cut.webp",
    "caption": "Clay Cut — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of a hot ochre clay quarry: dry hot wind across rock terraces, cicadas buzzing in the heat, loose gravel trickling down the slopes, faint irregular stone chipping and wooden crane creaks echoing off the quarry walls, an empty canal lock dripping slowly. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-clay-cut.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-cinder-kilns",
   "category": "ambience",
   "zone": "cinder_kilns",
   "priority": "P2",
   "title": "Ambience — Cinder Kilns",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Cinder Kilns (Brick kilns, smoking chimneys and ash pits). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of an industrial brick-kiln field: deep low fire roar from many kilns, steady crackle and pop of embers, hissing steam and smoke vents, soft metal ticking as bricks cool, hot wind through tall chimneys, ash sliding in the pits. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-cinder-kilns.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-cinder-kilns.webp",
    "caption": "Cinder Kilns — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of an industrial brick-kiln field: deep low fire roar from many kilns, steady crackle and pop of embers, hissing steam and smoke vents, soft metal ticking as bricks cool, hot wind through tall chimneys, ash sliding in the pits. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-cinder-kilns.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-saltway-flats",
   "category": "ambience",
   "zone": "saltway_flats",
   "priority": "P2",
   "title": "Ambience — Saltway Flats",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Saltway Flats (Salt pans, flooded causeways and caravan windbreaks). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of wide open salt flats: steady dry wind sweeping across open ground, fine salt grains hissing and ticking over the crust, canvas windbreaks flapping softly, gentle lapping of shallow water on flooded causeways, faint distant caravan bells carried on the wind. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-saltway-flats.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-saltway-flats.webp",
    "caption": "Saltway Flats — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of wide open salt flats: steady dry wind sweeping across open ground, fine salt grains hissing and ticking over the crust, canvas windbreaks flapping softly, gentle lapping of shallow water on flooded causeways, faint distant caravan bells carried on the wind. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-saltway-flats.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-bellshade-court",
   "category": "ambience",
   "zone": "bellshade_court",
   "priority": "P2",
   "title": "Ambience — Bellshade Court",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Bellshade Court (Violet lanterns, silent bells and ruined shrine steps). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of a ruined temple court at violet dusk: soft wind moving through stone pillars and archways, faint wooden and bronze wind chimes, a low bronze bell hum swaying in the breeze, dusk crickets, lantern flames fluttering, small stones shifting on the shrine steps. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-bellshade-court.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-bellshade-court.webp",
    "caption": "Bellshade Court — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of a ruined temple court at violet dusk: soft wind moving through stone pillars and archways, faint wooden and bronze wind chimes, a low bronze bell hum swaying in the breeze, dusk crickets, lantern flames fluttering, small stones shifting on the shrine steps. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-bellshade-court.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-stormquill-ridge",
   "category": "ambience",
   "zone": "stormquill_ridge",
   "priority": "P2",
   "title": "Ambience — Stormquill Ridge",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Stormquill Ridge (Wind-cut ridges, copper lightning relics and kestrel roosts). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of an exposed ridge under a stormy overcast sky: strong gusting wind whistling over bare wind-cut rock, very distant soft rolling thunder, a faint electrical hum and crackle from copper relics, small loose stones rattling, distant kestrels calling softly. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-stormquill-ridge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-stormquill-ridge.webp",
    "caption": "Stormquill Ridge — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of an exposed ridge under a stormy overcast sky: strong gusting wind whistling over bare wind-cut rock, very distant soft rolling thunder, a faint electrical hum and crackle from copper relics, small loose stones rattling, distant kestrels calling softly. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-stormquill-ridge.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-ashroot-grove",
   "category": "ambience",
   "zone": "ashroot_grove",
   "priority": "P2",
   "title": "Ambience — Ashroot Grove",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Ashroot Grove (Blackened cedars, verdant roots and a lost caravan camp). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of a burned oasis grove: a soft ash-laden breeze through blackened cedars, gentle crackle of cooling embers, charred wood creaking and ticking, sparse insects and a distant night bird, light settling of ash and twigs. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-ashroot-grove.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-ashroot-grove.webp",
    "caption": "Ashroot Grove — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of a burned oasis grove: a soft ash-laden breeze through blackened cedars, gentle crackle of cooling embers, charred wood creaking and ticking, sparse insects and a distant night bird, light settling of ash and twigs. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-ashroot-grove.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-jade-seal-ruins",
   "category": "ambience",
   "zone": "jade_seal_ruins",
   "priority": "P2",
   "title": "Ambience — Jade Seal Ruins",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Environment bed for Jade Seal Ruins (Cracked jade courts and the sealed western trade gate). Ordinary outdoor travel has no music (ADR-026); engaged named boss themes are the exception.",
   "prompt": "Seamless looping ambience of ancient jade ruins: cold wind through cracked stone courts, soft glassy jade chimes ringing faintly and decaying, a deep low resonant hum from a sealed stone gate, sparse water drips echoing in empty halls, fine dust settling. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.",
   "saveAs": "audio/source/ambience/amb-jade-seal-ruins.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-jade-seal-ruins.webp",
    "caption": "Jade Seal Ruins — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping ambience of ancient jade ruins: cold wind through cracked stone courts, soft glassy jade chimes ringing faintly and decaying, a deep low resonant hum from a sealed stone gate, sparse water drips echoing in empty halls, fine dust settling. Even, steady texture with no standout one-off sound, so the 20-second loop is not noticeable.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-jade-seal-ruins.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-amber-gate-forge",
   "category": "ambience",
   "zone": "amber_gate",
   "priority": "P2",
   "title": "Spot emitter — Amber Gate: blacksmith forge",
   "usedFor": "Spot emitter on the Amber Gate landmark (blacksmith forge): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of a village blacksmith's forge: irregular hammer strikes on an anvil with a ringing metal tail, a bellows puffing, coal fire crackling and an occasional quenching hiss. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-amber-gate-forge.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-amber-gate.webp",
    "caption": "Amber Gate — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of a village blacksmith's forge: irregular hammer strikes on an anvil with a ringing metal tail, a bellows puffing, coal fire crackling and an occasional quenching hiss. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-amber-gate-forge.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-dewgrass-meadow-stream",
   "category": "ambience",
   "zone": "dewgrass_meadow",
   "priority": "P2",
   "title": "Spot emitter — Dewgrass Meadow: stream under the wicker bridge",
   "usedFor": "Spot emitter on the Dewgrass Meadow landmark (stream under the wicker bridge): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of a small clear stream trickling under a wicker footbridge: gentle water running over pebbles, soft bubbling, a faint creak of wet wicker and wood. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-dewgrass-meadow-stream.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-dewgrass-meadow.webp",
    "caption": "Dewgrass Meadow — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of a small clear stream trickling under a wicker footbridge: gentle water running over pebbles, soft bubbling, a faint creak of wet wicker and wood. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-dewgrass-meadow-stream.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-old-orchard-toll-sheds",
   "category": "ambience",
   "zone": "old_orchard",
   "priority": "P2",
   "title": "Spot emitter — Old Orchard: abandoned toll sheds",
   "usedFor": "Spot emitter on the Old Orchard landmark (abandoned toll sheds): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of abandoned wooden toll sheds in a light breeze: slow creaking boards, a loose shutter tapping, dry wind whistling through gaps, small leaves skittering. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-old-orchard-toll-sheds.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-old-orchard.webp",
    "caption": "Old Orchard — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of abandoned wooden toll sheds in a light breeze: slow creaking boards, a loose shutter tapping, dry wind whistling through gaps, small leaves skittering. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-old-orchard-toll-sheds.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-reedwater-banks-canal",
   "category": "ambience",
   "zone": "reedwater_banks",
   "priority": "P2",
   "title": "Spot emitter — Reedwater Banks: canal under the three-arch bridge",
   "usedFor": "Spot emitter on the Reedwater Banks landmark (canal under the three-arch bridge): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of canal water flowing under stone bridge arches: a smooth current, soft lapping against masonry, echoing drips under the arches, a few small splashes. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-reedwater-banks-canal.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-reedwater-banks.webp",
    "caption": "Reedwater Banks — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of canal water flowing under stone bridge arches: a smooth current, soft lapping against masonry, echoing drips under the arches, a few small splashes. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-reedwater-banks-canal.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-clay-cut-crane",
   "category": "ambience",
   "zone": "clay_cut",
   "priority": "P2",
   "title": "Spot emitter — Clay Cut: quarry crane",
   "usedFor": "Spot emitter on the Clay Cut landmark (quarry crane): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of an old wooden quarry crane in the wind: slow rope and pulley creaks, a swaying chain rattling softly, timber groaning, dry grit sifting down. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-clay-cut-crane.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-clay-cut.webp",
    "caption": "Clay Cut — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of an old wooden quarry crane in the wind: slow rope and pulley creaks, a swaying chain rattling softly, timber groaning, dry grit sifting down. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-clay-cut-crane.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-cinder-kilns-kiln",
   "category": "ambience",
   "zone": "cinder_kilns",
   "priority": "P2",
   "title": "Spot emitter — Cinder Kilns: burning kiln",
   "usedFor": "Spot emitter on the Cinder Kilns landmark (burning kiln): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of a brick kiln burning: a deep steady furnace roar, crackling and popping embers, hot air hissing up the chimney, small bricks ticking as they heat. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-cinder-kilns-kiln.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-cinder-kilns.webp",
    "caption": "Cinder Kilns — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of a brick kiln burning: a deep steady furnace roar, crackling and popping embers, hot air hissing up the chimney, small bricks ticking as they heat. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-cinder-kilns-kiln.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-saltway-flats-windbreak",
   "category": "ambience",
   "zone": "saltway_flats",
   "priority": "P2",
   "title": "Spot emitter — Saltway Flats: caravan windbreak",
   "usedFor": "Spot emitter on the Saltway Flats landmark (caravan windbreak): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of canvas caravan windbreaks in a steady desert wind: taut canvas flapping and snapping, rope and wooden pole creaks, fine salt grains hissing against the cloth. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-saltway-flats-windbreak.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-saltway-flats.webp",
    "caption": "Saltway Flats — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of canvas caravan windbreaks in a steady desert wind: taut canvas flapping and snapping, rope and wooden pole creaks, fine salt grains hissing against the cloth. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-saltway-flats-windbreak.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-bellshade-court-bells",
   "category": "ambience",
   "zone": "bellshade_court",
   "priority": "P2",
   "title": "Spot emitter — Bellshade Court: silent bells",
   "usedFor": "Spot emitter on the Bellshade Court landmark (silent bells): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of old bronze temple bells swaying silently in a light breeze: a faint bronze hum and rub, rope and wood creaks, tiny muted metal taps, soft wind through stone. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-bellshade-court-bells.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-bellshade-court.webp",
    "caption": "Bellshade Court — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of old bronze temple bells swaying silently in a light breeze: a faint bronze hum and rub, rope and wood creaks, tiny muted metal taps, soft wind through stone. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-bellshade-court-bells.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-stormquill-ridge-relic",
   "category": "ambience",
   "zone": "stormquill_ridge",
   "priority": "P2",
   "title": "Spot emitter — Stormquill Ridge: copper lightning relic",
   "usedFor": "Spot emitter on the Stormquill Ridge landmark (copper lightning relic): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of a copper lightning relic: a low electrical hum, faint crackling arcs and static sparks, a thin metallic ring in the wind. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-stormquill-ridge-relic.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-stormquill-ridge.webp",
    "caption": "Stormquill Ridge — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of a copper lightning relic: a low electrical hum, faint crackling arcs and static sparks, a thin metallic ring in the wind. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-stormquill-ridge-relic.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-ashroot-grove-camp",
   "category": "ambience",
   "zone": "ashroot_grove",
   "priority": "P2",
   "title": "Spot emitter — Ashroot Grove: lost caravan camp embers",
   "usedFor": "Spot emitter on the Ashroot Grove landmark (lost caravan camp embers): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of the embers of an abandoned caravan campfire: a soft crackle and pops of dying coals, gentle ash settling, a charred log creaking. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-ashroot-grove-camp.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-ashroot-grove.webp",
    "caption": "Ashroot Grove — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of the embers of an abandoned caravan campfire: a soft crackle and pops of dying coals, gentle ash settling, a charred log creaking. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-ashroot-grove-camp.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-jade-seal-ruins-gate",
   "category": "ambience",
   "zone": "jade_seal_ruins",
   "priority": "P2",
   "title": "Spot emitter — Jade Seal Ruins: sealed western gate",
   "usedFor": "Spot emitter on the Jade Seal Ruins landmark (sealed western gate): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of an ancient sealed stone gate: a deep slow resonant hum from the stone, faint glassy jade ringing that decays, a cold draft whistling through cracks, sparse echoing drips. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-jade-seal-ruins-gate.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-jade-seal-ruins.webp",
    "caption": "Jade Seal Ruins — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of an ancient sealed stone gate: a deep slow resonant hum from the stone, faint glassy jade ringing that decays, a cold draft whistling through cracks, sparse echoing drips. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-jade-seal-ruins-gate.mp3"
  },
  {
   "variations": 1,
   "loop": true,
   "id": "amb-caravan-crown-arena-wheels",
   "category": "ambience",
   "zone": "caravan_crown_arena",
   "priority": "P2",
   "title": "Spot emitter — Caravan Crown Arena: abandoned wagon wheels",
   "usedFor": "Spot emitter on the Caravan Crown Arena landmark (abandoned wagon wheels): a positional loop placed on the prop with distance falloff, played over the area bed.",
   "seconds": 20,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "prompt": "Seamless looping close-up of abandoned wagon wheels in a dust wind: slow wooden wheel creaks, axle groans, loose spokes knocking lightly, sand hissing against timber. Close, dry and steady with no standout one-off sound, steady level for looping.",
   "saveAs": "audio/source/ambience/amb-caravan-crown-arena-wheels.mp3",
   "takes": 1,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-caravan-crown-arena.webp",
    "caption": "Caravan Crown Arena — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Seamless looping close-up of abandoned wagon wheels in a dust wind: slow wooden wheel creaks, axle groans, loose spokes knocking lightly, sand hissing against timber. Close, dry and steady with no standout one-off sound, steady level for looping.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 20 --loop --out audio/source/ambience/amb-caravan-crown-arena-wheels.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-amber-gate",
   "category": "accents",
   "zone": "amber_gate",
   "priority": "P2",
   "title": "Ambient accent — Amber Gate: bell tower toll",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Amber Gate bed (every 15–45 s, never the same take twice running, ±6% pitch).",
   "prompt": "Isolated single ambient sound: a single soft bronze bell toll from a distant tower, slow natural fade. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-amber-gate.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-amber-gate.webp",
    "caption": "Amber Gate — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a single soft bronze bell toll from a distant tower, slow natural fade. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, clear spoken words, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-amber-gate.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-dewgrass-meadow",
   "category": "accents",
   "zone": "dewgrass_meadow",
   "priority": "P2",
   "title": "Ambient accent — Dewgrass Meadow: distant bird",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Dewgrass Meadow bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a small bird calling twice from far away across a quiet meadow. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-dewgrass-meadow.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-dewgrass-meadow.webp",
    "caption": "Dewgrass Meadow — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a small bird calling twice from far away across a quiet meadow. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-dewgrass-meadow.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-old-orchard",
   "category": "accents",
   "zone": "old_orchard",
   "priority": "P2",
   "title": "Ambient accent — Old Orchard: woodpecker",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Old Orchard bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a woodpecker tapping a short burst on a distant tree, then silence. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-old-orchard.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-old-orchard.webp",
    "caption": "Old Orchard — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a woodpecker tapping a short burst on a distant tree, then silence. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-old-orchard.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-reedwater-banks",
   "category": "accents",
   "zone": "reedwater_banks",
   "priority": "P2",
   "title": "Ambient accent — Reedwater Banks: frog and splash",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Reedwater Banks bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a frog croak followed by a small splash of a water bird in reeds. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-reedwater-banks.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-reedwater-banks.webp",
    "caption": "Reedwater Banks — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a frog croak followed by a small splash of a water bird in reeds. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-reedwater-banks.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-clay-cut",
   "category": "accents",
   "zone": "clay_cut",
   "priority": "P2",
   "title": "Ambient accent — Clay Cut: gravel slide",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Clay Cut bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a small handful of loose gravel and stones tumbling down a quarry slope. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-clay-cut.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-clay-cut.webp",
    "caption": "Clay Cut — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a small handful of loose gravel and stones tumbling down a quarry slope. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-clay-cut.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-cinder-kilns",
   "category": "accents",
   "zone": "cinder_kilns",
   "priority": "P2",
   "title": "Ambient accent — Cinder Kilns: ember pop and clank",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Cinder Kilns bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a soft ember pop and a dull distant metallic clank from a kiln. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-cinder-kilns.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-cinder-kilns.webp",
    "caption": "Cinder Kilns — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a soft ember pop and a dull distant metallic clank from a kiln. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-cinder-kilns.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-saltway-flats",
   "category": "accents",
   "zone": "saltway_flats",
   "priority": "P2",
   "title": "Ambient accent — Saltway Flats: wind gust",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Saltway Flats bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a brief gust of dry wind snapping a canvas windbreak, with faint caravan bells. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-saltway-flats.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-saltway-flats.webp",
    "caption": "Saltway Flats — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a brief gust of dry wind snapping a canvas windbreak, with faint caravan bells. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-saltway-flats.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-bellshade-court",
   "category": "accents",
   "zone": "bellshade_court",
   "priority": "P2",
   "title": "Ambient accent — Bellshade Court: wind chime",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Bellshade Court bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a single faint temple wind chime ringing once and fading in the breeze. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-bellshade-court.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-bellshade-court.webp",
    "caption": "Bellshade Court — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a single faint temple wind chime ringing once and fading in the breeze. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-bellshade-court.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-stormquill-ridge",
   "category": "accents",
   "zone": "stormquill_ridge",
   "priority": "P2",
   "title": "Ambient accent — Stormquill Ridge: distant thunder",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Stormquill Ridge bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a soft low distant thunder roll rumbling far away. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-stormquill-ridge.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-stormquill-ridge.webp",
    "caption": "Stormquill Ridge — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a soft low distant thunder roll rumbling far away. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-stormquill-ridge.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-ashroot-grove",
   "category": "accents",
   "zone": "ashroot_grove",
   "priority": "P2",
   "title": "Ambient accent — Ashroot Grove: branch creak",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Ashroot Grove bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a charred branch creaking and a small fall of ash and twigs. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-ashroot-grove.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-ashroot-grove.webp",
    "caption": "Ashroot Grove — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a charred branch creaking and a small fall of ash and twigs. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-ashroot-grove.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-jade-seal-ruins",
   "category": "accents",
   "zone": "jade_seal_ruins",
   "priority": "P2",
   "title": "Ambient accent — Jade Seal Ruins: jade chime",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Jade Seal Ruins bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a single glassy jade chime ringing once with a long fading tail, then a distant drip. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-jade-seal-ruins.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-jade-seal-ruins.webp",
    "caption": "Jade Seal Ruins — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a single glassy jade chime ringing once with a long fading tail, then a distant drip. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-jade-seal-ruins.mp3"
  },
  {
   "variations": 3,
   "loop": false,
   "id": "acc-caravan-crown-arena",
   "category": "accents",
   "zone": "caravan_crown_arena",
   "priority": "P2",
   "title": "Ambient accent — Caravan Crown Arena: wheel creak",
   "seconds": 5,
   "negativePrompt": "music, melody, singing, choir, voices, speech, drums, horns, sudden loud events",
   "usedFor": "Random one-shot over the Caravan Crown Arena bed (every 15–45 s, never the same take twice running, ±6% pitch). No music outside towns (ADR-026).",
   "prompt": "Isolated single ambient sound: a slow wooden wagon wheel creak with a gust of sand across packed earth. Natural, quiet and sparse, clean start, then silence.",
   "saveAs": "audio/source/accents/acc-caravan-crown-arena.mp3",
   "takes": 3,
   "status": "done",
   "art": {
    "src": "/art/new/loading-screens/load-caravan-crown-arena.webp",
    "caption": "Caravan Crown Arena — loading screen"
   },
   "command": "./tools/sfxgen --prompt \"Isolated single ambient sound: a slow wooden wagon wheel creak with a gust of sand across packed earth. Natural, quiet and sparse, clean start, then silence.\" --negative-prompt \"music, melody, singing, choir, voices, speech, drums, horns, sudden loud events\" --seconds 5 --takes 3 --out audio/source/accents/acc-caravan-crown-arena.mp3"
  }
 ]
}
