# lib-management.launcher Module-discovery and module-switch entry. Lists available modules from the configured modules-dir and launches the selected one via `engine.switch_module`. Typical entry point: `--module=lib-management.launcher` boots into a chooser screen rather than directly into a game. **Version:** 0.1.0 **Module-ID:** lib-management.launcher **Requires:** lib-core.input v>=0.4.0 **Tags:** launcher, menu, system, navigation ## Topology ```mermaid graph LR this["lib-management.launcher"] lib_core_input["lib-core.input"] this --> lib_core_input engine["engine.*"] this --> engine ``` ## Controls - **Mouse-Left**: Select a module-row in the left list to show its detail; click Launch in the detail panel to launch it; carousel arrows; confirm/cancel in the modals. - **Mouse-Wheel**: Scroll the panel under the cursor — the module list (left) or the detail content (right). Detail content (description + dependencies) scrolls between the fixed hero strip and the fixed launch button. - **Enter**: Confirm quit when the quit-modal is open. - **Escape**: Open the quit-modal from the chooser; cancel the conflict/quit-modal when open. ## Demonstrates - `engine.module.list` discovery of installed modules from the modules-dir. - `engine.switch_module` runtime swap from the launcher to the selected module. - Master-detail UI: left list shows each module's **name** with a small genre-**tags** subline (from `manifest.launcher.md`); right panel shows hero carousel, rendered-markdown description, and per-dependency status. - Scrollable panels via `engine.render.begin_view`/`end_view` (scissor-clipped) driven by `engine.input.get_mouse_wheel`, with inline scrollbars. - Simple text + rect rendering via `engine.render` for the chooser UI. - Input-action binding through `lib-core.input` (`ui_click`, `ui_back`, `ui_confirm`). - Modal-state FSM (chooser <-> quit/conflict-modal) factored into a sibling `fsm.lua` loaded via `engine.module.dir_of`. ## References - meta/docs/architecture/module-lifecycle.md - meta/docs/architecture/host-app.md - meta/docs/superpowers/specs/2026-05-14-launcher-design.md