Skip to content

Automated Menu Generation & Pagination Engine #20

@ScottMorris

Description

@ScottMorris

Summary

Implement the automated generation engine for Spindle's new scene-driven menu system. This extension enables data-driven creation of complex menu sets from project metadata.

User-facing changes

One-click generation: Add automated tools to create Chapter Grids, Title Shelves, and Track Menus directly from the authored document view.
Auto-pagination: Support multi-page 'Menu Sets' when project data exceeds the physical hardware limits or visual budget.
Theme selection: Allow users to choose from visual presets (Classic Grid, Cinematic List) during generation.
Interactive navigation: Automatically wire directional navigation and page-turn actions (Next/Back) for generated nodes.

Workflow runtime

Generation Heuristics (Backend): Add Rust-side logic to slice project entities (Chapters, Titles) into paginated groups based on target budgets.
Scene Spawning (Frontend): Implement store actions to dynamically create MenuDocument objects and populate them with standard SceneNode variants.
Data Binding: Establish a persistent link between generated nodes and source metadata to support safe regeneration.
Pagination Mandate: Enforce a hard budget of 12-18 buttons per page to ensure technical compliance and UX legibility.

Documentation

Spec update: Expand Spindle_Menu_System_Spec.md to define the automated generation meta-model.
User guidance: Add documentation for 'Menu Sets' and pagination behaviour in the menu authoring guide.

Test plan

[ ] Regression: Verify that manually authored menus remain unaffected by the generation engine.
[ ] Pagination proof: Generate a Chapter Menu for a title with 30+ chapters — verify multiple pages are created.
[ ] Navigation integrity: Verify that 'Next' and 'Back' buttons correctly route between paginated scenes in the remote simulator.
[ ] Persistence: Verify that generated menu metadata round-trips through the Rust serializer without data loss.
[ ] Hardware limits: Verify that the generator prevents creation of menus exceeding 36 buttons (DVD limit).

🤖 Generated with Gemini CLI

Metadata

Metadata

Assignees

No one assigned

    Labels

    menusMenu layout, navigation, and button behaviour

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions