Hi K,
I'm not sure if this is what you were exactly asking for, but it may be tailored for your situation.
I wanted to make a dynamically created set of choices in an adaptive card and get a user response.
This is how I did it.
Loop through list items to get the data I wanted, then for each item verify that it is correct (for me I wanted to make sure I didn't collect any that had missing information so I checked for "null" value and if it was null then do nothing. If Flow found a value that should be included then append to a string variable code like this:
Then after looping through all the values I used a Compose (substring(variable), 1) to remove the leading "," and that left me with valid JSON to insert into the choices section of the adaptive card.
Hope that helps, though you may already have figured it out.
Regards,
Paul