pub trait WebComponent: WebComponentBinding {
// Required method
fn create_component(attributes: NamedNodeMap) -> Self
where Self: Sized;
// Provided methods
fn on_loaded(&mut self, _shadow_root: ShadowRoot) { ... }
fn field_updated(&mut self, _name: &String) { ... }
}