The Swift Package Index logo.Swift Package Index

Build Information

Failed to build MediaBridge, reference 1.3.0 (712d2c), with Swift 6.1 for macOS (SPM) on 30 Sep 2026 10:00:06 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
50 |     }
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:24: error: 'MPMediaItem' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                        `- error: 'MPMediaItem' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:36: error: 'titleProperty(forGroupingType:)' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                                    `- error: 'titleProperty(forGroupingType:)' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:57:29: error: 'MPMediaPlaylist' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
   |                             `- error: 'MPMediaPlaylist' is unavailable in macOS
58 |                 ?? collection.representativeItem?.value(forProperty: property) as? String
59 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:28:12: note: 'MPMediaPlaylist' has been explicitly marked unavailable here
26 | MP_API(ios(3.0))
27 | API_UNAVAILABLE(tvos, watchos, macos)
28 | @interface MPMediaPlaylist : MPMediaItemCollection
   |            `- note: 'MPMediaPlaylist' has been explicitly marked unavailable here
29 |
30 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:84:29: error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 82 |
 83 |     /// Filter playlists by attributes, such as `.smart` or `.genius`.
 84 |     case playlistAttributes(MPMediaPlaylistAttribute)
    |                             `- error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 85 |
 86 |     /// Filter playlists by their iCloud Music Library identifier.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:17:32: note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
15 |
16 | // A playlist may have any number of MPMediaPlaylistAttributes associated.
17 | typedef NS_OPTIONS(NSUInteger, MPMediaPlaylistAttribute) {
   |                                `- note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
18 |     MPMediaPlaylistAttributeNone    = 0,
19 |     MPMediaPlaylistAttributeOnTheGo = (1 << 0), // if set, the playlist was created on a device rather than synced from iTunes
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:104:31: error: 'MPMediaPredicateComparison' is unavailable in macOS
102 |     /// ```
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
    |                               `- error: 'MPMediaPredicateComparison' is unavailable in macOS
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:105:10: error: 'MPMediaPropertyPredicate' is unavailable in macOS
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
    |          `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
