Current topic: "Refactoring VehicleListViewModel" Topic summary: I am refactoring `VehicleListViewModel` to align with the new paywall UX. This involves removing the `showUpgradeDialog` state and the associated `RequestUpgrade` and `DismissUpgradeDialog` events. I'll update the `tryNavigateToAdd` method to call `onBlockedWriteAttempted()` when the vehicle limit is reached or the app is in read-only mode, which will centrally trigger the `PaywallInfoSheet` in the UI. I'm also removing the `LaunchPurchaseFlow` effect as the billing flow will now be initiated directly from the `PaywallInfoSheet`. Strategic Intent: Refactoring VehicleListViewModel for the new paywall logic.