Menu specification (add as required):
- It should be possible for an extension to register a menu item in a certain menu without any knowledge of how the menu is rendered.
- A menu can be enabled in a certain mode or disabled in a certain mode e.g. AMC
- A menu can have completely different contents in a given mode e.g. contributions might be in left menu on stable but in a new user menu that shows on hover in AMC mode
- Editors can update URIs of menu items e.g. On Commons, Special:Random can be replaced with Special:Random/file (see T188697)
- A menu itself be made of multiple menus e.g. left hamburger navigation has 4 menus right now in stable
- A menu uses a mustache template for rendering so that it can also be used on the client.
- Menus should work without JS
Outcome
Write up a proposal for how we want to manage menus in future.
Explain the challenges we face to get there
Sign off steps
Do we need to create any tasks to capture the follow up work?
Should this task evolve into an epic?