I think the "entity_tags must be a list of strings" validation is repeated, unless i'm failing to miss a difference. 

nice use of proc-as-hash-keys though :-)