The Swift Package Index logo.Swift Package Index

Build Information

Failed to build OpenImmersive, reference main (cd33fd), with Swift 6.2 for macOS (SPM) on 4 Feb 2026 09:16:08 UTC.

Build Command

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

Build Log

166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
181 |
182 |         let specifier = videoPlayer.bitrate >= 10_000_000 ? "%.0f" : "%.1f"
183 |         Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
    |                |- error: conformance of 'Double' to '_FormatSpecifiable' is only available in macOS 10.15 or newer
    |                `- note: add 'if #available' version check
184 |             .frame(width: 50)
185 |             .font(.system(size: 8).monospacedDigit())
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:184:14: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
    :
182 |         let specifier = videoPlayer.bitrate >= 10_000_000 ? "%.0f" : "%.1f"
183 |         Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 |             .frame(width: 50)
    |              |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
185 |             .font(.system(size: 8).monospacedDigit())
186 |             .foregroundStyle(textColor)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:14: error: 'font' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
    :
183 |         Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 |             .frame(width: 50)
185 |             .font(.system(size: 8).monospacedDigit())
    |              |- error: 'font' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
186 |             .foregroundStyle(textColor)
187 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:20: error: 'system(size:weight:design:)' is only available in macOS 13.0 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
    :
183 |         Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 |             .frame(width: 50)
185 |             .font(.system(size: 8).monospacedDigit())
    |                    |- error: 'system(size:weight:design:)' is only available in macOS 13.0 or newer
    |                    `- note: add 'if #available' version check
186 |             .foregroundStyle(textColor)
187 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:36: error: 'monospacedDigit()' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
    :
183 |         Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 |             .frame(width: 50)
185 |             .font(.system(size: 8).monospacedDigit())
    |                                    |- error: 'monospacedDigit()' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
186 |             .foregroundStyle(textColor)
187 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:186:14: error: 'foregroundStyle' is only available in macOS 12.0 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
176 |     }
177 |
178 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
179 |         let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 |             .opacity(0.8)
    :
184 |             .frame(width: 50)
185 |             .font(.system(size: 8).monospacedDigit())
186 |             .foregroundStyle(textColor)
    |              |- error: 'foregroundStyle' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
187 |     }
188 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:197:14: error: 'red' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
193 |     ///   - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 |     /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 |     private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
    |                  `- note: add '@available' attribute to enclosing instance method
196 |         if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 |             .red
    |              |- error: 'red' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
198 |         } else if options.count > 2 && bitrate < Double(options[1].bitrate - tolerance) {
199 |             .orange
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:199:14: error: 'orange' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
193 |     ///   - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 |     /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 |     private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
    |                  `- note: add '@available' attribute to enclosing instance method
196 |         if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 |             .red
198 |         } else if options.count > 2 && bitrate < Double(options[1].bitrate - tolerance) {
199 |             .orange
    |              |- error: 'orange' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
200 |         } else if options.count > 1 && bitrate < Double(options[0].bitrate - tolerance) {
201 |             .yellow
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:201:14: error: 'yellow' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
193 |     ///   - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 |     /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 |     private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
    |                  `- note: add '@available' attribute to enclosing instance method
196 |         if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 |             .red
    :
199 |             .orange
200 |         } else if options.count > 1 && bitrate < Double(options[0].bitrate - tolerance) {
201 |             .yellow
    |              |- error: 'yellow' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
202 |         } else {
203 |             .white
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:203:14: error: 'white' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
    |               `- note: add '@available' attribute to enclosing struct
168 |     /// The singleton video player control interface.
169 |     var videoPlayer: VideoPlayer
    :
193 |     ///   - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 |     /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 |     private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
    |                  `- note: add '@available' attribute to enclosing instance method
196 |         if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 |             .red
    :
201 |             .yellow
202 |         } else {
203 |             .white
    |              |- error: 'white' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
204 |         }
205 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:259:31: error: extraneous argument label 'uiColor:' in call
257 |             .background {
258 |                 if showingSlider {
259 |                     Color.init(uiColor: #colorLiteral(red: 0.6354077483, green: 0.6147486437, blue: 0.6041808543, alpha: 1))
    |                               `- error: extraneous argument label 'uiColor:' in call
260 |                         .clipShape(RoundedRectangle(cornerRadius: 30))
261 |                 }
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:43:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'paused' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 41 |     private(set) public var duration: Double = 0
 42 |     /// `true` if playback is currently paused, or if playback has completed.
 43 |     private(set) public var paused: Bool = false
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 44 |     /// `true` if playback is waiting to load the media.
 45 |     private(set) public var loading: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:289:9: error: 'HStack' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
    |         |- error: 'HStack' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
