Menus aren't as complicated as dialogs.
There are no fonts, no positioning,
it's just a list of menu items and flags.
Well, okay, there's the recursive part,
when a menu has a submenu.
But that's really the only wrinkle.
Most of it is pretty boring.
The 16-bit classic menu template begins with the following header:
struct MENUHEADER16 {
...