Add abstractions for content models.
Add proof of concept with a different approach.
Add a base for a unboxed union + traits approach for expressing/enforcing content model rules.
Add Nav (and TODO comment for its exceptional requirement) and turn Element into an algebraic type.
Reimplement basic Renderer. The handling of the tag name needs to be re-thought.
Bring back the abstraction for html attributes, create a separate model for Content and have TextContent be a constructor of it. Have Element's content be and optional either type.
Clean up tidy up code and add scalacOptions to sbt config.
Give up on the union-based (both tagged and untagged) attempt to express the HTML spec's content model rules with the type system. Remove all related code and go back to the free-form HTML builder. TODO: design separate validation module.