290 |             Button {
291 |                 videoPlayer.minus15()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:289:28: error: 'center' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
    |                            |- error: 'center' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
290 |             Button {
291 |                 videoPlayer.minus15()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:290:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    |             |- error: 'Button' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
291 |                 videoPlayer.minus15()
292 |             } label: {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:293:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
291 |                 videoPlayer.minus15()
292 |             } label: {
293 |                 Image(systemName: "gobackward.15")
    |                 |- error: 'Image' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
294 |                     .offset(y: -1)
295 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:293:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
291 |                 videoPlayer.minus15()
292 |             } label: {
293 |                 Image(systemName: "gobackward.15")
    |                 |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
    |                 `- note: add 'if #available' version check
294 |                     .offset(y: -1)
295 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:294:22: error: 'offset(x:y:)' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
292 |             } label: {
293 |                 Image(systemName: "gobackward.15")
294 |                     .offset(y: -1)
    |                      |- error: 'offset(x:y:)' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
295 |             }
296 |             .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:296:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
294 |                     .offset(y: -1)
295 |             }
296 |             .buttonBorderShape(.circle)
    |              |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
297 |             .controlSize(.large)
298 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:296:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
294 |                     .offset(y: -1)
295 |             }
296 |             .buttonBorderShape(.circle)
    |                                 |- error: 'circle' is only available in macOS 14.0 or newer
    |                                 `- note: add 'if #available' version check
297 |             .controlSize(.large)
298 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:297:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
295 |             }
296 |             .buttonBorderShape(.circle)
297 |             .controlSize(.large)
    |              |- error: 'controlSize' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
298 |             .tint(.clear)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:297:27: error: 'large' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
295 |             }
296 |             .buttonBorderShape(.circle)
297 |             .controlSize(.large)
    |                           |- error: 'large' is only available in macOS 11.0 or newer
    |                           `- note: add 'if #available' version check
298 |             .tint(.clear)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:298:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
296 |             .buttonBorderShape(.circle)
297 |             .controlSize(.large)
298 |             .tint(.clear)
    |              |- error: 'tint' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
299 |
300 |             Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:298:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
296 |             .buttonBorderShape(.circle)
297 |             .controlSize(.large)
298 |             .tint(.clear)
    |                    |- error: 'clear' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
299 |
300 |             Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:300:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
298 |             .tint(.clear)
299 |
300 |             Button {
    |             |- error: 'Button' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
301 |                 if videoPlayer.paused {
302 |                     videoPlayer.play()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:307:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
305 |                 }
306 |             } label: {
307 |                 Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
    |                 |- error: 'Image' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
308 |                     .padding(10)
309 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:307:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
305 |                 }
306 |             } label: {
307 |                 Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
    |                 |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
    |                 `- note: add 'if #available' version check
308 |                     .padding(10)
309 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:308:22: error: 'padding' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
306 |             } label: {
307 |                 Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
308 |                     .padding(10)
    |                      |- error: 'padding' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
309 |             }
310 |             .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:310:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
308 |                     .padding(10)
309 |             }
310 |             .buttonBorderShape(.circle)
    |              |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
311 |             .controlSize(.extraLarge)
312 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:310:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
308 |                     .padding(10)
309 |             }
310 |             .buttonBorderShape(.circle)
    |                                 |- error: 'circle' is only available in macOS 14.0 or newer
    |                                 `- note: add 'if #available' version check
311 |             .controlSize(.extraLarge)
312 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:311:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
309 |             }
310 |             .buttonBorderShape(.circle)
311 |             .controlSize(.extraLarge)
    |              |- error: 'controlSize' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
312 |             .tint(.clear)
313 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:311:27: error: 'extraLarge' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
309 |             }
310 |             .buttonBorderShape(.circle)
311 |             .controlSize(.extraLarge)
    |                           |- error: 'extraLarge' is only available in macOS 14.0 or newer
    |                           `- note: add 'if #available' version check
312 |             .tint(.clear)
313 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:312:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
310 |             .buttonBorderShape(.circle)
311 |             .controlSize(.extraLarge)
312 |             .tint(.clear)
    |              |- error: 'tint' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
313 |
314 |             Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:312:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
310 |             .buttonBorderShape(.circle)
311 |             .controlSize(.extraLarge)
312 |             .tint(.clear)
    |                    |- error: 'clear' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
313 |
314 |             Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:314:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
312 |             .tint(.clear)
313 |
314 |             Button {
    |             |- error: 'Button' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
315 |                 videoPlayer.plus15()
316 |             } label: {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:317:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
315 |                 videoPlayer.plus15()
316 |             } label: {
317 |                 Image(systemName: "goforward.15")
    |                 |- error: 'Image' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
318 |                     .offset(y: -1)
319 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:317:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
315 |                 videoPlayer.plus15()
316 |             } label: {
317 |                 Image(systemName: "goforward.15")
    |                 |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
    |                 `- note: add 'if #available' version check
318 |                     .offset(y: -1)
319 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:318:22: error: 'offset(x:y:)' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
316 |             } label: {
317 |                 Image(systemName: "goforward.15")
318 |                     .offset(y: -1)
    |                      |- error: 'offset(x:y:)' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
319 |             }
320 |             .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:320:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
318 |                     .offset(y: -1)
319 |             }
320 |             .buttonBorderShape(.circle)
    |              |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
321 |             .controlSize(.large)
322 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:320:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
318 |                     .offset(y: -1)
319 |             }
320 |             .buttonBorderShape(.circle)
    |                                 |- error: 'circle' is only available in macOS 14.0 or newer
    |                                 `- note: add 'if #available' version check
321 |             .controlSize(.large)
322 |             .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:321:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
319 |             }
320 |             .buttonBorderShape(.circle)
321 |             .controlSize(.large)
    |              |- error: 'controlSize' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
322 |             .tint(.clear)
323 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:321:27: error: 'large' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
319 |             }
320 |             .buttonBorderShape(.circle)
321 |             .controlSize(.large)
    |                           |- error: 'large' is only available in macOS 11.0 or newer
    |                           `- note: add 'if #available' version check
322 |             .tint(.clear)
323 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:322:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
320 |             .buttonBorderShape(.circle)
321 |             .controlSize(.large)
322 |             .tint(.clear)
    |              |- error: 'tint' is only available in macOS 12.0 or newer
    |              `- note: add 'if #available' version check
