I know its early days, but please comment the public subs and or even use <code></code> so that one can just copy the code and paste on the IDE. It's always easy to look at a sub name and know what it does. Now, one has to study the whole sub to know what it does.



, besides your sub names are rather encryptic,
I understand the need to be set on using Lists for almost everything, as indicated in the class. In any HTML element, remember, the attributes names are unique, the most basic ones being
id,
style (JSON like) and
class across all elements where necessary.
I just think using lists for what a map variable can do quickly is much more sensible (in the case of your attributes build up process), you transverse once instead of twice, In this case, 1st being the list, then being the map inside the list. Is the extra code really necessary? Why not just use a map variable, once and thus have 1 loop instead of 2 loops for building your attributes.
I'm sorry I'm really trying to understand that part, perhaps I'm still missing something.