Skip to content

Menu role model: semantic roles over physical domains #111

Description

@ScottMorris

Part of the rich menu editor epic. Plan: docs/rich-menu-editor-plan.md §2 decision 3. Lands with whichever of Slice A / Slice C ships first.

Menus carry semantic intent; physical placement becomes a backend mapping.

  • MenuRole enum (root, title-select, chapter, setup, extras, popup) on MenuDocument
  • Add generatorKind (or per-generator ids) to MenuGenerationMeta — today every generator writes generatorId: 'menu-workspace', which cannot discriminate chapter vs setup menus
  • Role inference for existing projects on load: enriched metadata → interaction-content detection (PlayChapter → chapter, SetAudioStream/SetSubtitleStream → setup) → entry-menu-only RootTitleSelect fallback; user-reassignable afterwards
  • DVD backend maps role → MenuDomain (VMGM/VTSM placement)
  • Menu map and generators group by role; terminology map renders role names per format
  • popup authorable only when the active FormatProfile supports it (none until BD)

Reconciles with docs/blu-ray-integration-plan.md §1.7: BdMenuType becomes the BD backend's mapping of role, as MenuDomain is DVD's.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendRust backend, commands, and native runtime behaviourmenusMenu layout, navigation, and button behaviourproject-modelProject schema, validation, and domain model changes

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions