Menu specification (add as required):
[x] 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.
[x] A menu can be enabled in a certain mode or disabled in a certain mode e.g. AMC
[x] 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)
[x] A menu itself be made of multiple menus e.g. left hamburger navigation has 4 menus right now in stable
[x] A menu uses a mustache template for rendering so that it can also be used on the client.
[x] Menus should work without JS
[] A menu can be converted to a JSON of template properties so that it can be rendered by JavaScript via Mustache
{F28041164}
= 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?