Looking at that it seems like you could reduce the spec complexity by defining a single flexible multi-tag system with "author created" and "attached tags" added by other users as events.