import ManaAuthUI import ManaCore import SwiftData import SwiftUI @main struct CardsNativeApp: App { let container: ModelContainer @State private var auth: AuthClient @State private var authGate: ManaAuthGate private let mediaCache: MediaCache init() { do { container = try ModelContainer(for: CachedDeck.self, PendingGrade.self) } catch { fatalError("Failed to init ModelContainer: \(error)") } let auth = AuthClient(config: AppConfig.manaAppConfig) auth.bootstrap() _auth = State(initialValue: auth) _authGate = State(initialValue: ManaAuthGate(auth: auth)) mediaCache = MediaCache(api: CardsAPI(auth: auth)) Log.app.info("Cardecky starting — auth status: \(String(describing: auth.status), privacy: .public)") } var body: some Scene { WindowGroup { RootView() .environment(auth) .environment(authGate) .environment(\.mediaCache, mediaCache) .tint(CardsTheme.primary) } .modelContainer(container) } }