323 |         }
324 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:322:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
    |               `- note: add '@available' attribute to enclosing struct
278 |     /// The singleton video player control interface.
279 |     var videoPlayer: VideoPlayer
    :
286 |     }
287 |
288 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
289 |         HStack(alignment: .center) {
290 |             Button {
    :
320 |             .buttonBorderShape(.circle)
321 |             .controlSize(.large)
322 |             .tint(.clear)
    |                    |- error: 'clear' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
323 |         }
324 |     }
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:99:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'currentTime' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 97 |     ///
 98 |     /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
 99 |     public var currentTime: Double = 0
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
100 |     public enum ScrubState {
101 |         /// The scrubber is not active and reflects the video's current playback time.
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:41:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'duration' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 39 |     private(set) public var error: Error?
 40 |     /// The duration in seconds of the current video (0 if none).
 41 |     private(set) public var duration: Double = 0
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 42 |     /// `true` if playback is currently paused, or if playback has completed.
 43 |     private(set) public var paused: Bool = false
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:109:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'scrubState' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
107 |     }
108 |     /// The current state of the scrubber.
109 |     public var scrubState: ScrubState = .notScrubbing {
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
110 |        didSet {
111 |           switch scrubState {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:343:9: error: 'Slider' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
    |         |- error: 'Slider' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
344 |             if scrubbing {
345 |                 videoPlayer.scrubState = .scrubStarted
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:343:9: error: 'init(value:in:onEditingChanged:)' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
    |         |- error: 'init(value:in:onEditingChanged:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
344 |             if scrubbing {
345 |                 videoPlayer.scrubState = .scrubStarted
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:350:10: error: 'controlSize' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
348 |             }
349 |         }
350 |         .controlSize(.regular)
    |          |- error: 'controlSize' is only available in macOS 10.15 or newer
    |          `- note: add 'if #available' version check
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:351:10: error: 'tint' is only available in macOS 12.0 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
349 |         }
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
    |          |- error: 'tint' is only available in macOS 12.0 or newer
    |          `- note: add 'if #available' version check
352 |         .background(Color.white.opacity(0.5), in: .capsule)
353 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:10: error: 'background(_:in:fillStyle:)' is only available in macOS 12.0 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
    |          |- error: 'background(_:in:fillStyle:)' is only available in macOS 12.0 or newer
    |          `- note: add 'if #available' version check
353 |     }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:21: error: 'Color' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
    |                     |- error: 'Color' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
353 |     }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:27: error: 'white' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
    |                           |- error: 'white' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
353 |     }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:33: error: 'opacity' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
    |                                 |- error: 'opacity' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
353 |     }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:52: error: 'capsule' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
    |               `- note: add '@available' attribute to enclosing struct
330 |     /// The singleton video player control interface.
331 |     @Binding var videoPlayer: VideoPlayer
    :
340 |     }
341 |
342 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
343 |         Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 |             if scrubbing {
    :
350 |         .controlSize(.regular)
351 |         .tint(config.controlPanelScrubberTint)
352 |         .background(Color.white.opacity(0.5), in: .capsule)
    |                                                    |- error: 'capsule' is only available in macOS 10.15 or newer
    |                                                    `- note: add 'if #available' version check
353 |     }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:369:9: error: 'Text' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
    |         |- error: 'Text' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
370 |             .font(.caption).monospacedDigit()
371 |             .frame(width: frameWidth, alignment: .trailing)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:14: error: 'font' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
370 |             .font(.caption).monospacedDigit()
    |              |- error: 'font' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
371 |             .frame(width: frameWidth, alignment: .trailing)
372 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:20: error: 'caption' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
370 |             .font(.caption).monospacedDigit()
    |                    |- error: 'caption' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
371 |             .frame(width: frameWidth, alignment: .trailing)
372 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:29: error: 'monospacedDigit()' is only available in macOS 12.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
370 |             .font(.caption).monospacedDigit()
    |                             |- error: 'monospacedDigit()' is only available in macOS 12.0 or newer
    |                             `- note: add 'if #available' version check
371 |             .frame(width: frameWidth, alignment: .trailing)
372 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:371:14: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
370 |             .font(.caption).monospacedDigit()
371 |             .frame(width: frameWidth, alignment: .trailing)
    |              |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
372 |     }
373 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:371:51: error: 'trailing' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
366 |     }
367 |
368 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
369 |         Text(timeString)
370 |             .font(.caption).monospacedDigit()
371 |             .frame(width: frameWidth, alignment: .trailing)
    |                                                   |- error: 'trailing' is only available in macOS 10.15 or newer
    |                                                   `- note: add 'if #available' version check
372 |     }
373 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:25: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
380 |         }
381 |         let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
    |                         |- error: 'Duration' is only available in macOS 13.0 or newer
    |                         `- note: add 'if #available' version check
382 |
383 |         let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:84: error: 'time(pattern:)' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
380 |         }
381 |         let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
    |                                                                                    |- error: 'time(pattern:)' is only available in macOS 13.0 or newer
    |                                                                                    `- note: add 'if #available' version check
382 |
383 |         let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:120: error: 'time(pattern:)' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
380 |         }
381 |         let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
    |                                                                                                                        |- error: 'time(pattern:)' is only available in macOS 13.0 or newer
    |                                                                                                                        `- note: add 'if #available' version check
382 |
383 |         let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:383:27: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
381 |         let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
382 |
383 |         let currentTime = Duration
    |                           |- error: 'Duration' is only available in macOS 13.0 or newer
    |                           `- note: add 'if #available' version check
