User-defined <type>s want to extend the schema with new (javascript) classes (that model the type) but in a different dimension than <class>es do. This has caused me to need to disentangle ViewSchema from ClassModel so that I can re-use ClassModel for both kinds of classes and extend either the schema's tags or types. The disentangling mostly involves moving a lot of methods that are in ViewSchema (that take an element as an argument, look up its ClassModel, and then call back into the ClassModel to compute the answer) into ClassModel. Which greatly simplifies things, because you already have a handle on the model. It turns out there are lots of predicates that ViewSchema is computing from scratch on the DOM that can be computed once and cached in the model.
Anyways, try not to pull the rug out from under me... I have a big pile of changes in play, moving methods around.
