17. Architecture Glossary
Shared vocabulary keeps architecture discussions short and less mysterious.
Core Terms
Section titled “Core Terms”| Term | Meaning |
|---|---|
PrototypeRuntime |
The live Macroquad runtime owner for the playable prototype. |
| pure module | Code that can run without Macroquad rendering/window/audio state. |
| runtime boundary | The point where pure rules become rendered/audio/input behavior. |
| data-driven | Content or tuning comes from Assets//Mods/, not hardcoded Rust. |
| graceful degradation | Broken/missing content reports a problem and falls back where practical. |
| mod layer | A selectable Mods/<mod_id> content overlay with a manifest. |
data.pak |
Packed moddable runtime content for release builds. |
identity.pak |
Separate protected canonical studio media pack. |
GameCommand |
Shared request shape used by Lua, choreography, data, and runtime application. |
| run event journal | Structured record of run events used by debug, Lua hooks, tests, and future tooling. |
| ECS lifecycle bridge | Adapter that mirrors runtime enemy lifecycle into EcsWorld. |
| scene project | A choreography TOML file under Assets/Data/scenes. |
Flow Terms
Section titled “Flow Terms”flowchart LR content[Content] loader[Loader] model[Model] command[Command] apply[Runtime apply] event[Event]
content --> loader --> model --> command --> apply --> event| Term | Meaning |
|---|---|
| loader | Reads loose/packed text and produces typed data. |
| model | Rust struct/enums that represent a content schema or game rule. |
| command buffer | List of GameCommand values returned by a script or data-authored action. |
| apply layer | Runtime code that safely mutates live state from commands/intents. |
| intent | Choreography output describing what should happen without owning rendering. |
Contributor Shorthand
Section titled “Contributor Shorthand”| Phrase | Usually means |
|---|---|
| “move it to data” | Add or use a TOML/YAML/Lua/choreography surface instead of hardcoding. |
| “keep it pure” | Put deterministic logic in src/game, src/data, or src/ui without Macroquad. |
| “runtime adapter” | Thin code that turns pure output into Macroquad drawing/audio/state changes. |
| “pack discoverable” | asset_pack --dry-run --list includes the runtime asset. |
| “mod-checkable” | mod_check can catch bad ids/ranges/schema before launch. |
| “single engine” | Extend the established system instead of adding a parallel mechanism. |
State Terms
Section titled “State Terms”flowchart TB content[Content defaults] settings[User settings] run[Run save] account[Account progression] modmeta[Mod metadata]
content --> run settings --> run modmeta --> run account --> run| Term | Meaning |
|---|---|
| content default | Version-controlled value in Assets/. |
| user setting | Player-edited setting persisted outside Assets/. |
| run save | Snapshot of the current run/mode/profile. |
| account progression | Long-term progression, inventory, and unlock state. |
| content namespace | Save metadata identifying active mod content context. |