Actions work well.

Actions now convert to and from JSON for the data field, and is a popup
of menus for the ID field, which is named in the UI “submenu” because
that is its function. The ID field is compatible with the existing
MazeView schema, storing the key for the menu, rather than the name.