Ok, back to english language.
In the expression $list(,,) the comma character has in fact not the meaning of a separator but it is really a placeholder.
The first comma is replaced by tag name and the second comma is replaced by tag value.
The function only works when there are coded two comma characters, no one less, no one more.
It seems so that you replace the comma placeholders by your internal processing with the actually contents.
Belonging to the underlying context of your script language this is totally weird functionality.
Concrete example: Output of tagvalue is wanted to be limited to 10 characters ...
... this does not work, because there are three comma characters in the expression,
and no one can imagine what exception would be thrown when using such an expression at other places in Mp3tag.
Or look at this wild thing, that gives really readable output: $list(,$left,(10))
So what can we do to get something of a tagdump function seamlessly integrated into the global Mp3tag context?
I think it should simply read like 'foreach tag do' ...
... with limitation for the case, if %_tag_value% contains binary data, then output should be suppressed or replaced by a special symbol [#BINDATA#] or something else,
... with ability to set %_tag_mask% to something like 'ARTIST*', so it should be a function $SetTagMask('ARTIST*').