No-op by default; tools poll the tree on demand rather than reacting to events. Subclasses may override to observe events.