It seems like you're setting up a convention here where tags[0] is the main tag and tags[1:] are other tags just for info. Is that correct?

I would argue that that's not a great convention. Seems better to split them out as different things rather than store them together like that.

Also looks like you changed like 8 lines in an identical way—is there a way you could have done that by adding a single line somewhere else, like wherever `parseField` it's called? Not for the sake of having a cleaner diff but just for the sake of having things look like what they are.