Nice. A quick way that I've used is a google slide setup with colored text boxes, but you don't get a nice data array back like you do here.
I noticed that "Export results" only outputs the first unnamed group if the user doesn't name all the groups. Looks like it try's to use the empty string as a key multiple times. You could instead have it be {[{name: "mygroup", values: []}]} or something where it doesn't matter if you have duplicate or empty group names. Or show an error message to the user on empty/duplicates. Can't trust participants to always complete the task correctly.
I noticed that "Export results" only outputs the first unnamed group if the user doesn't name all the groups. Looks like it try's to use the empty string as a key multiple times. You could instead have it be {[{name: "mygroup", values: []}]} or something where it doesn't matter if you have duplicate or empty group names. Or show an error message to the user on empty/duplicates. Can't trust participants to always complete the task correctly.