//! 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. //! //! Interner Abhängigkeitsgraph (azyklisch halten, Pfeil = „benutzt"): //! //! kv ← ink ← game ← story_ctrl ← signals //! ↑ ↑ //! kv assets //! //! Neue Querverbindungen lieber über Rückgabewerte an den Aufrufer lösen — //! so wie story_ctrl Tags zurückgibt, statt selbst `signals::dispatch` zu //! rufen. //! //! `gltf`, `tga` und `wav` sind reine Decoder (Bytes → owned Daten); `gltf` //! ist DER 3D-Pfad und produziert das `model::Model`, den Vertrag zwischen //! Loader und seinen Konsumenten (collision, trigger, audio, render::props). //! `audio` ist die Emitter-Logik zum Frontend-Treiber render::audio, `player` //! die First-Person-Physik auf der Welt aus `collision`. Post-Effekte kennt //! der Kern nur als `game::Action::SetPost` — die Kette lebt in render::post. pub mod assets; pub mod audio; pub mod collision; pub mod game; pub mod gltf; pub mod ink; pub mod kv; pub mod model; pub mod player; pub mod signals; pub mod story_ctrl; pub mod tga; pub mod trigger; pub mod wav;