Plugin Architecture
Engines are plugins. They run inside the managed TTS Server, behind one small contract, so Studio never has to know an engine's internals.
- Engines are discovered as folder plugins.
- They run in the TTS Server, isolated from the app.
- Behavior is declared, not hard-coded into Studio.
- Built-in and community engines use the same path.
Folder plugins & discovery
An engine is a self-contained folder. Studio discovers engines in the engines directory, validates each manifest, and registers it. Built-in engines go through the exact same discovery as community ones.
Studio-owns vs plugin-owns
Studio owns persistence and orchestration; the plugin owns synthesis. A plugin must not import app internals or write outside its folder and the requested output path. This keeps engines portable and safe.
The declared-hook model
What an engine can do is declared in its manifest. Chunk limits, progress parsing, resources, and settings come from metadata, so adding an engine never means adding engine-ID branches across the app. See manifest.json Reference and Engine Contract & Hooks.