//! Headless-Kern: alles, was läuft, ohne dass ein Frontend existiert.
//!
//! Schicht-Regel: `engine` kennt keine Frontends. Nach außen kommuniziert
//! der Kern nur über Rückgabewerte (`StoryState`, Tags) und die
//! [`game::Action`]-Queue — niemals über Aufrufe in Frontend-Module.
//! Frontends (CLI-REPL jetzt, Renderer später) sind Geschwister-Module,
//! die `engine` konsumieren; die Richtung kehrt sich nie um.
//!
//! Interner Abhängigkeitsgraph (azyklisch, Pfeil = „benutzt"):
//!
//!   kv ← ink ← game ← story_ctrl ← signals
//!              ↑           ↑
//!              kv        assets
//!
//! Bitte azyklisch halten: neue Querverbindungen lieber über Rückgabewerte
//! an den Aufrufer lösen (so wie story_ctrl Tags zurückgibt, statt selbst
//! signals::dispatch zu rufen).
//!
//! `map` und `tga` sind reine Decoder (Bytes → owned Daten, hängen an
//! nichts) — die geteilte Heimat für Format-Dekodierung, die jedes Frontend
//! per Pull konsumiert. `map` ist zugleich der Anfang des headless
//! Datenmodells (Phase 2 des Renderer-Plans).

pub mod assets;
pub mod game;
pub mod ink;
pub mod kv;
pub mod map;
pub mod signals;
pub mod story_ctrl;
pub mod tga;