384 |             .seconds(videoPlayer.currentTime)
385 |             .formatted(timeFormat)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:384:14: error: 'seconds' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
382 |
383 |         let currentTime = Duration
384 |             .seconds(videoPlayer.currentTime)
    |              |- error: 'seconds' is only available in macOS 13.0 or newer
    |              `- note: add 'if #available' version check
385 |             .formatted(timeFormat)
386 |         let duration = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:385:14: error: 'formatted' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
383 |         let currentTime = Duration
384 |             .seconds(videoPlayer.currentTime)
385 |             .formatted(timeFormat)
    |              |- error: 'formatted' is only available in macOS 13.0 or newer
    |              `- note: add 'if #available' version check
386 |         let duration = Duration
387 |             .seconds(videoPlayer.duration)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:386:24: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
384 |             .seconds(videoPlayer.currentTime)
385 |             .formatted(timeFormat)
386 |         let duration = Duration
    |                        |- error: 'Duration' is only available in macOS 13.0 or newer
    |                        `- note: add 'if #available' version check
387 |             .seconds(videoPlayer.duration)
388 |             .formatted(timeFormat)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:387:14: error: 'seconds' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
385 |             .formatted(timeFormat)
386 |         let duration = Duration
387 |             .seconds(videoPlayer.duration)
    |              |- error: 'seconds' is only available in macOS 13.0 or newer
    |              `- note: add 'if #available' version check
388 |             .formatted(timeFormat)
389 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:388:14: error: 'formatted' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
    |               `- note: add '@available' attribute to enclosing struct
358 |     /// The singleton video player control interface.
359 |     var videoPlayer: VideoPlayer
    :
375 |     ///
376 |     /// If the duration is greater than one hour, the string representation shows hours.
377 |     var timeString: String {
    |         `- note: add '@available' attribute to enclosing property
