public protocol AIService: Sendable { func planSongProject(from request: SongPlanningRequest) async throws -> SongPlanningDraft } public struct SongPlanningRequest: Equatable, Sendable { public let userIntent: String public init(userIntent: String) { self.userIntent = userIntent } } public struct SongPlanningDraft: Equatable, Sendable { public let summary: String public init(summary: String) { self.summary = summary } }