// Get everything needed for home screen in one calllet homeData = try await api.getHomeScreen()// Returns: recommendations, unread messages, new matches, etc.
// Only get changes since last syncGET /student/sync?since=2024-01-15T10:00:00ZResponse: { newMessages: [...], updatedSchools: [...], deletedItems: [...]}
enum FindUError: LocalizedError { case offline case invalidProfile(missing: [String]) case rateLimited(retryAfter: TimeInterval) case schoolNotFound var errorDescription: String? { switch self { case .offline: return "You're offline. Changes will sync when connected." case .invalidProfile(let fields): return "Complete your profile: \(fields.joined(separator: ", "))" case .rateLimited(let retry): return "Too many requests. Try again in \(Int(retry)) seconds." case .schoolNotFound: return "This school is no longer available." } }}