PopupMenuButton vs PopupMenu, itemBuilder contracts, onSelected and onCanceled, initialValue checks, and the menu-button pattern desktop apps expect.