dispose method
void
dispose()
Idempotent — a second dispose is a no-op (used in-body and via
addTearDown).
Implementation
void dispose() {
if (_disposed) return;
_disposed = true;
_timer?.cancel();
_registry.removeListener(_onRegistryChanged);
_builtHost?.dispose();
_stateNotifier.dispose();
}