struct Settings: Codable { var theme: String = "system" var pushEnabled: Bool = true init(from decoder: Decoder) throws { let c = try decoder.container(keyedBy: CodingKeys.self) theme = try c.decodeIfPresent(String.self, forKey: .theme) ?? "system" pushEnabled = try c.decodeIfPresent(Bool.self, forKey: .pushEnabled) ?? true } }