Implement Typed Tags
With the current JSON model the type of a tag is left up to the user. This can result in invalid values being passed around. The system will be more powerful with strongly typed tags.
The only downside to this is having to (eventually) provide default tags and values.