378 |         guard videoPlayer.duration > 0 else {
379 |             return "--:-- / --:--"
    :
386 |         let duration = Duration
387 |             .seconds(videoPlayer.duration)
388 |             .formatted(timeFormat)
    |              |- error: 'formatted' is only available in macOS 13.0 or newer
    |              `- note: add 'if #available' version check
389 |
390 |         return "\(currentTime) / \(duration)"
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:72:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'audioOptions' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 70 |     private(set) public var selectedBitrateRungIndex: Int = -1
 71 |     /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
 72 |     private(set) public var audioOptions: [AudioOption] = []
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 73 |     /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
 74 |     private(set) public var selectedAudioIndex: Int = -1
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:74:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'selectedAudioIndex' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 72 |     private(set) public var audioOptions: [AudioOption] = []
 73 |     /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
 74 |     private(set) public var selectedAudioIndex: Int = -1
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 75 |     /// `true` if the control panel should be visible to the user.
 76 |     private(set) public var shouldShowControlPanel: Bool = true
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:70:5: note: expanded code originates here
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    | `- note: in expansion of macro 'Observable' on property 'selectedBitrateRungIndex' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 68 |     private(set) public var bitrateLadder: [BitrateRung] = []
 69 |     /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
 70 |     private(set) public var selectedBitrateRungIndex: Int = -1
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 71 |     /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
 72 |     private(set) public var audioOptions: [AudioOption] = []
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:417:36: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
416 |                 let zippedOptions = Array(zip(options.indices, options))
417 |                 let isOn: (Int) -> Binding<Bool> = { index in
    |                                    |- error: 'Binding' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
418 |                     Binding {
419 |                         videoPlayer.selectedAudioIndex == index
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:454:36: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
452 |                 let options = videoPlayer.bitrateLadder
453 |                 let zippedOptions = Array(zip(options.indices, options))
454 |                 let isOn: (Int) -> Binding<Bool> = { index in
    |                                    |- error: 'Binding' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
455 |                     Binding {
456 |                         videoPlayer.selectedBitrateRungIndex == index
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:9: error: 'VStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |         |- error: 'VStack' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:28: error: 'trailing' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |                            |- error: 'trailing' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |                                      |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |                                      |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:418:21: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
416 |                 let zippedOptions = Array(zip(options.indices, options))
417 |                 let isOn: (Int) -> Binding<Bool> = { index in
418 |                     Binding {
    |                     |- error: 'Binding' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
419 |                         videoPlayer.selectedAudioIndex == index
420 |                     } set: { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:17: error: 'HStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
423 |                 }
424 |
425 |                 HStack {
    |                 |- error: 'HStack' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:24: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
423 |                 }
424 |
425 |                 HStack {
    |                        |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:21: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
424 |
425 |                 HStack {
426 |                     Toggle(isOn: isOn(-1)) {
    |                     |- error: 'Toggle' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
427 |                         Text("Default")
428 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:21: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
424 |
425 |                 HStack {
426 |                     Toggle(isOn: isOn(-1)) {
    |                     |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
427 |                         Text("Default")
428 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:427:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
425 |                 HStack {
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
    |                         |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
428 |                             .font(.subheadline)
429 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:427:25: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
425 |                 HStack {
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
    |                         |- error: 'Text' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
428 |                             .font(.subheadline)
429 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:428:30: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
428 |                             .font(.subheadline)
    |                              |- error: 'font' is only available in macOS 10.15 or newer
    |                              `- note: add 'if #available' version check
429 |                     }
430 |                     .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:428:36: error: 'subheadline' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
428 |                             .font(.subheadline)
    |                                    |- error: 'subheadline' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
429 |                     }
430 |                     .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:44: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
424 |
425 |                 HStack {
426 |                     Toggle(isOn: isOn(-1)) {
    |                                            |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                            `- note: add 'if #available' version check
427 |                         Text("Default")
428 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:430:22: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
428 |                             .font(.subheadline)
429 |                     }
430 |                     .toggleStyle(.button)
    |                      |- error: 'toggleStyle' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
431 |                     .controlSize(.small)
432 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:430:35: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
428 |                             .font(.subheadline)
429 |                     }
430 |                     .toggleStyle(.button)
    |                                   |- error: 'button' is only available in macOS 12.0 or newer
    |                                   `- note: add 'if #available' version check
431 |                     .controlSize(.small)
432 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:431:22: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
429 |                     }
430 |                     .toggleStyle(.button)
431 |                     .controlSize(.small)
    |                      |- error: 'controlSize' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
432 |
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
431 |                     .controlSize(.small)
432 |
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: 'ForEach' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
431 |                     .controlSize(.small)
432 |
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: 'ForEach' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
431 |                     .controlSize(.small)
432 |
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:434:25: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
432 |
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
434 |                         Toggle(isOn: isOn(index)) {
    |                         |- error: 'Toggle' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
435 |                             VStack(spacing: -3) {
436 |                                 Text(option.description)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:435:29: error: 'VStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
    |                             |- error: 'VStack' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
436 |                                 Text(option.description)
437 |                                     .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:436:33: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
436 |                                 Text(option.description)
    |                                 |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
437 |                                     .font(.caption)
438 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:436:33: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
436 |                                 Text(option.description)
    |                                 |- error: 'Text' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
437 |                                     .font(.caption)
438 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:437:38: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
435 |                             VStack(spacing: -3) {
436 |                                 Text(option.description)
437 |                                     .font(.caption)
    |                                      |- error: 'font' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
438 |
439 |                                 Text(option.groupId.capitalized)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:437:44: error: 'caption' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
435 |                             VStack(spacing: -3) {
436 |                                 Text(option.description)
437 |                                     .font(.caption)
    |                                            |- error: 'caption' is only available in macOS 10.15 or newer
    |                                            `- note: add 'if #available' version check
438 |
439 |                                 Text(option.groupId.capitalized)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:439:33: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
437 |                                     .font(.caption)
438 |
439 |                                 Text(option.groupId.capitalized)
    |                                 |- error: 'Text' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
440 |                                     .font(.caption2)
441 |                                     .opacity(0.8)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:440:38: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
438 |
439 |                                 Text(option.groupId.capitalized)
440 |                                     .font(.caption2)
    |                                      |- error: 'font' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
441 |                                     .opacity(0.8)
442 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:440:44: error: 'caption2' is only available in macOS 11.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
438 |
439 |                                 Text(option.groupId.capitalized)
440 |                                     .font(.caption2)
    |                                            |- error: 'caption2' is only available in macOS 11.0 or newer
    |                                            `- note: add 'if #available' version check
441 |                                     .opacity(0.8)
442 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:441:38: error: 'opacity' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
439 |                                 Text(option.groupId.capitalized)
440 |                                     .font(.caption2)
441 |                                     .opacity(0.8)
    |                                      |- error: 'opacity' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
442 |                             }
443 |                             .padding(.vertical, -5)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:435:49: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
433 |                     ForEach(zippedOptions, id: \.0) { index, option in
434 |                         Toggle(isOn: isOn(index)) {
435 |                             VStack(spacing: -3) {
    |                                                 |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                                 `- note: add 'if #available' version check
436 |                                 Text(option.description)
437 |                                     .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:443:30: error: 'padding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
441 |                                     .opacity(0.8)
442 |                             }
443 |                             .padding(.vertical, -5)
    |                              |- error: 'padding' is only available in macOS 10.15 or newer
    |                              `- note: add 'if #available' version check
444 |                         }
445 |                         .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:445:26: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
443 |                             .padding(.vertical, -5)
444 |                         }
445 |                         .toggleStyle(.button)
    |                          |- error: 'toggleStyle' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
446 |                         .controlSize(.small)
447 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:445:39: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
443 |                             .padding(.vertical, -5)
444 |                         }
445 |                         .toggleStyle(.button)
    |                                       |- error: 'button' is only available in macOS 12.0 or newer
    |                                       `- note: add 'if #available' version check
446 |                         .controlSize(.small)
447 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:446:26: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
444 |                         }
445 |                         .toggleStyle(.button)
446 |                         .controlSize(.small)
    |                          |- error: 'controlSize' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
447 |                     }
448 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:24: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
423 |                 }
424 |
425 |                 HStack {
    |                        |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
426 |                     Toggle(isOn: isOn(-1)) {
427 |                         Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:414:43: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    |                                           |- error: 'buildIf' is only available in macOS 10.15 or newer
    |                                           `- note: add 'if #available' version check
415 |                 let options = videoPlayer.audioOptions
416 |                 let zippedOptions = Array(zip(options.indices, options))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:449:13: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
447 |                     }
448 |                 }
449 |             }
    |             |- error: 'buildIf' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
450 |
451 |             if videoPlayer.canChooseResolution {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:455:21: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
453 |                 let zippedOptions = Array(zip(options.indices, options))
454 |                 let isOn: (Int) -> Binding<Bool> = { index in
455 |                     Binding {
    |                     |- error: 'Binding' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
456 |                         videoPlayer.selectedBitrateRungIndex == index
457 |                     } set: { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:17: error: 'HStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
460 |                 }
461 |
462 |                 HStack {
    |                 |- error: 'HStack' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:24: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
460 |                 }
461 |
462 |                 HStack {
    |                        |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:21: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
461 |
462 |                 HStack {
463 |                     Toggle(isOn: isOn(-1)) {
    |                     |- error: 'Toggle' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
464 |                         Text("Auto")
465 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:21: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
461 |
462 |                 HStack {
463 |                     Toggle(isOn: isOn(-1)) {
    |                     |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
464 |                         Text("Auto")
465 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:464:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
462 |                 HStack {
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
    |                         |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
465 |                             .font(.subheadline)
466 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:464:25: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
462 |                 HStack {
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
    |                         |- error: 'Text' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
465 |                             .font(.subheadline)
466 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:465:30: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
465 |                             .font(.subheadline)
    |                              |- error: 'font' is only available in macOS 10.15 or newer
    |                              `- note: add 'if #available' version check
466 |                     }
467 |                     .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:465:36: error: 'subheadline' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
465 |                             .font(.subheadline)
    |                                    |- error: 'subheadline' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
466 |                     }
467 |                     .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:44: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
461 |
462 |                 HStack {
463 |                     Toggle(isOn: isOn(-1)) {
    |                                            |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                            `- note: add 'if #available' version check
464 |                         Text("Auto")
465 |                             .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:467:22: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
465 |                             .font(.subheadline)
466 |                     }
467 |                     .toggleStyle(.button)
    |                      |- error: 'toggleStyle' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
468 |                     .controlSize(.small)
469 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:467:35: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
465 |                             .font(.subheadline)
466 |                     }
467 |                     .toggleStyle(.button)
    |                                   |- error: 'button' is only available in macOS 12.0 or newer
    |                                   `- note: add 'if #available' version check
468 |                     .controlSize(.small)
469 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:468:22: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
466 |                     }
467 |                     .toggleStyle(.button)
468 |                     .controlSize(.small)
    |                      |- error: 'controlSize' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
468 |                     .controlSize(.small)
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: 'ForEach' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
468 |                     .controlSize(.small)
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: 'ForEach' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
468 |                     .controlSize(.small)
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
    |                     |- error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:471:25: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
471 |                         Toggle(isOn: isOn(index)) {
    |                         |- error: 'Toggle' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
472 |                             Text(option.resolutionString)
473 |                                 .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:472:29: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
    |                             |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
473 |                                 .font(.caption)
474 |                             Text(option.bitrateString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:472:29: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
    |                             |- error: 'Text' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
473 |                                 .font(.caption)
474 |                             Text(option.bitrateString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:473:34: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
473 |                                 .font(.caption)
    |                                  |- error: 'font' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
474 |                             Text(option.bitrateString)
475 |                                 .font(.caption2)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:473:40: error: 'caption' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
471 |                         Toggle(isOn: isOn(index)) {
472 |                             Text(option.resolutionString)
473 |                                 .font(.caption)
    |                                        |- error: 'caption' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
474 |                             Text(option.bitrateString)
475 |                                 .font(.caption2)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:474:29: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
472 |                             Text(option.resolutionString)
473 |                                 .font(.caption)
474 |                             Text(option.bitrateString)
    |                             |- error: 'Text' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
475 |                                 .font(.caption2)
476 |                                 .opacity(0.8)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:475:34: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
473 |                                 .font(.caption)
474 |                             Text(option.bitrateString)
475 |                                 .font(.caption2)
    |                                  |- error: 'font' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
476 |                                 .opacity(0.8)
477 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:475:40: error: 'caption2' is only available in macOS 11.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
473 |                                 .font(.caption)
474 |                             Text(option.bitrateString)
475 |                                 .font(.caption2)
    |                                        |- error: 'caption2' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
476 |                                 .opacity(0.8)
477 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:476:34: error: 'opacity' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
474 |                             Text(option.bitrateString)
475 |                                 .font(.caption2)
476 |                                 .opacity(0.8)
    |                                  |- error: 'opacity' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
477 |                         }
478 |                         .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:471:51: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
469 |
470 |                     ForEach(zippedOptions, id: \.0) { index, option in
471 |                         Toggle(isOn: isOn(index)) {
    |                                                   |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
    |                                                   `- note: add 'if #available' version check
472 |                             Text(option.resolutionString)
473 |                                 .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:478:26: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
476 |                                 .opacity(0.8)
477 |                         }
478 |                         .toggleStyle(.button)
    |                          |- error: 'toggleStyle' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
479 |                         .controlSize(.small)
480 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:478:39: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
476 |                                 .opacity(0.8)
477 |                         }
478 |                         .toggleStyle(.button)
    |                                       |- error: 'button' is only available in macOS 12.0 or newer
    |                                       `- note: add 'if #available' version check
479 |                         .controlSize(.small)
480 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:479:26: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
477 |                         }
478 |                         .toggleStyle(.button)
479 |                         .controlSize(.small)
    |                          |- error: 'controlSize' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
480 |                     }
481 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:24: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
460 |                 }
461 |
462 |                 HStack {
    |                        |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
463 |                     Toggle(isOn: isOn(-1)) {
464 |                         Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:451:48: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
449 |             }
450 |
451 |             if videoPlayer.canChooseResolution {
    |                                                |- error: 'buildIf' is only available in macOS 10.15 or newer
    |                                                `- note: add 'if #available' version check
452 |                 let options = videoPlayer.bitrateLadder
453 |                 let zippedOptions = Array(zip(options.indices, options))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:482:13: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
414 |             if videoPlayer.canChooseAudio {
    :
480 |                     }
481 |                 }
482 |             }
    |             |- error: 'buildIf' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
483 |         }
484 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |                                      |- error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
    |               `- note: add '@available' attribute to enclosing struct
402 |     /// The singleton video player control interface.
403 |     @Binding var videoPlayer: VideoPlayer
    :
410 |     }
411 |
412 |     public var body: some View {
    |                `- note: add '@available' attribute to enclosing property
413 |         VStack(alignment: .trailing) {
    |                                      |- error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
414 |             if videoPlayer.canChooseAudio {
415 |                 let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:13:6: error: 'State' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   |      `- error: 'State' is only available in macOS 10.15 or newer
14 |
15 |     /// The nested view.
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:25:18: error: 'ViewBuilder' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
23 |     ///   - content: the view builder for the view to nest.
24 |     ///   - loadItemAction: the callback to execute after a file has been picked.
25 |     public init(@ViewBuilder content: @escaping () -> Content, loadItemAction: @escaping VideoItemAction) {
   |            |     `- error: 'ViewBuilder' is only available in macOS 10.15 or newer
   |            `- note: add '@available' attribute to enclosing initializer
26 |         self.content = content
27 |         self.loadItemAction = loadItemAction
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:30:27: error: 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                |          `- error: 'View' is only available in macOS 10.15 or newer
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:11:35: error: 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               |                   `- error: 'View' is only available in macOS 10.15 or newer
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:9: error: extraneous argument label 'windowStyle:' in macro expansion
72 | }
73 |
74 | #Preview(windowStyle: .automatic) {
   |         `- error: extraneous argument label 'windowStyle:' in macro expansion
75 |     DropTarget() {
76 |         Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:24: error: type 'String?' has no member 'automatic'
72 | }
73 |
74 | #Preview(windowStyle: .automatic) {
   |                        `- error: type 'String?' has no member 'automatic'
75 |     DropTarget() {
76 |         Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:9: error: 'Group' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |         |- error: 'Group' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:9: error: 'init(content:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |         |- error: 'init(content:)' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'RoundedRectangle' to 'InsettableShape' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |               |- error: conformance of 'RoundedRectangle' to 'InsettableShape' is only available in macOS 10.15 or newer
   |               `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |               |- error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
   |               `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |               |- error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
   |               `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:33:17: error: 'ZStack' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
   |                 |- error: 'ZStack' is only available in macOS 10.15 or newer
   |                 `- note: add 'if #available' version check
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:21: error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
34 |                     Color.clear
   |                     |- error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
   |                     `- note: add 'if #available' version check
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:21: error: 'Color' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
34 |                     Color.clear
   |                     |- error: 'Color' is only available in macOS 10.15 or newer
   |                     `- note: add 'if #available' version check
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:27: error: 'clear' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
34 |                     Color.clear
   |                           |- error: 'clear' is only available in macOS 10.15 or newer
   |                           `- note: add 'if #available' version check
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:35:21: error: 'VStack' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
   |                     |- error: 'VStack' is only available in macOS 10.15 or newer
   |                     `- note: add 'if #available' version check
36 |                         Image(systemName: "photo.badge.arrow.down")
37 |                             .resizable()
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:36:25: error: 'Image' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
   |                         |- error: 'Image' is only available in macOS 10.15 or newer
   |                         `- note: add 'if #available' version check
37 |                             .resizable()
38 |                             .aspectRatio(contentMode: .fit)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:36:25: error: 'init(systemName:)' is only available in macOS 11.0 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
   |                         |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
   |                         `- note: add 'if #available' version check
37 |                             .resizable()
38 |                             .aspectRatio(contentMode: .fit)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:37:30: error: 'resizable(capInsets:resizingMode:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
35 |                     VStack(spacing: 20) {
36 |                         Image(systemName: "photo.badge.arrow.down")
37 |                             .resizable()
   |                              |- error: 'resizable(capInsets:resizingMode:)' is only available in macOS 10.15 or newer
   |                              `- note: add 'if #available' version check
38 |                             .aspectRatio(contentMode: .fit)
39 |                             .frame(width: 50, height: 50)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:38:30: error: 'aspectRatio(_:contentMode:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
36 |                         Image(systemName: "photo.badge.arrow.down")
37 |                             .resizable()
38 |                             .aspectRatio(contentMode: .fit)
   |                              |- error: 'aspectRatio(_:contentMode:)' is only available in macOS 10.15 or newer
   |                              `- note: add 'if #available' version check
39 |                             .frame(width: 50, height: 50)
40 |                         Text("Drop your video here")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:39:30: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
37 |                             .resizable()
38 |                             .aspectRatio(contentMode: .fit)
39 |                             .frame(width: 50, height: 50)
   |                              |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
   |                              `- note: add 'if #available' version check
40 |                         Text("Drop your video here")
41 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:40:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
38 |                             .aspectRatio(contentMode: .fit)
39 |                             .frame(width: 50, height: 50)
40 |                         Text("Drop your video here")
   |                         |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
   |                         `- note: add 'if #available' version check
41 |                     }
42 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:40:25: error: 'Text' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
38 |                             .aspectRatio(contentMode: .fit)
39 |                             .frame(width: 50, height: 50)
40 |                         Text("Drop your video here")
   |                         |- error: 'Text' is only available in macOS 10.15 or newer
   |                         `- note: add 'if #available' version check
41 |                     }
42 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:35:41: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
   |                                         |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
   |                                         `- note: add 'if #available' version check
36 |                         Image(systemName: "photo.badge.arrow.down")
37 |                             .resizable()
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:33:24: error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
33 |                 ZStack {
   |                        |- error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
   |                        `- note: add 'if #available' version check
34 |                     Color.clear
35 |                     VStack(spacing: 20) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:43:18: error: 'background(_:alignment:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
41 |                     }
42 |                 }
43 |                 .background(
   |                  |- error: 'background(_:alignment:)' is only available in macOS 10.15 or newer
   |                  `- note: add 'if #available' version check
44 |                     // Espouse the boundaries of the app window
45 |                     RoundedRectangle(cornerRadius: 50)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:45:21: error: 'RoundedRectangle' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
43 |                 .background(
44 |                     // Espouse the boundaries of the app window
45 |                     RoundedRectangle(cornerRadius: 50)
   |                     |- error: 'RoundedRectangle' is only available in macOS 10.15 or newer
   |                     `- note: add 'if #available' version check
46 |                         .fill(.clear)
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:46:26: error: 'fill(_:style:)' is only available in macOS 14.0 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
44 |                     // Espouse the boundaries of the app window
45 |                     RoundedRectangle(cornerRadius: 50)
46 |                         .fill(.clear)
   |                          |- error: 'fill(_:style:)' is only available in macOS 14.0 or newer
   |                          `- note: add 'if #available' version check
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:46:32: error: 'clear' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
44 |                     // Espouse the boundaries of the app window
45 |                     RoundedRectangle(cornerRadius: 50)
46 |                         .fill(.clear)
   |                                |- error: 'clear' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:47:26: error: 'strokeBorder(_:style:antialiased:)' is only available in macOS 14.0 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
45 |                     RoundedRectangle(cornerRadius: 50)
46 |                         .fill(.clear)
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
   |                          |- error: 'strokeBorder(_:style:antialiased:)' is only available in macOS 14.0 or newer
   |                          `- note: add 'if #available' version check
48 |                 )
49 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:47:46: error: 'StrokeStyle' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
45 |                     RoundedRectangle(cornerRadius: 50)
46 |                         .fill(.clear)
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
   |                                              |- error: 'StrokeStyle' is only available in macOS 10.15 or newer
   |                                              `- note: add 'if #available' version check
48 |                 )
49 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:32:27: error: 'buildEither(first:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   |                           |- error: 'buildEither(first:)' is only available in macOS 10.15 or newer
   |                           `- note: add 'if #available' version check
33 |                 ZStack {
34 |                     Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:49:20: error: 'buildEither(second:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
47 |                         .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 |                 )
49 |             } else {
   |                    |- error: 'buildEither(second:)' is only available in macOS 10.15 or newer
   |                    `- note: add 'if #available' version check
50 |                 content()
51 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of '_ConditionalContent<TrueContent, FalseContent>' to 'View' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
   |               |- error: conformance of '_ConditionalContent<TrueContent, FalseContent>' to 'View' is only available in macOS 10.15 or newer
   |               `- note: add 'if #available' version check
32 |             if isTargeted {
33 |                 ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:53:10: error: 'contentShape(_:eoFill:)' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
51 |             }
52 |         }
53 |         .contentShape(.rect)
   |          |- error: 'contentShape(_:eoFill:)' is only available in macOS 10.15 or newer
   |          `- note: add 'if #available' version check
54 |         .dropDestination(for: SpatialVideo.self) { videos, _ in
55 |             guard let video = videos.first else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:53:24: error: 'rect' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
51 |             }
52 |         }
53 |         .contentShape(.rect)
   |                        |- error: 'rect' is only available in macOS 10.15 or newer
   |                        `- note: add 'if #available' version check
54 |         .dropDestination(for: SpatialVideo.self) { videos, _ in
55 |             guard let video = videos.first else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:54:10: error: 'dropDestination(for:action:isTargeted:)' is only available in macOS 13.0 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
52 |         }
53 |         .contentShape(.rect)
54 |         .dropDestination(for: SpatialVideo.self) { videos, _ in
   |          |- error: 'dropDestination(for:action:isTargeted:)' is only available in macOS 13.0 or newer
   |          `- note: add 'if #available' version check
55 |             guard let video = videos.first else {
56 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:70:32: error: 'withAnimation' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
68 |             loadItemAction(item)
69 |             return true
70 |         } isTargeted: { val in withAnimation { isTargeted = val } }
   |                                |- error: 'withAnimation' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
71 |     }
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:70:48: error: setter for 'isTargeted' is only available in macOS 10.15 or newer
 9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
   |               `- note: add '@available' attribute to enclosing generic struct
12 |     /// Whether a dragged video is hovering the view at the moment.
13 |     @State var isTargeted: Bool = false
   :
28 |     }
29 |
30 |     public var body: some View {
   |                `- note: add '@available' attribute to enclosing property
31 |         Group {
32 |             if isTargeted {
   :
68 |             loadItemAction(item)
69 |             return true
70 |         } isTargeted: { val in withAnimation { isTargeted = val } }
   |                                                |- error: setter for 'isTargeted' is only available in macOS 10.15 or newer
   |                                                `- note: add 'if #available' version check
71 |     }
72 | }
BUILD FAILURE 6.2 macosSpm