Features:
- Compact solution in just one JavaScript file
- Simple binding of the menu items with the script functions via subscription
- Both horizontal two-level menu and context menu in one constructor
- Loose binding between menus and command sets: different menus can handle the same command set object, and several command set objects per menu can subscribe
- Menu item subscriptions return item handlers used to control menu item text, enable and disable them
- Checkboxes and radio buttons controlled by the script using item handlers
- Automatic keyboard shortcuts
- Flexible styling
- Error handling helps to maintain the consistency of the menu actions
- Self-documented API