Looks good to me! GPM is pretty simple logic for the most part.
Can you show multiple icons? (My inexperience shows.

) If so, you will want to process each list_item() in turn and add it.
I don't believe there is a builtin way to iterate over anything in GPM, though a custom function could do it.