Sound Effects
=============

Story sound effect paths resolve relative to this directory.

Use a sound effect story tag:

```text
#sfx[squeaky-door.ogg]
#sfx[church-bells.ogg](max=8 fade fade-duration=2)
The old door opens into the dark.
```

The server parses the tag into a structured `StoryTag`. The tag is never sent to the client as display text or TTS input.

Supported browser-friendly formats are recommended: `.ogg`, `.mp3`, and `.wav`. Keep files small enough for responsive preload.

Sound effect loudness is controlled by the master volume and sound effects volume sliders in the options menu.

Supported timing/end options:

- `max=`, `duration=`, `max-duration=`, `limit=`, `stop-after=`: stop after this many seconds.
- `fade-after=`: fade after this many seconds.
- bare seconds such as `4s`: shorthand for a maximum duration.
- `fade`, `fadeout`, `fade-out`, or `mode=fade`: fade out when the limit is reached.
- `stop`, `cut`, `halt`, or `mode=stop`: stop immediately when the limit is reached.
- `fade-duration=` or `fade-time=`: fade length in seconds.

Document third-party source and license information here or next to the file.

Current assets:

- `squeaky-door.ogg`: Wikimedia Commons, "Squeaky door.ogg", sourced from PDSounds and marked public domain.
- `steam-whistle.ogg`: Wikimedia Commons, "WWS SteamWhistle.ogg" by Work With Sounds / Konrad Gutkowski and Julian Blaschke, Creative Commons Attribution 4.0 International.
- `horse-neigh.ogg`: Wikimedia Commons, "Wiehern.ogg" by Hue, released into the public domain by the author.
- `church-bells.ogg`: Wikimedia Commons, "Churchbells.ogg" by Natalie, sourced from PDSounds and released into the public domain.
