import ActivityKit import Foundation /// Inhalt der Neigungsmesser-Live-Activity. /// /// Die App und die Widget-Extension kompilieren diese Datei je für sich in /// ihr eigenes Modul – sie darf deshalb nicht von `Shared/` abhängen, sonst /// müsste die Extension auch Bluetooth- und WatchConnectivity-Code mitbauen. /// Werte wie `isLevel` und `instruction` kommen darum schon fertig berechnet /// aus `LevelState` an, die Extension zeigt nur an. struct LevelActivityAttributes: ActivityAttributes { struct ContentState: Codable, Hashable { var pitch: Double? var roll: Double? var isLevel: Bool var instruction: String? var isCalibrated: Bool var updatedAt: Date } /// Name des Neigungsmessers, wie in der App vergeben. var deviceName: String }