final case class Element(name: String, attrs: Vector[Attr], key: Option[String], children: Vector[Html])
An element. Void ness is a property of the tag name, looked up in an internal void tag table at render time, so Element("br", …, void = false) is not a state that exists.
key is a field rather than an ordinary attribute because modules/live addresses list children by identity, and a requirement one module places on another belongs in a type rather than in a string two modules agree on by convention. It renders as data-eezo-key.