import Observation /// Carries a tapped notification's destination into the view tree. /// /// Owned by `gitbayApp`, above `ContentView`. The `TabView` inside /// `ContentView` carries `.id(account.id)`, so the account switch a /// cross-account tap performs tears that subtree down and rebuilds it. /// A target held inside would go with it; held here, the rebuilt tree /// drains it. /// /// The `.id` is on the `TabView`, not on `ContentView` itself, so /// `ContentView`'s own `@State` survives the switch — which is why the /// Dashboard path is reset explicitly in the drain rather than by /// identity. @Observable @MainActor final class PushRouter { var pending: PushTarget? }