106 |         MPMediaPropertyPredicate(
107 |             value: value,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:28: error: 'MPMediaEntity' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                            `- error: 'MPMediaEntity' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaEntity.h:22:12: note: 'MPMediaEntity' has been explicitly marked unavailable here
20 | MP_API(ios(4.2), tvos(14.0))
21 | API_UNAVAILABLE(watchos, macos)
22 | @interface MPMediaEntity : NSObject <NSSecureCoding>
   |            `- note: 'MPMediaEntity' has been explicitly marked unavailable here
23 |
24 | // Returns YES for properties which can be used to construct MPMediaPropertyPredicates.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:61: error: 'MPMediaPredicateComparison' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                                                             `- error: 'MPMediaPredicateComparison' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:106:9: error: 'MPMediaPropertyPredicate' is unavailable in macOS
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
    |         `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
107 |             value: value,
108 |             forProperty: property,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:34:17: error: 'MPMediaItem' is unavailable in macOS
32 |     /// Returns an array of `MPMediaItem` objects that match the query predicates,
33 |     /// or `nil` if the query has not been executed or returned no results.
34 |     var items: [MPMediaItem]? { get }
   |                 `- error: 'MPMediaItem' is unavailable in macOS
35 |
36 |     /// The media items collection matching the query criteria.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:40:23: error: 'MPMediaItemCollection' is unavailable in macOS
38 |     /// Returns an array of `MPMediaItemCollection` objects that match the query predicates,
39 |     /// or `nil` if the query has not been executed or returned no results.
40 |     var collections: [MPMediaItemCollection]? { get }
   |                       `- error: 'MPMediaItemCollection' is unavailable in macOS
41 |
42 |     /// The grouping type used to organize query results.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:46:23: error: 'MPMediaGrouping' is unavailable in macOS
44 |     /// Controls how the media items are grouped in the results. Can be modified
45 |     /// to change the organization of items returned by the query.
46 |     var groupingType: MPMediaGrouping { get set }
   |                       `- error: 'MPMediaGrouping' is unavailable in macOS
47 |
48 |     /// Initializes a query with optional filter predicates.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:53:32: error: 'MPMediaPredicate' is unavailable in macOS
51 |     ///   - filterPredicates: A set of `MPMediaPredicate` objects that define the filtering criteria for the query.
52 |     ///                      Pass `nil` to fetch all available media items without filtering.
53 |     init(filterPredicates: Set<MPMediaPredicate>?)
   |                                `- error: 'MPMediaPredicate' is unavailable in macOS
54 |
55 |     /// Index section titles and the ranges of ``items`` they cover, or `nil` when the query doesn't
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:75:12: note: 'MPMediaPredicate' has been explicitly marked unavailable here
 73 | MP_API(ios(3.0))
 74 | API_UNAVAILABLE(tvos, watchos, macos)
 75 | @interface MPMediaPredicate : NSObject <NSSecureCoding> {}
    |            `- note: 'MPMediaPredicate' has been explicitly marked unavailable here
 76 | @end
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:69:11: error: 'MPMediaQuery' is unavailable in macOS
67 | }
68 |
69 | extension MPMediaQuery: MediaQueryProtocol {
   |           `- error: 'MPMediaQuery' is unavailable in macOS
70 |     public var itemSectionRanges: [(title: String, range: Range<Int>)]? {
71 |         itemSections?.compactMap { section in Range(section.range).map { (section.title, $0) } }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:32:12: note: 'MPMediaQuery' has been explicitly marked unavailable here
 30 | MP_API(ios(3.0))
 31 | API_UNAVAILABLE(tvos, watchos, macos)
 32 | @interface MPMediaQuery : NSObject <NSSecureCoding, NSCopying>
    |            `- note: 'MPMediaQuery' has been explicitly marked unavailable here
 33 |
 34 | - (instancetype)initWithFilterPredicates:(nullable NSSet<MPMediaPredicate *> *)filterPredicates NS_DESIGNATED_INITIALIZER;
[45/50] Compiling MediaBridge MediaItemPredicateInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:64:111: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 62 |
 63 |     /// Orders results by `keyPath`, replacing any previous ordering.
 64 |     public func sorted<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                             `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 65 |         var copy = self
 66 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath] }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:71:109: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 69 |
 70 |     /// Breaks ties in the current ordering by `keyPath`.
 71 |     public func then<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                           `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 72 |         var copy = self
 73 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath] }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:79:112: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 77 |     /// Orders results by an optional `keyPath`, replacing any previous ordering. Missing values
 78 |     /// sort first in `.forward` order.
 79 |     public func sorted<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value?> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                              `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 80 |         var copy = self
 81 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath].nilFirst }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:87:110: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 85 |     /// Breaks ties in the current ordering by an optional `keyPath`. Missing values sort first in
 86 |     /// `.forward` order.
 87 |     public func then<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value?> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                            `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 88 |         var copy = self
 89 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath].nilFirst }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:95:80: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 93 |     /// Orders results by a flag, replacing any previous ordering. `false` sorts first in
 94 |     /// `.forward` order.
 95 |     public func sorted(by keyPath: KeyPath<Element, Bool> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                              `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 96 |         var copy = self
 97 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath].sortRank }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:102:78: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
100 |
101 |     /// Breaks ties in the current ordering by a flag. `false` sorts first in `.forward` order.
102 |     public func then(by keyPath: KeyPath<Element, Bool> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                            `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
103 |         var copy = self
104 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath].sortRank }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:166:18: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
161 |     }
162 |
163 |     private static func ordering<Value: Comparable & Sendable>(
    |                         `- note: add @available attribute to enclosing static method
164 |         _ keyPath: some Hashable & Sendable,
165 |         _ key: @escaping @Sendable (Element) -> Value,
166 |         _ order: SortOrder
    |                  `- error: 'SortOrder' is only available in macOS 12.0 or newer
167 |     ) -> Ordering {
168 |         Ordering(identity: Identity(keyPath: keyPath, detail: "\(order)")) { elements in
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:47:40: error: 'MPMediaItem' is unavailable in macOS
45 |
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                        `- error: 'MPMediaItem' is unavailable in macOS
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:47:64: error: 'MPMediaGrouping' is unavailable in macOS
45 |
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                                                `- error: 'MPMediaGrouping' is unavailable in macOS
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:46:41: error: 'MPMediaItem' is unavailable in macOS
44 | }
45 |
46 | extension MediaSection where Element == MPMediaItem {
   |                                         `- error: 'MPMediaItem' is unavailable in macOS
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:54:46: error: 'MPMediaItemCollection' is unavailable in macOS
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                              `- error: 'MPMediaItemCollection' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:54:80: error: 'MPMediaGrouping' is unavailable in macOS
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                                                                `- error: 'MPMediaGrouping' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:53:41: error: 'MPMediaItemCollection' is unavailable in macOS
51 | }
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
   |                                         `- error: 'MPMediaItemCollection' is unavailable in macOS
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:48:24: error: 'MPMediaItem' is unavailable in macOS
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                        `- error: 'MPMediaItem' is unavailable in macOS
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
50 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:48:36: error: 'titleProperty(forGroupingType:)' is unavailable in macOS
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                                    `- error: 'titleProperty(forGroupingType:)' is unavailable in macOS
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
50 |     }
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:24: error: 'MPMediaItem' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                        `- error: 'MPMediaItem' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:36: error: 'titleProperty(forGroupingType:)' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                                    `- error: 'titleProperty(forGroupingType:)' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:57:29: error: 'MPMediaPlaylist' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
   |                             `- error: 'MPMediaPlaylist' is unavailable in macOS
58 |                 ?? collection.representativeItem?.value(forProperty: property) as? String
59 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:28:12: note: 'MPMediaPlaylist' has been explicitly marked unavailable here
26 | MP_API(ios(3.0))
27 | API_UNAVAILABLE(tvos, watchos, macos)
28 | @interface MPMediaPlaylist : MPMediaItemCollection
   |            `- note: 'MPMediaPlaylist' has been explicitly marked unavailable here
29 |
30 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:84:29: error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 82 |
 83 |     /// Filter playlists by attributes, such as `.smart` or `.genius`.
 84 |     case playlistAttributes(MPMediaPlaylistAttribute)
    |                             `- error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 85 |
 86 |     /// Filter playlists by their iCloud Music Library identifier.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:17:32: note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
15 |
16 | // A playlist may have any number of MPMediaPlaylistAttributes associated.
17 | typedef NS_OPTIONS(NSUInteger, MPMediaPlaylistAttribute) {
   |                                `- note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
18 |     MPMediaPlaylistAttributeNone    = 0,
19 |     MPMediaPlaylistAttributeOnTheGo = (1 << 0), // if set, the playlist was created on a device rather than synced from iTunes
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:104:31: error: 'MPMediaPredicateComparison' is unavailable in macOS
102 |     /// ```
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
    |                               `- error: 'MPMediaPredicateComparison' is unavailable in macOS
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:105:10: error: 'MPMediaPropertyPredicate' is unavailable in macOS
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
    |          `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
106 |         MPMediaPropertyPredicate(
107 |             value: value,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:28: error: 'MPMediaEntity' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                            `- error: 'MPMediaEntity' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaEntity.h:22:12: note: 'MPMediaEntity' has been explicitly marked unavailable here
20 | MP_API(ios(4.2), tvos(14.0))
21 | API_UNAVAILABLE(watchos, macos)
22 | @interface MPMediaEntity : NSObject <NSSecureCoding>
   |            `- note: 'MPMediaEntity' has been explicitly marked unavailable here
23 |
24 | // Returns YES for properties which can be used to construct MPMediaPropertyPredicates.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:61: error: 'MPMediaPredicateComparison' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                                                             `- error: 'MPMediaPredicateComparison' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:106:9: error: 'MPMediaPropertyPredicate' is unavailable in macOS
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
    |         `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
107 |             value: value,
108 |             forProperty: property,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:34:17: error: 'MPMediaItem' is unavailable in macOS
32 |     /// Returns an array of `MPMediaItem` objects that match the query predicates,
33 |     /// or `nil` if the query has not been executed or returned no results.
34 |     var items: [MPMediaItem]? { get }
   |                 `- error: 'MPMediaItem' is unavailable in macOS
35 |
36 |     /// The media items collection matching the query criteria.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:40:23: error: 'MPMediaItemCollection' is unavailable in macOS
38 |     /// Returns an array of `MPMediaItemCollection` objects that match the query predicates,
39 |     /// or `nil` if the query has not been executed or returned no results.
40 |     var collections: [MPMediaItemCollection]? { get }
   |                       `- error: 'MPMediaItemCollection' is unavailable in macOS
41 |
42 |     /// The grouping type used to organize query results.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:46:23: error: 'MPMediaGrouping' is unavailable in macOS
44 |     /// Controls how the media items are grouped in the results. Can be modified
45 |     /// to change the organization of items returned by the query.
46 |     var groupingType: MPMediaGrouping { get set }
   |                       `- error: 'MPMediaGrouping' is unavailable in macOS
47 |
48 |     /// Initializes a query with optional filter predicates.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:53:32: error: 'MPMediaPredicate' is unavailable in macOS
51 |     ///   - filterPredicates: A set of `MPMediaPredicate` objects that define the filtering criteria for the query.
52 |     ///                      Pass `nil` to fetch all available media items without filtering.
53 |     init(filterPredicates: Set<MPMediaPredicate>?)
   |                                `- error: 'MPMediaPredicate' is unavailable in macOS
54 |
55 |     /// Index section titles and the ranges of ``items`` they cover, or `nil` when the query doesn't
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:75:12: note: 'MPMediaPredicate' has been explicitly marked unavailable here
 73 | MP_API(ios(3.0))
 74 | API_UNAVAILABLE(tvos, watchos, macos)
 75 | @interface MPMediaPredicate : NSObject <NSSecureCoding> {}
    |            `- note: 'MPMediaPredicate' has been explicitly marked unavailable here
 76 | @end
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:69:11: error: 'MPMediaQuery' is unavailable in macOS
67 | }
68 |
69 | extension MPMediaQuery: MediaQueryProtocol {
   |           `- error: 'MPMediaQuery' is unavailable in macOS
70 |     public var itemSectionRanges: [(title: String, range: Range<Int>)]? {
71 |         itemSections?.compactMap { section in Range(section.range).map { (section.title, $0) } }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:32:12: note: 'MPMediaQuery' has been explicitly marked unavailable here
 30 | MP_API(ios(3.0))
 31 | API_UNAVAILABLE(tvos, watchos, macos)
 32 | @interface MPMediaQuery : NSObject <NSSecureCoding, NSCopying>
    |            `- note: 'MPMediaQuery' has been explicitly marked unavailable here
 33 |
 34 | - (instancetype)initWithFilterPredicates:(nullable NSSet<MPMediaPredicate *> *)filterPredicates NS_DESIGNATED_INITIALIZER;
[46/50] Compiling MediaBridge MediaQueryProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:64:111: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 62 |
 63 |     /// Orders results by `keyPath`, replacing any previous ordering.
 64 |     public func sorted<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                             `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 65 |         var copy = self
 66 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath] }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:71:109: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 69 |
 70 |     /// Breaks ties in the current ordering by `keyPath`.
 71 |     public func then<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                           `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 72 |         var copy = self
 73 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath] }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:79:112: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 77 |     /// Orders results by an optional `keyPath`, replacing any previous ordering. Missing values
 78 |     /// sort first in `.forward` order.
 79 |     public func sorted<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value?> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                              `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 80 |         var copy = self
 81 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath].nilFirst }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:87:110: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 85 |     /// Breaks ties in the current ordering by an optional `keyPath`. Missing values sort first in
 86 |     /// `.forward` order.
 87 |     public func then<Value: Comparable & Sendable>(by keyPath: KeyPath<Element, Value?> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                                                            `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 88 |         var copy = self
 89 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath].nilFirst }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:95:80: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
 93 |     /// Orders results by a flag, replacing any previous ordering. `false` sorts first in
 94 |     /// `.forward` order.
 95 |     public func sorted(by keyPath: KeyPath<Element, Bool> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                              `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
 96 |         var copy = self
 97 |         copy.orderings = [Self.ordering(keyPath, { $0[keyPath: keyPath].sortRank }, order)]
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:102:78: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
100 |
101 |     /// Breaks ties in the current ordering by a flag. `false` sorts first in `.forward` order.
102 |     public func then(by keyPath: KeyPath<Element, Bool> & Sendable, _ order: SortOrder = .forward) -> Self {
    |                 |                                                            `- error: 'SortOrder' is only available in macOS 12.0 or newer
    |                 `- note: add @available attribute to enclosing instance method
103 |         var copy = self
104 |         copy.orderings.append(Self.ordering(keyPath, { $0[keyPath: keyPath].sortRank }, order))
/Users/admin/builder/spi-builder-workspace/Sources/Query/LibraryQuery.swift:166:18: error: 'SortOrder' is only available in macOS 12.0 or newer
 19 | /// Filters MediaPlayer supports run inside its query; the rest run in memory. Sorting reads each
 20 | /// sort key once per element, so it stays linear in property reads on large libraries.
 21 | public struct LibraryQuery<Element: LibraryElement>: Sendable, Equatable {
    |               `- note: add @available attribute to enclosing generic struct
 22 |     struct Clause {
 23 |         let filter: MediaQueryRequest.Filter?
    :
161 |     }
162 |
163 |     private static func ordering<Value: Comparable & Sendable>(
    |                         `- note: add @available attribute to enclosing static method
164 |         _ keyPath: some Hashable & Sendable,
165 |         _ key: @escaping @Sendable (Element) -> Value,
166 |         _ order: SortOrder
    |                  `- error: 'SortOrder' is only available in macOS 12.0 or newer
167 |     ) -> Ordering {
168 |         Ordering(identity: Identity(keyPath: keyPath, detail: "\(order)")) { elements in
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:47:40: error: 'MPMediaItem' is unavailable in macOS
45 |
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                        `- error: 'MPMediaItem' is unavailable in macOS
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:47:64: error: 'MPMediaGrouping' is unavailable in macOS
45 |
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                                                `- error: 'MPMediaGrouping' is unavailable in macOS
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:46:41: error: 'MPMediaItem' is unavailable in macOS
44 | }
45 |
46 | extension MediaSection where Element == MPMediaItem {
   |                                         `- error: 'MPMediaItem' is unavailable in macOS
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:54:46: error: 'MPMediaItemCollection' is unavailable in macOS
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                              `- error: 'MPMediaItemCollection' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:54:80: error: 'MPMediaGrouping' is unavailable in macOS
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
   |                                                                                `- error: 'MPMediaGrouping' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:53:41: error: 'MPMediaItemCollection' is unavailable in macOS
51 | }
52 |
53 | extension MediaSection where Element == MPMediaItemCollection {
   |                                         `- error: 'MPMediaItemCollection' is unavailable in macOS
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:48:24: error: 'MPMediaItem' is unavailable in macOS
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                        `- error: 'MPMediaItem' is unavailable in macOS
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
50 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:48:36: error: 'titleProperty(forGroupingType:)' is unavailable in macOS
46 | extension MediaSection where Element == MPMediaItem {
47 |     static func alphabetical(_ items: [MPMediaItem], grouping: MPMediaGrouping) -> [MediaSection] {
48 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                                    `- error: 'titleProperty(forGroupingType:)' is unavailable in macOS
49 |         return alphabetical(items) { $0.value(forProperty: property) as? String }
50 |     }
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:24: error: 'MPMediaItem' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                        `- error: 'MPMediaItem' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:55:36: error: 'titleProperty(forGroupingType:)' is unavailable in macOS
53 | extension MediaSection where Element == MPMediaItemCollection {
54 |     static func alphabetical(_ collections: [MPMediaItemCollection], grouping: MPMediaGrouping) -> [MediaSection] {
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
   |                                    `- error: 'titleProperty(forGroupingType:)' is unavailable in macOS
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
MediaPlayer.MPMediaItem.titleProperty:3:19: note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
1 | class MPMediaItem {
2 | @available(macOS, unavailable)
3 |   open class func titleProperty(forGroupingType groupingType: MPMediaGrouping) -> String}
  |                   `- note: 'titleProperty(forGroupingType:)' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Sections/MediaSection.swift:57:29: error: 'MPMediaPlaylist' is unavailable in macOS
55 |         let property = MPMediaItem.titleProperty(forGroupingType: grouping)
56 |         return alphabetical(collections) { collection in
57 |             (collection as? MPMediaPlaylist)?.name
   |                             `- error: 'MPMediaPlaylist' is unavailable in macOS
58 |                 ?? collection.representativeItem?.value(forProperty: property) as? String
59 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:28:12: note: 'MPMediaPlaylist' has been explicitly marked unavailable here
26 | MP_API(ios(3.0))
27 | API_UNAVAILABLE(tvos, watchos, macos)
28 | @interface MPMediaPlaylist : MPMediaItemCollection
   |            `- note: 'MPMediaPlaylist' has been explicitly marked unavailable here
29 |
30 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:84:29: error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 82 |
 83 |     /// Filter playlists by attributes, such as `.smart` or `.genius`.
 84 |     case playlistAttributes(MPMediaPlaylistAttribute)
    |                             `- error: 'MPMediaPlaylistAttribute' is unavailable in macOS
 85 |
 86 |     /// Filter playlists by their iCloud Music Library identifier.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaPlaylist.h:17:32: note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
15 |
16 | // A playlist may have any number of MPMediaPlaylistAttributes associated.
17 | typedef NS_OPTIONS(NSUInteger, MPMediaPlaylistAttribute) {
   |                                `- note: 'MPMediaPlaylistAttribute' has been explicitly marked unavailable here
18 |     MPMediaPlaylistAttributeNone    = 0,
19 |     MPMediaPlaylistAttributeOnTheGo = (1 << 0), // if set, the playlist was created on a device rather than synced from iTunes
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:104:31: error: 'MPMediaPredicateComparison' is unavailable in macOS
102 |     /// ```
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
    |                               `- error: 'MPMediaPredicateComparison' is unavailable in macOS
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:105:10: error: 'MPMediaPropertyPredicate' is unavailable in macOS
103 |     public func predicate(
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
    |          `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
106 |         MPMediaPropertyPredicate(
107 |             value: value,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:28: error: 'MPMediaEntity' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                            `- error: 'MPMediaEntity' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaEntity.h:22:12: note: 'MPMediaEntity' has been explicitly marked unavailable here
20 | MP_API(ios(4.2), tvos(14.0))
21 | API_UNAVAILABLE(watchos, macos)
22 | @interface MPMediaEntity : NSObject <NSSecureCoding>
   |            `- note: 'MPMediaEntity' has been explicitly marked unavailable here
23 |
24 | // Returns YES for properties which can be used to construct MPMediaPropertyPredicates.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:118:61: error: 'MPMediaPredicateComparison' is unavailable in macOS
116 |
117 |     // Approximates MediaPlayer's matching: strings compare case-insensitively, numbers by value.
118 |     func matches(_ entity: MPMediaEntity, using comparison: MPMediaPredicateComparison) -> Bool {
    |                                                             `- error: 'MPMediaPredicateComparison' is unavailable in macOS
119 |         switch (value, entity.value(forProperty: property)) {
120 |         case let (expected as String, actual as String):
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:82:28: note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 80 | // See MPMediaItem.h and MPMediaPlaylist.h for a list of properties.
 81 |
 82 | typedef NS_ENUM(NSInteger, MPMediaPredicateComparison) {
    |                            `- note: 'MPMediaPredicateComparison' has been explicitly marked unavailable here
 83 |     MPMediaPredicateComparisonEqualTo,
 84 |     MPMediaPredicateComparisonContains
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaItemPredicateInfo.swift:106:9: error: 'MPMediaPropertyPredicate' is unavailable in macOS
104 |         using comparisonType: MPMediaPredicateComparison = .equalTo
105 |     ) -> MPMediaPropertyPredicate {
106 |         MPMediaPropertyPredicate(
    |         `- error: 'MPMediaPropertyPredicate' is unavailable in macOS
107 |             value: value,
108 |             forProperty: property,
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:89:12: note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 87 | MP_API(ios(3.0))
 88 | API_UNAVAILABLE(tvos, watchos, macos)
 89 | @interface MPMediaPropertyPredicate : MPMediaPredicate
    |            `- note: 'MPMediaPropertyPredicate' has been explicitly marked unavailable here
 90 |
 91 | + (MPMediaPropertyPredicate *)predicateWithValue:(nullable id)value forProperty:(NSString *)property; // comparisonType is MPMediaPredicateComparisonEqualTo
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:34:17: error: 'MPMediaItem' is unavailable in macOS
32 |     /// Returns an array of `MPMediaItem` objects that match the query predicates,
33 |     /// or `nil` if the query has not been executed or returned no results.
34 |     var items: [MPMediaItem]? { get }
   |                 `- error: 'MPMediaItem' is unavailable in macOS
35 |
36 |     /// The media items collection matching the query criteria.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:42:12: note: 'MPMediaItem' has been explicitly marked unavailable here
 40 | MP_API(ios(3.0), tvos(14.0))
 41 | API_UNAVAILABLE(watchos, macos)
 42 | @interface MPMediaItem : MPMediaEntity
    |            `- note: 'MPMediaItem' has been explicitly marked unavailable here
 43 |
 44 | #pragma mark - Properties
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:40:23: error: 'MPMediaItemCollection' is unavailable in macOS
38 |     /// Returns an array of `MPMediaItemCollection` objects that match the query predicates,
39 |     /// or `nil` if the query has not been executed or returned no results.
40 |     var collections: [MPMediaItemCollection]? { get }
   |                       `- error: 'MPMediaItemCollection' is unavailable in macOS
41 |
42 |     /// The grouping type used to organize query results.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItemCollection.h:19:12: note: 'MPMediaItemCollection' has been explicitly marked unavailable here
17 | MP_API(ios(3.0))
18 | API_UNAVAILABLE(tvos, watchos, macos)
19 | @interface MPMediaItemCollection : MPMediaEntity
   |            `- note: 'MPMediaItemCollection' has been explicitly marked unavailable here
20 |
21 | // Creates a media item collection by copying an array of MPMediaItems.
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:46:23: error: 'MPMediaGrouping' is unavailable in macOS
44 |     /// Controls how the media items are grouped in the results. Can be modified
45 |     /// to change the organization of items returned by the query.
46 |     var groupingType: MPMediaGrouping { get set }
   |                       `- error: 'MPMediaGrouping' is unavailable in macOS
47 |
48 |     /// Initializes a query with optional filter predicates.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:18:28: note: 'MPMediaGrouping' has been explicitly marked unavailable here
 16 | @class MPMediaQuerySection;
 17 |
 18 | typedef NS_ENUM(NSInteger, MPMediaGrouping) {
    |                            `- note: 'MPMediaGrouping' has been explicitly marked unavailable here
 19 |     MPMediaGroupingTitle,
 20 |     MPMediaGroupingAlbum,
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:53:32: error: 'MPMediaPredicate' is unavailable in macOS
51 |     ///   - filterPredicates: A set of `MPMediaPredicate` objects that define the filtering criteria for the query.
52 |     ///                      Pass `nil` to fetch all available media items without filtering.
53 |     init(filterPredicates: Set<MPMediaPredicate>?)
   |                                `- error: 'MPMediaPredicate' is unavailable in macOS
54 |
55 |     /// Index section titles and the ranges of ``items`` they cover, or `nil` when the query doesn't
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:75:12: note: 'MPMediaPredicate' has been explicitly marked unavailable here
 73 | MP_API(ios(3.0))
 74 | API_UNAVAILABLE(tvos, watchos, macos)
 75 | @interface MPMediaPredicate : NSObject <NSSecureCoding> {}
    |            `- note: 'MPMediaPredicate' has been explicitly marked unavailable here
 76 | @end
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/Service/MediaQueryProtocol.swift:69:11: error: 'MPMediaQuery' is unavailable in macOS
67 | }
68 |
69 | extension MPMediaQuery: MediaQueryProtocol {
   |           `- error: 'MPMediaQuery' is unavailable in macOS
70 |     public var itemSectionRanges: [(title: String, range: Range<Int>)]? {
71 |         itemSections?.compactMap { section in Range(section.range).map { (section.title, $0) } }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaQuery.h:32:12: note: 'MPMediaQuery' has been explicitly marked unavailable here
 30 | MP_API(ios(3.0))
 31 | API_UNAVAILABLE(tvos, watchos, macos)
 32 | @interface MPMediaQuery : NSObject <NSSecureCoding, NSCopying>
    |            `- note: 'MPMediaQuery' has been explicitly marked unavailable here
 33 |
 34 | - (instancetype)initWithFilterPredicates:(nullable NSSet<MPMediaPredicate *> *)filterPredicates NS_DESIGNATED_INITIALIZER;
[47/50] Compiling MediaBridge MusicLibraryEnvironment.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:3:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 1 | import SwiftUI
 2 |
 3 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 4 |     /// The library that ``MediaQuery`` and your views read from. Defaults to the device's library.
 5 |     @Entry public var musicLibrary: any MusicLibraryProtocol = deviceLibrary
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:18:75: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 |                                                         `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:8:11: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:19:9: error: 'environment' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:62: error: 'MPMusicPlayerController' is unavailable in macOS
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |                                                              `- error: 'MPMusicPlayerController' is unavailable in macOS
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
macro expansion @Entry:3:56: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  |                                                        `- error: 'MPMusicPlayerController' is unavailable in macOS
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:4:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 2 | import SwiftUI
 3 |
 4 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 5 |     /// The player that ``NowPlaying`` and your views control. Defaults to
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:19:72: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 |                                                      `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
21 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:11:11: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
macro expansion @__EntryDefaultValue:3:9: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  +--- macro expansion @__EntryDefaultValue ------------------------
   |  |1 | {
   |  |2 |     get {
   |  |3 |         MPMusicPlayerController.applicationMusicPlayer
   |  |  |         `- error: 'MPMusicPlayerController' is unavailable in macOS
   |  |4 |     }
   |  |5 | }
   |  +-----------------------------------------------------------------
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:20:9: error: 'environment' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
21 |     }
22 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:28:6: error: 'Environment' is only available in macOS 10.15 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
   |      `- error: 'Environment' is only available in macOS 10.15 or newer
29 |     @StateObject private var loader = NowPlayingLoader()
30 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:29:6: error: 'StateObject' is only available in macOS 11.0 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
29 |     @StateObject private var loader = NowPlayingLoader()
   |      `- error: 'StateObject' is only available in macOS 11.0 or newer
30 |
31 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:50:35: error: 'MPMusicPlaybackState' is unavailable in macOS
48 |     public struct Status: Sendable {
49 |         /// Whether the player is playing, paused, stopped, interrupted, or seeking.
50 |         public let playbackState: MPMusicPlaybackState
   |                                   `- error: 'MPMusicPlaybackState' is unavailable in macOS
51 |
52 |         /// Whether the song is playing now.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:6:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:48: error: 'MPMusicPlaybackState' is unavailable in macOS
 5 | final class NowPlayingLoader: ObservableObject {
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |                                                `- error: 'MPMusicPlaybackState' is unavailable in macOS
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:10:30: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
10 |     private var observation: AnyCancellable?
   |                              `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
11 |
12 |     func update(player: any MusicPlayerProtocol) {
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, Song?>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, Song?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, MPMusicPlaybackState>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, MPMusicPlaybackState>'
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:20:64: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  |                                             `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:39: error: 'AsyncStream' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                       |- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |                                       `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:57: error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                                         |- error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
   |                                                         `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:44: error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                            `- error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:138:36: note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
136 |
137 | // Posted when the currently playing media item changes.
138 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerNowPlayingItemDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
139 |     MP_API(ios(3.0), tvos(14.0))
140 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:93: error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                                                                             `- error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:133:36: note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
131 |
132 | // Posted when the playback state changes, either programatically or by the user.
133 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerPlaybackStateDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
134 |     MP_API(ios(3.0), tvos(14.0))
135 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:25:95: error: 'yield()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
   |                                                                                               |- error: 'yield()' is only available in macOS 10.15 or newer
   |                                                                                               `- note: add 'if #available' version check
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'Task' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'Task' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
<unknown>:0: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:33:16: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
31 |             }
32 |         }
33 |         return AnyCancellable {
   |                |- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                `- note: add 'if #available' version check
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:36:18: error: 'cancel()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
36 |             task.cancel()
   |                  |- error: 'cancel()' is only available in macOS 10.15 or newer
   |                  `- note: add 'if #available' version check
37 |             player.endGeneratingPlaybackNotifications()
38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:43:55: error: setter for 'song' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
   |                                                       |- error: setter for 'song' is only available in macOS 10.15 or newer
   |                                                       `- note: add 'if #available' version check
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:45:37: error: setter for 'playbackState' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
   |                                     |- error: setter for 'playbackState' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
46 |     }
47 | }
[48/50] Compiling MediaBridge MusicPlayerEnvironment.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:3:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 1 | import SwiftUI
 2 |
 3 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 4 |     /// The library that ``MediaQuery`` and your views read from. Defaults to the device's library.
 5 |     @Entry public var musicLibrary: any MusicLibraryProtocol = deviceLibrary
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:18:75: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 |                                                         `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:8:11: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:19:9: error: 'environment' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:62: error: 'MPMusicPlayerController' is unavailable in macOS
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |                                                              `- error: 'MPMusicPlayerController' is unavailable in macOS
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
macro expansion @Entry:3:56: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  |                                                        `- error: 'MPMusicPlayerController' is unavailable in macOS
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:4:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 2 | import SwiftUI
 3 |
 4 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 5 |     /// The player that ``NowPlaying`` and your views control. Defaults to
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:19:72: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 |                                                      `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
21 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:11:11: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
macro expansion @__EntryDefaultValue:3:9: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  +--- macro expansion @__EntryDefaultValue ------------------------
   |  |1 | {
   |  |2 |     get {
   |  |3 |         MPMusicPlayerController.applicationMusicPlayer
   |  |  |         `- error: 'MPMusicPlayerController' is unavailable in macOS
   |  |4 |     }
   |  |5 | }
   |  +-----------------------------------------------------------------
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:20:9: error: 'environment' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
21 |     }
22 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:28:6: error: 'Environment' is only available in macOS 10.15 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
   |      `- error: 'Environment' is only available in macOS 10.15 or newer
29 |     @StateObject private var loader = NowPlayingLoader()
30 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:29:6: error: 'StateObject' is only available in macOS 11.0 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
29 |     @StateObject private var loader = NowPlayingLoader()
   |      `- error: 'StateObject' is only available in macOS 11.0 or newer
30 |
31 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:50:35: error: 'MPMusicPlaybackState' is unavailable in macOS
48 |     public struct Status: Sendable {
49 |         /// Whether the player is playing, paused, stopped, interrupted, or seeking.
50 |         public let playbackState: MPMusicPlaybackState
   |                                   `- error: 'MPMusicPlaybackState' is unavailable in macOS
51 |
52 |         /// Whether the song is playing now.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:6:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:48: error: 'MPMusicPlaybackState' is unavailable in macOS
 5 | final class NowPlayingLoader: ObservableObject {
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |                                                `- error: 'MPMusicPlaybackState' is unavailable in macOS
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:10:30: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
10 |     private var observation: AnyCancellable?
   |                              `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
11 |
12 |     func update(player: any MusicPlayerProtocol) {
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, Song?>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, Song?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, MPMusicPlaybackState>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, MPMusicPlaybackState>'
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:20:64: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  |                                             `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:39: error: 'AsyncStream' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                       |- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |                                       `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:57: error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                                         |- error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
   |                                                         `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:44: error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                            `- error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:138:36: note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
136 |
137 | // Posted when the currently playing media item changes.
138 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerNowPlayingItemDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
139 |     MP_API(ios(3.0), tvos(14.0))
140 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:93: error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                                                                             `- error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:133:36: note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
131 |
132 | // Posted when the playback state changes, either programatically or by the user.
133 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerPlaybackStateDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
134 |     MP_API(ios(3.0), tvos(14.0))
135 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:25:95: error: 'yield()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
   |                                                                                               |- error: 'yield()' is only available in macOS 10.15 or newer
   |                                                                                               `- note: add 'if #available' version check
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'Task' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'Task' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
<unknown>:0: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:33:16: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
31 |             }
32 |         }
33 |         return AnyCancellable {
   |                |- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                `- note: add 'if #available' version check
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:36:18: error: 'cancel()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
36 |             task.cancel()
   |                  |- error: 'cancel()' is only available in macOS 10.15 or newer
   |                  `- note: add 'if #available' version check
37 |             player.endGeneratingPlaybackNotifications()
38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:43:55: error: setter for 'song' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
   |                                                       |- error: setter for 'song' is only available in macOS 10.15 or newer
   |                                                       `- note: add 'if #available' version check
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:45:37: error: setter for 'playbackState' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
   |                                     |- error: setter for 'playbackState' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
46 |     }
47 | }
[49/50] Compiling MediaBridge NowPlaying.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:3:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 1 | import SwiftUI
 2 |
 3 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 4 |     /// The library that ``MediaQuery`` and your views read from. Defaults to the device's library.
 5 |     @Entry public var musicLibrary: any MusicLibraryProtocol = deviceLibrary
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:18:75: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 |                                                         `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:8:11: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:19:9: error: 'environment' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:62: error: 'MPMusicPlayerController' is unavailable in macOS
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |                                                              `- error: 'MPMusicPlayerController' is unavailable in macOS
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
macro expansion @Entry:3:56: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  |                                                        `- error: 'MPMusicPlayerController' is unavailable in macOS
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:4:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 2 | import SwiftUI
 3 |
 4 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 5 |     /// The player that ``NowPlaying`` and your views control. Defaults to
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:19:72: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 |                                                      `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
21 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:11:11: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
macro expansion @__EntryDefaultValue:3:9: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  +--- macro expansion @__EntryDefaultValue ------------------------
   |  |1 | {
   |  |2 |     get {
   |  |3 |         MPMusicPlayerController.applicationMusicPlayer
   |  |  |         `- error: 'MPMusicPlayerController' is unavailable in macOS
   |  |4 |     }
   |  |5 | }
   |  +-----------------------------------------------------------------
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:20:9: error: 'environment' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
21 |     }
22 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:28:6: error: 'Environment' is only available in macOS 10.15 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
   |      `- error: 'Environment' is only available in macOS 10.15 or newer
29 |     @StateObject private var loader = NowPlayingLoader()
30 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:29:6: error: 'StateObject' is only available in macOS 11.0 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
29 |     @StateObject private var loader = NowPlayingLoader()
   |      `- error: 'StateObject' is only available in macOS 11.0 or newer
30 |
31 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:50:35: error: 'MPMusicPlaybackState' is unavailable in macOS
48 |     public struct Status: Sendable {
49 |         /// Whether the player is playing, paused, stopped, interrupted, or seeking.
50 |         public let playbackState: MPMusicPlaybackState
   |                                   `- error: 'MPMusicPlaybackState' is unavailable in macOS
51 |
52 |         /// Whether the song is playing now.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:6:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:48: error: 'MPMusicPlaybackState' is unavailable in macOS
 5 | final class NowPlayingLoader: ObservableObject {
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |                                                `- error: 'MPMusicPlaybackState' is unavailable in macOS
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:10:30: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
10 |     private var observation: AnyCancellable?
   |                              `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
11 |
12 |     func update(player: any MusicPlayerProtocol) {
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, Song?>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, Song?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, MPMusicPlaybackState>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, MPMusicPlaybackState>'
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:20:64: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  |                                             `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:39: error: 'AsyncStream' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                       |- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |                                       `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:57: error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                                         |- error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
   |                                                         `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:44: error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                            `- error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:138:36: note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
136 |
137 | // Posted when the currently playing media item changes.
138 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerNowPlayingItemDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
139 |     MP_API(ios(3.0), tvos(14.0))
140 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:93: error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                                                                             `- error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:133:36: note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
131 |
132 | // Posted when the playback state changes, either programatically or by the user.
133 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerPlaybackStateDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
134 |     MP_API(ios(3.0), tvos(14.0))
135 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:25:95: error: 'yield()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
   |                                                                                               |- error: 'yield()' is only available in macOS 10.15 or newer
   |                                                                                               `- note: add 'if #available' version check
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'Task' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'Task' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
<unknown>:0: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:33:16: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
31 |             }
32 |         }
33 |         return AnyCancellable {
   |                |- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                `- note: add 'if #available' version check
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:36:18: error: 'cancel()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
36 |             task.cancel()
   |                  |- error: 'cancel()' is only available in macOS 10.15 or newer
   |                  `- note: add 'if #available' version check
37 |             player.endGeneratingPlaybackNotifications()
38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:43:55: error: setter for 'song' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
   |                                                       |- error: setter for 'song' is only available in macOS 10.15 or newer
   |                                                       `- note: add 'if #available' version check
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:45:37: error: setter for 'playbackState' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
   |                                     |- error: setter for 'playbackState' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
46 |     }
47 | }
[50/50] Compiling MediaBridge NowPlayingLoader.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:3:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 1 | import SwiftUI
 2 |
 3 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 4 |     /// The library that ``MediaQuery`` and your views read from. Defaults to the device's library.
 5 |     @Entry public var musicLibrary: any MusicLibraryProtocol = deviceLibrary
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:18:75: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 |                                                         `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:8:11: error: 'View' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicLibraryEnvironment.swift:19:9: error: 'environment' is only available in macOS 10.15 or newer
 6 | }
 7 |
 8 | extension View {
   | `- note: add @available attribute to enclosing extension
 9 |     /// Sets the library that ``MediaQuery`` and ``SwiftUICore/EnvironmentValues/musicLibrary`` read in
10 |     /// this view hierarchy, such as a preview library.
   :
16 |     /// }
17 |     /// ```
18 |     public func musicLibrary(_ library: any MusicLibraryProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
19 |         environment(\.musicLibrary, library)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:62: error: 'MPMusicPlayerController' is unavailable in macOS
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |                                                              `- error: 'MPMusicPlayerController' is unavailable in macOS
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
macro expansion @Entry:3:56: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  |                                                        `- error: 'MPMusicPlayerController' is unavailable in macOS
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:4:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
 2 | import SwiftUI
 3 |
 4 | extension EnvironmentValues {
   | |         `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
 5 |     /// The player that ``NowPlaying`` and your views control. Defaults to
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:19:72: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 |                                                      `- error: 'View' is only available in macOS 10.15 or newer
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
21 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:11:11: error: 'View' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
macro expansion @__EntryDefaultValue:3:9: error: 'MPMusicPlayerController' is unavailable in macOS
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:8:108: note: expanded code originates here
 6 |     /// `MPMusicPlayerController.applicationMusicPlayer`, which plays inside your app without
 7 |     /// changing the Music app's queue.
 8 |     @Entry public var musicPlayer: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   +--- macro expansion @Entry -----------------------------------------
   |1 | private struct __Key_musicPlayer: SwiftUICore.EnvironmentKey {
   |2 |     @__EntryDefaultValue
   |3 |     static var defaultValue: any MusicPlayerProtocol = MPMusicPlayerController.applicationMusicPlayer
   |  +--- macro expansion @__EntryDefaultValue ------------------------
   |  |1 | {
   |  |2 |     get {
   |  |3 |         MPMusicPlayerController.applicationMusicPlayer
   |  |  |         `- error: 'MPMusicPlayerController' is unavailable in macOS
   |  |4 |     }
   |  |5 | }
   |  +-----------------------------------------------------------------
   |4 | }
   +--------------------------------------------------------------------
 9 | }
10 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:57:12: note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 55 | MP_API(ios(3.0), tvos(14.0))
 56 | API_UNAVAILABLE(watchos, macos)
 57 | @interface MPMusicPlayerController : NSObject <MPMediaPlayback>
    |            `- note: 'MPMusicPlayerController' has been explicitly marked unavailable here
 58 |
 59 | /// Playing items with applicationMusicPlayer does not affect Music's playback state.
/Users/admin/builder/spi-builder-workspace/Sources/Views/MusicPlayerEnvironment.swift:20:9: error: 'environment' is only available in macOS 10.15 or newer
 9 | }
10 |
11 | extension View {
   | `- note: add @available attribute to enclosing extension
12 |     /// Sets the player that ``NowPlaying`` and ``SwiftUICore/EnvironmentValues/musicPlayer`` use in
13 |     /// this view hierarchy.
   :
17 |     ///     .musicPlayer(MPMusicPlayerController.systemMusicPlayer)   // control the Music app
18 |     /// ```
19 |     public func musicPlayer(_ player: any MusicPlayerProtocol) -> some View {
   |                 `- note: add @available attribute to enclosing instance method
20 |         environment(\.musicPlayer, player)
   |         |- error: 'environment' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
21 |     }
22 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:28:6: error: 'Environment' is only available in macOS 10.15 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
   |      `- error: 'Environment' is only available in macOS 10.15 or newer
29 |     @StateObject private var loader = NowPlayingLoader()
30 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:29:6: error: 'StateObject' is only available in macOS 11.0 or newer
25 | @MainActor
26 | @propertyWrapper
27 | public struct NowPlaying: @preconcurrency DynamicProperty {
   |               `- note: add @available attribute to enclosing struct
28 |     @Environment(\.musicPlayer) private var player
29 |     @StateObject private var loader = NowPlayingLoader()
   |      `- error: 'StateObject' is only available in macOS 11.0 or newer
30 |
31 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlaying.swift:50:35: error: 'MPMusicPlaybackState' is unavailable in macOS
48 |     public struct Status: Sendable {
49 |         /// Whether the player is playing, paused, stopped, interrupted, or seeking.
50 |         public let playbackState: MPMusicPlaybackState
   |                                   `- error: 'MPMusicPlaybackState' is unavailable in macOS
51 |
52 |         /// Whether the song is playing now.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:6:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:48: error: 'MPMusicPlaybackState' is unavailable in macOS
 5 | final class NowPlayingLoader: ObservableObject {
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |                                                `- error: 'MPMusicPlaybackState' is unavailable in macOS
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:20:28: note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 18 | @class MPMusicPlayerApplicationController;
 19 |
 20 | typedef NS_ENUM(NSInteger, MPMusicPlaybackState) {
    |                            `- note: 'MPMusicPlaybackState' has been explicitly marked unavailable here
 21 |     MPMusicPlaybackStateStopped,
 22 |     MPMusicPlaybackStatePlaying,
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:7:6: error: 'Published' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   |      `- error: 'Published' is only available in macOS 10.15 or newer
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:10:30: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
 8 |
 9 |     private var player: (any MusicPlayerProtocol)?
10 |     private var observation: AnyCancellable?
   |                              `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
11 |
12 |     func update(player: any MusicPlayerProtocol) {
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, Song?>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, Song?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<NowPlayingLoader, MPMusicPlaybackState>' to expected argument type 'ReferenceWritableKeyPath<NowPlayingLoader, MPMusicPlaybackState>'
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:20:64: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  |                                             `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:39: error: 'AsyncStream' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                       |- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |                                       `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:22:57: error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   |                                                         |- error: 'makeStream(of:bufferingPolicy:)' is only available in macOS 10.15 or newer
   |                                                         `- note: add 'if #available' version check
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:44: error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                            `- error: 'MPMusicPlayerControllerNowPlayingItemDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:138:36: note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
136 |
137 | // Posted when the currently playing media item changes.
138 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerNowPlayingItemDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerNowPlayingItemDidChange' has been explicitly marked unavailable here
139 |     MP_API(ios(3.0), tvos(14.0))
140 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:23:93: error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
   |                                                                                             `- error: 'MPMusicPlayerControllerPlaybackStateDidChange' is unavailable in macOS
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMusicPlayerController.h:133:36: note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
131 |
132 | // Posted when the playback state changes, either programatically or by the user.
133 | MP_EXTERN NSNotificationName const MPMusicPlayerControllerPlaybackStateDidChangeNotification
    |                                    `- note: 'MPMusicPlayerControllerPlaybackStateDidChange' has been explicitly marked unavailable here
134 |     MP_API(ios(3.0), tvos(14.0))
135 |     API_UNAVAILABLE(watchos, macos);
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:25:95: error: 'yield()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
23 |         let names: [Notification.Name] = [.MPMusicPlayerControllerNowPlayingItemDidChange, .MPMusicPlayerControllerPlaybackStateDidChange]
24 |         let observers = names.map { name in
25 |             center.addObserver(forName: name, object: player, queue: nil) { _ in continuation.yield() }
   |                                                                                               |- error: 'yield()' is only available in macOS 10.15 or newer
   |                                                                                               `- note: add 'if #available' version check
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'Task' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'Task' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
<unknown>:0: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:28:20: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
26 |         }
27 |         player.beginGeneratingPlaybackNotifications()
28 |         let task = Task { [weak self] in
   |                    |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
29 |             for await _ in changes {
30 |                 self?.refresh()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:33:16: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
31 |             }
32 |         }
33 |         return AnyCancellable {
   |                |- error: 'AnyCancellable' is only available in macOS 10.15 or newer
   |                `- note: add 'if #available' version check
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:36:18: error: 'cancel()' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
18 |     }
19 |
20 |     private func observe(_ player: any MusicPlayerProtocol) -> AnyCancellable {
   |                  `- note: add @available attribute to enclosing instance method
21 |         let center = NotificationCenter.default
22 |         let (changes, continuation) = AsyncStream<Void>.makeStream(bufferingPolicy: .bufferingNewest(1))
   :
34 |             observers.forEach(center.removeObserver)
35 |             continuation.finish()
36 |             task.cancel()
   |                  |- error: 'cancel()' is only available in macOS 10.15 or newer
   |                  `- note: add 'if #available' version check
37 |             player.endGeneratingPlaybackNotifications()
38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:43:55: error: setter for 'song' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
   |                                                       |- error: setter for 'song' is only available in macOS 10.15 or newer
   |                                                       `- note: add 'if #available' version check
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
/Users/admin/builder/spi-builder-workspace/Sources/Views/NowPlayingLoader.swift:45:37: error: setter for 'playbackState' is only available in macOS 10.15 or newer
 3 |
 4 | @MainActor
 5 | final class NowPlayingLoader: ObservableObject {
   |             `- note: add @available attribute to enclosing class
 6 |     @Published private(set) var song: Song?
 7 |     @Published private(set) var playbackState: MPMusicPlaybackState = .stopped
   :
39 |     }
40 |
41 |     private func refresh() {
   |                  `- note: add @available attribute to enclosing instance method
42 |         let song = player?.nowPlayingSong
43 |         if song?.mediaItem !== self.song?.mediaItem { self.song = song }
44 |         let state = player?.playbackState ?? .stopped
45 |         if state != playbackState { playbackState = state }
   |                                     |- error: setter for 'playbackState' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
46 |     }
47 | }
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/MediaBridge.xctestplan
BUILD FAILURE 6.1 macosSpm