Best widget to auto-populate a grid of buttons?

I have a script that will return an object of key-value pairs

{
  'Selected Tracks to new Folder and Add Group Channel': 0,
  'Duplicate Selected Tracks without Data': 1,
  'Zoom to Project': 2,
// etc...
}

I want to set the widget's value to a custom address OSC{/customAddress} which could update and auto-populate the widget grid with the button(s) for each key-value pair in the returned object.

receive("/customAddress", object)

I'm just wondering what the best widget to use for this is. I thought of a switch, but my dilemma is I'd like to be able to click on a button multiple times, and a switch doesn't have that ability.

I'm confused about which widget is appropriate for my use case, or does it not exist?

Cheers,
DMDComposer