This dependency between these similar interfaces is logical but I think the shared code should be included in another module, maybe just in mod_admin?
The mod_menu is quite some code, and templates, that is not depending on anything else.
I prefer strongly to keep it separate.
As mod_menu isn't blocking anything, just adding functionality, we can add a dependency on 'menu' and add 'menu' as a provided service to mod_menu.
In that way you can still add other menu code, if you want to.
Well, I agree with arjan here, that it's somewhat backwards that mod_admin_category relies on functionality provided by mod_menu: https://github.com/zotonic/zotonic/blob/master/modules/mod_admin_category/templates/_admin_category_sorter.tpl#L6
Wouldn't it be better to factor out the generic sorting code in mod_menu to a common module (why not mod_base? so it can be used from any site as well)?
Then it would be mod_admin_menu
mod_base holds already a lot of code, and I think it should gear primarily to support the anonymous-user-visiting-a-site use-case.
Ok, it makes sense to keep mod_base as slim as possible.
mod_admin_category: Add dependency to mod_menu
And update documentation which explains this dependency.