The Swift Package Index logo.Swift Package Index

Build Information

Failed to build OpenImmersive, reference 1.6.3 (670e0b), with Swift 6.4 for macOS (SPM) on 9 Oct 2026 06:21:18 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/acuteimmersive/openimmersivelib.git
Reference: 1.6.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/acuteimmersive/openimmersivelib
 * tag               1.6.3      -> FETCH_HEAD
HEAD is now at 670e0bc Merge pull request #34 from rdotrifork/bugfix/fix-field-of-view
Cloned https://github.com/acuteimmersive/openimmersivelib.git
Revision (git rev-parse @):
670e0bc6701095d0b2aa5b80d0b8258763b57632
SUCCESS checkout https://github.com/acuteimmersive/openimmersivelib.git at 1.6.3
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/acuteimmersive/openimmersivelib.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning 27 / 66]
[Planning deferred tasks]
[19 / 28]
[20 / 29] OpenImmersive
[31 / 137]
[34 / 137]
[41 / 137]
[46 / 137]
[48 / 137]
[53 / 137]
[55 / 137]
[57 / 137]
[61 / 137]
[66 / 137]
[69 / 137]
[71 / 137]
[72 / 137]
[84 / 137]
[89 / 137]
[92 / 137]
[100 / 137]
[101 / 137]
[106 / 137]
[108 / 137]
[109 / 137]
[115 / 137]
[116 / 137]
[117 / 137]
[128 / 137] OpenImmersive
error: SwiftCompile normal arm64 failed with a nonzero exit code. Command line:     cd /Users/admin/builder

/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:36:27: error: 'ARKitSession' is only available in macOS 26.0 or newer
11 |
12 | /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
13 | public class HeadTracker {
   |              `- note: add '@available' attribute to enclosing class
14 |     public enum State {
15 |         /// Head tracking is stopped.
   :
34 |     }
35 |
36 |     private let session = ARKitSession()
   |                           `- error: 'ARKitSession' is only available in macOS 26.0 or newer
37 |     private let worldTracking = WorldTrackingProvider()
38 |     private var subscription: EventSubscription?
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:36:27: error: 'init()' is unavailable in macOS
34 |     }
35 |
36 |     private let session = ARKitSession()
   |                           `- error: 'init()' is unavailable in macOS
37 |     private let worldTracking = WorldTrackingProvider()
38 |     private var subscription: EventSubscription?
ARKit.ARKitSession.init:3:22: note: 'init()' has been explicitly marked unavailable here
1 | class ARKitSession {
2 | @available(macOS, unavailable)
3 |   public convenience init()}
  |                      `- note: 'init()' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:37:33: error: 'WorldTrackingProvider' is only available in macOS 26.0 or newer
11 |
12 | /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
13 | public class HeadTracker {
   |              `- note: add '@available' attribute to enclosing class
14 |     public enum State {
15 |         /// Head tracking is stopped.
   :
35 |
36 |     private let session = ARKitSession()
37 |     private let worldTracking = WorldTrackingProvider()
   |                                 `- error: 'WorldTrackingProvider' is only available in macOS 26.0 or newer
38 |     private var subscription: EventSubscription?
39 |
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:38:31: error: 'EventSubscription' is only available in macOS 15.0 or newer
11 |
12 | /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
13 | public class HeadTracker {
   |              `- note: add '@available' attribute to enclosing class
14 |     public enum State {
15 |         /// Head tracking is stopped.
   :
36 |     private let session = ARKitSession()
37 |     private let worldTracking = WorldTrackingProvider()
38 |     private var subscription: EventSubscription?
   |                               `- error: 'EventSubscription' is only available in macOS 15.0 or newer
39 |
40 |     /// Starts head tracking by starting the underlying `ARKitSession` and subscribes to pose update events.
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:44:32: error: cannot find type 'RealityViewContent' in scope
42 |     ///   - content: The `RealityViewContent` provided by the `RealityView`'s `body` closure.
43 |     ///   - handler: A closure that runs when the head pose update occurs.
44 |     public func start(content: RealityViewContent, _ handler: @escaping (SceneEvents.Update) -> Void) {
   |                                `- error: cannot find type 'RealityViewContent' in scope
45 |         guard state == .stopped else { return }
46 |         state = .starting
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:13:2: error: 'Observable()' is only available in macOS 14.0 or newer
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    |  `- error: 'Observable()' is only available in macOS 14.0 or newer
 14 | public class VideoPlayer: Sendable {
 15 |     //MARK: Video Player and Video Renderer
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:19: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 'injector' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
 17 |     public let player = AVPlayer()
 18 |     /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
 19 |     private var injector: APMPInjector?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 20 |     /// The video renderer to use for media that are frame-packed side by side or over under.
 21 |     public var renderer: AVSampleBufferVideoRenderer? {
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:27: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 'title' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 25 |     //MARK: Variables accessible to the UI
 26 |     /// The title of the current video (empty string if none).
 27 |     private(set) public var title: String = ""
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 28 |     /// A short description of the current video, displayed under the title (empty string if none).
 29 |     private(set) public var description: String = ""
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:29: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 'description' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 27 |     private(set) public var title: String = ""
 28 |     /// A short description of the current video, displayed under the title (empty string if none).
 29 |     private(set) public var description: String = ""
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 30 |     /// The url of the current video.
 31 |     private(set) public var url: URL?
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:31: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 'url' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 29 |     private(set) public var description: String = ""
 30 |     /// The url of the current video.
 31 |     private(set) public var url: URL?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 32 |     /// The AVFoundation metadata of the current video.
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
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:33: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 'metadata' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 31 |     private(set) public var url: URL?
 32 |     /// The AVFoundation metadata of the current video.
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 34 |     /// The frame packing type of the video media, if any.
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
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:35: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 'framePacking' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
 34 |     /// The frame packing type of the video media, if any.
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 36 |     /// The projection type of the video media, defaults to VR180.
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
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:37: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 'projection' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
 36 |     /// The projection type of the video media, defaults to VR180.
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 38 |     /// A playback error, if any.
 39 |     private(set) public var error: Error?
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:39: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 'error' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
 38 |     /// A playback error, if any.
 39 |     private(set) public var error: Error?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 40 |     /// The duration in seconds of the current video (0 if none).
 41 |     private(set) public var duration: Double = 0
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: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
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:45: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 'loading' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 43 |     private(set) public var paused: Bool = false
 44 |     /// `true` if playback is waiting to load the media.
 45 |     private(set) public var loading: Bool = false
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 46 |     /// `true` if playback is temporarily interrupted due to buffering (HLS only).
 47 |     private(set) public var buffering: 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:47: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 'buffering' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 45 |     private(set) public var loading: Bool = false
 46 |     /// `true` if playback is temporarily interrupted due to buffering (HLS only).
 47 |     private(set) public var buffering: Bool = false
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 48 |     /// `true` if playback reached the end of the video and is no longer playing.
 49 |     private(set) public var hasReachedEnd: 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:49: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 'hasReachedEnd' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 47 |     private(set) public var buffering: Bool = false
 48 |     /// `true` if playback reached the end of the video and is no longer playing.
 49 |     private(set) public var hasReachedEnd: Bool = false
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 50 |     /// The callback to execute when playback reaches the end of the video.
 51 |     public var playbackEndedAction: CustomAction?
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:51: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 'playbackEndedAction' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 49 |     private(set) public var hasReachedEnd: Bool = false
 50 |     /// The callback to execute when playback reaches the end of the video.
 51 |     public var playbackEndedAction: CustomAction?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 52 |     /// The aspect ratio of the current media (width / height) (equirectangular projection only).
 53 |     private(set) public var aspectRatio: Float?
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:53: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 'aspectRatio' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 51 |     public var playbackEndedAction: CustomAction?
 52 |     /// The aspect ratio of the current media (width / height) (equirectangular projection only).
 53 |     private(set) public var aspectRatio: Float?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 54 |     /// The horizontal field of view for the current media (equirectangular projection only).
 55 |     private(set) public var horizontalFieldOfView: Float = 180.0
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:55: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 'horizontalFieldOfView' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 53 |     private(set) public var aspectRatio: Float?
 54 |     /// The horizontal field of view for the current media (equirectangular projection only).
 55 |     private(set) public var horizontalFieldOfView: Float = 180.0
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 56 |     /// The vertical field of view for the current media (equirectangular projection only).
 57 |     public var verticalFieldOfView: Float {
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:66: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 'bitrate' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 64 |     }
 65 |     /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
 66 |     private(set) public var bitrate: Double = 0
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 67 |     /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
 68 |     private(set) public var bitrateLadder: [BitrateRung] = []
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:68: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 'bitrateLadder' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 66 |     private(set) public var bitrate: Double = 0
 67 |     /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
 68 |     private(set) public var bitrateLadder: [BitrateRung] = []
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 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: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] = []
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:76: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 'shouldShowControlPanel' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 74 |     private(set) public var selectedAudioIndex: Int = -1
 75 |     /// `true` if the control panel should be visible to the user.
 76 |     private(set) public var shouldShowControlPanel: Bool = true
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 77 |     /// `true` if the control panel should present resolution & audio options to the user.
 78 |     private(set) public var shouldShowPlaybackOptions: 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:78: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 'shouldShowPlaybackOptions' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 76 |     private(set) public var shouldShowControlPanel: Bool = true
 77 |     /// `true` if the control panel should present resolution & audio options to the user.
 78 |     private(set) public var shouldShowPlaybackOptions: Bool = false
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
 79 |     /// `true` if the HLS stream has a bitrate ladder with at least 2 rungs and the custom configuration doesn't prevent user selection.
 80 |     public var canChooseResolution: Bool {
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: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 {
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:133: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 'displayLink' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
131 |
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
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:134: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 'videoOutput' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
134 |     private var videoOutput: AVPlayerItemVideoOutput?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
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:135: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 'timeObserver' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
133 |     private var displayLink: CADisplayLink?
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
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:136: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 'durationObserver' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
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:137: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 'mediaStatusObserver' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
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:138: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 'bufferingObserver' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
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:139: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 'dismissControlPanelTask' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
140 |     private var playlistReader: PlaylistReader?
141 |     private var delegate: PlaylistLoaderDelegate?
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:140: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 'playlistReader' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
141 |     private var delegate: PlaylistLoaderDelegate?
142 |
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:141: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 'delegate' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
141 |     private var delegate: PlaylistLoaderDelegate?
    +--- macro expansion @Observable -----------------------------------
    |1 | @ObservationTracked
    |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
142 |
143 |     //MARK: Public methods
macro expansion @Observable:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:639:1: 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 class 'VideoPlayer' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
637 |         dismissControlPanelTask = nil
638 |     }
639 | }
    +--- macro expansion @Observable -----------------------------------
    | 1 | @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
    |   |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    | 2 |
    | 3 | internal nonisolated func access<$s13OpenImmersive11VideoPlayer10ObservablefMm_6MemberfMu_>(
    +-------------------------------------------------------------------
640 |
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:19:40: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
 17 |     public let player = AVPlayer()
 18 |     /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
 19 |     private var injector: APMPInjector?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _injector: APMPInjector?
    +-------------------------------------------------------------------
 20 |     /// The video renderer to use for media that are frame-packed side by side or over under.
 21 |     public var renderer: AVSampleBufferVideoRenderer? {
macro expansion @ObservationTracked:4:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:27:47: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 25 |     //MARK: Variables accessible to the UI
 26 |     /// The title of the current video (empty string if none).
 27 |     private(set) public var title: String = ""
    +--- macro expansion @ObservationTracked ---------------------------
    |2 |     /// The title of the current video (empty string if none).
    |3 |
    |4 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |5 | private  var _title: String = ""
    +-------------------------------------------------------------------
 28 |     /// A short description of the current video, displayed under the title (empty string if none).
 29 |     private(set) public var description: String = ""
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:29:53: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 27 |     private(set) public var title: String = ""
 28 |     /// A short description of the current video, displayed under the title (empty string if none).
 29 |     private(set) public var description: String = ""
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// A short description of the current video, displayed under the title (empty string if none).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _description: String = ""
    +-------------------------------------------------------------------
 30 |     /// The url of the current video.
 31 |     private(set) public var url: URL?
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:31:38: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 29 |     private(set) public var description: String = ""
 30 |     /// The url of the current video.
 31 |     private(set) public var url: URL?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The url of the current video.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _url: URL?
    +-------------------------------------------------------------------
 32 |     /// The AVFoundation metadata of the current video.
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:33:75: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 31 |     private(set) public var url: URL?
 32 |     /// The AVFoundation metadata of the current video.
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The AVFoundation metadata of the current video.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _metadata: [AVMetadataIdentifier: String] = [:]
    +-------------------------------------------------------------------
 34 |     /// The frame packing type of the video media, if any.
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:35:73: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 33 |     private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
 34 |     /// The frame packing type of the video media, if any.
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The frame packing type of the video media, if any.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _framePacking: VideoItem.FramePacking = .none
    +-------------------------------------------------------------------
 36 |     /// The projection type of the video media, defaults to VR180.
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:37:98: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 35 |     private(set) public var framePacking: VideoItem.FramePacking = .none
 36 |     /// The projection type of the video media, defaults to VR180.
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The projection type of the video media, defaults to VR180.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
    +-------------------------------------------------------------------
 38 |     /// A playback error, if any.
 39 |     private(set) public var error: Error?
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:39:42: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 37 |     private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
 38 |     /// A playback error, if any.
 39 |     private(set) public var error: Error?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// A playback error, if any.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  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 @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:41:49: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |1 | /// The duration in seconds of the current video (0 if none).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  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 @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:43:49: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |1 | /// `true` if playback is currently paused, or if playback has completed.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _paused: Bool = false
    +-------------------------------------------------------------------
 44 |     /// `true` if playback is waiting to load the media.
 45 |     private(set) public var loading: Bool = false
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:45:50: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 43 |     private(set) public var paused: Bool = false
 44 |     /// `true` if playback is waiting to load the media.
 45 |     private(set) public var loading: Bool = false
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// `true` if playback is waiting to load the media.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _loading: Bool = false
    +-------------------------------------------------------------------
 46 |     /// `true` if playback is temporarily interrupted due to buffering (HLS only).
 47 |     private(set) public var buffering: Bool = false
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:47:52: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 45 |     private(set) public var loading: Bool = false
 46 |     /// `true` if playback is temporarily interrupted due to buffering (HLS only).
 47 |     private(set) public var buffering: Bool = false
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// `true` if playback is temporarily interrupted due to buffering (HLS only).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _buffering: Bool = false
    +-------------------------------------------------------------------
 48 |     /// `true` if playback reached the end of the video and is no longer playing.
 49 |     private(set) public var hasReachedEnd: Bool = false
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:49:56: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 47 |     private(set) public var buffering: Bool = false
 48 |     /// `true` if playback reached the end of the video and is no longer playing.
 49 |     private(set) public var hasReachedEnd: Bool = false
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// `true` if playback reached the end of the video and is no longer playing.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _hasReachedEnd: Bool = false
    +-------------------------------------------------------------------
 50 |     /// The callback to execute when playback reaches the end of the video.
 51 |     public var playbackEndedAction: CustomAction?
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:51:50: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 49 |     private(set) public var hasReachedEnd: Bool = false
 50 |     /// The callback to execute when playback reaches the end of the video.
 51 |     public var playbackEndedAction: CustomAction?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The callback to execute when playback reaches the end of the video.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _playbackEndedAction: CustomAction?
    +-------------------------------------------------------------------
 52 |     /// The aspect ratio of the current media (width / height) (equirectangular projection only).
 53 |     private(set) public var aspectRatio: Float?
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:53:48: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 51 |     public var playbackEndedAction: CustomAction?
 52 |     /// The aspect ratio of the current media (width / height) (equirectangular projection only).
 53 |     private(set) public var aspectRatio: Float?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The aspect ratio of the current media (width / height) (equirectangular projection only).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _aspectRatio: Float?
    +-------------------------------------------------------------------
 54 |     /// The horizontal field of view for the current media (equirectangular projection only).
 55 |     private(set) public var horizontalFieldOfView: Float = 180.0
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:55:65: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 53 |     private(set) public var aspectRatio: Float?
 54 |     /// The horizontal field of view for the current media (equirectangular projection only).
 55 |     private(set) public var horizontalFieldOfView: Float = 180.0
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The horizontal field of view for the current media (equirectangular projection only).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _horizontalFieldOfView: Float = 180.0
    +-------------------------------------------------------------------
 56 |     /// The vertical field of view for the current media (equirectangular projection only).
 57 |     public var verticalFieldOfView: Float {
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:66:48: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 64 |     }
 65 |     /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
 66 |     private(set) public var bitrate: Double = 0
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _bitrate: Double = 0
    +-------------------------------------------------------------------
 67 |     /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
 68 |     private(set) public var bitrateLadder: [BitrateRung] = []
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:68:62: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 66 |     private(set) public var bitrate: Double = 0
 67 |     /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
 68 |     private(set) public var bitrateLadder: [BitrateRung] = []
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  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 @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:70:63: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |1 | /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  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 @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:72:61: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |1 | /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  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 @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:74:57: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |1 | /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _selectedAudioIndex: Int = -1
    +-------------------------------------------------------------------
 75 |     /// `true` if the control panel should be visible to the user.
 76 |     private(set) public var shouldShowControlPanel: Bool = true
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:76:64: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 74 |     private(set) public var selectedAudioIndex: Int = -1
 75 |     /// `true` if the control panel should be visible to the user.
 76 |     private(set) public var shouldShowControlPanel: Bool = true
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// `true` if the control panel should be visible to the user.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _shouldShowControlPanel: Bool = true
    +-------------------------------------------------------------------
 77 |     /// `true` if the control panel should present resolution & audio options to the user.
 78 |     private(set) public var shouldShowPlaybackOptions: Bool = false
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:78:68: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 76 |     private(set) public var shouldShowControlPanel: Bool = true
 77 |     /// `true` if the control panel should present resolution & audio options to the user.
 78 |     private(set) public var shouldShowPlaybackOptions: Bool = false
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | /// `true` if the control panel should present resolution & audio options to the user.
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _shouldShowPlaybackOptions: Bool = false
    +-------------------------------------------------------------------
 79 |     /// `true` if the HLS stream has a bitrate ladder with at least 2 rungs and the custom configuration doesn't prevent user selection.
 80 |     public var canChooseResolution: Bool {
macro expansion @ObservationTracked:5:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:99:39: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 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 @ObservationTracked ---------------------------
    |3 |     /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
    |4 |
    |5 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |6 | private  var _currentTime: Double = 0
    +-------------------------------------------------------------------
100 |     public enum ScrubState {
101 |         /// The scrubber is not active and reflects the video's current playback time.
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
128 |           }
129 |        }
130 |     }
    +--- macro expansion @ObservationTracked ---------------------------
    | 1 | /// The current state of the scrubber.
    | 2 |
    | 3 |     @ObservationIgnored
    |   |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    | 4 | private  var _scrubState: ScrubState = .notScrubbing {
    | 5 |
    +-------------------------------------------------------------------
131 |
132 |     //MARK: Private variables
macro expansion @ObservationTracked:3:6: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:44: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
131 |
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | //MARK: Private variables
    |2 |
    |3 |     @ObservationIgnored
    |  |      `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |4 | private  var _displayLink: CADisplayLink?
    +-------------------------------------------------------------------
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:134:54: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
134 |     private var videoOutput: AVPlayerItemVideoOutput?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _videoOutput: AVPlayerItemVideoOutput?
    +-------------------------------------------------------------------
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:135:35: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
133 |     private var displayLink: CADisplayLink?
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _timeObserver: Any?
    +-------------------------------------------------------------------
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:136:57: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _durationObserver: NSKeyValueObservation?
    +-------------------------------------------------------------------
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:137:60: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
135 |     private var timeObserver: Any?
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _mediaStatusObserver: NSKeyValueObservation?
    +-------------------------------------------------------------------
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:138:58: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
136 |     private var durationObserver: NSKeyValueObservation?
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _bufferingObserver: NSKeyValueObservation?
    +-------------------------------------------------------------------
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:139:60: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
137 |     private var mediaStatusObserver: NSKeyValueObservation?
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _dismissControlPanelTask: Task<Void, Never>?
    +-------------------------------------------------------------------
140 |     private var playlistReader: PlaylistReader?
141 |     private var delegate: PlaylistLoaderDelegate?
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:140:48: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
138 |     private var bufferingObserver: NSKeyValueObservation?
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _playlistReader: PlaylistReader?
    +-------------------------------------------------------------------
141 |     private var delegate: PlaylistLoaderDelegate?
142 |
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:141:50: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
139 |     private var dismissControlPanelTask: Task<Void, Never>?
140 |     private var playlistReader: PlaylistReader?
141 |     private var delegate: PlaylistLoaderDelegate?
    +--- macro expansion @ObservationTracked ---------------------------
    |1 | @ObservationIgnored
    |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
    |2 | private  var _delegate: PlaylistLoaderDelegate?
    +-------------------------------------------------------------------
142 |
143 |     //MARK: Public methods
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:21:26: error: 'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
 19 |     private var injector: APMPInjector?
 20 |     /// The video renderer to use for media that are frame-packed side by side or over under.
 21 |     public var renderer: AVSampleBufferVideoRenderer? {
    |                |         `- error: 'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer
    |                `- note: add '@available' attribute to enclosing property
 22 |         injector?.renderer
 23 |     }
OpenImmersive/VideoPlayer.swift:123:36: warning: main actor-isolated property 'renderer' can not be referenced from a Sendable closure
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: note: expanded code originates here
 19 |     private var injector: APMPInjector?
 20 |     /// The video renderer to use for media that are frame-packed side by side or over under.
 21 |     public var renderer: AVSampleBufferVideoRenderer? {
    |                `- note: property declared here
 22 |         injector?.renderer
 23 |     }
    :
128 |           }
129 |        }
130 |     }
    +--- macro expansion @ObservationTracked ---------------------------
    |18 |                                  return
    |19 |                              }
    |20 |                              self?.renderer?.flush()
    |   |                                    `- warning: main actor-isolated property 'renderer' can not be referenced from a Sendable closure
    |21 |                              self?.scrubState = .notScrubbing
    |22 |                              self?.restartControlPanelTask()
    +-------------------------------------------------------------------
131 |
132 |     //MARK: Private variables
OpenImmersive/VideoPlayer.swift:124:36: warning: main actor-isolated property 'scrubState' can not be mutated from a Sendable closure
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: note: expanded code originates here
107 |     }
108 |     /// The current state of the scrubber.
109 |     public var scrubState: ScrubState = .notScrubbing {
    |                `- note: mutation of this property is only permitted within the actor
110 |        didSet {
111 |           switch scrubState {
    :
128 |           }
129 |        }
130 |     }
    +--- macro expansion @ObservationTracked ---------------------------
    |19 |                              }
    |20 |                              self?.renderer?.flush()
    |21 |                              self?.scrubState = .notScrubbing
    |   |                                    `- warning: main actor-isolated property 'scrubState' can not be mutated from a Sendable closure
    |22 |                              self?.restartControlPanelTask()
    |23 |                          }
    +-------------------------------------------------------------------
131 |
132 |     //MARK: Private variables
OpenImmersive/VideoPlayer.swift:125:36: warning: call to main actor-isolated instance method 'restartControlPanelTask()' in a synchronous nonisolated context [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: note: expanded code originates here
128 |           }
129 |        }
130 |     }
    +--- macro expansion @ObservationTracked ---------------------------
    |20 |                              self?.renderer?.flush()
    |21 |                              self?.scrubState = .notScrubbing
    |22 |                              self?.restartControlPanelTask()
    |   |                                    `- warning: call to main actor-isolated instance method 'restartControlPanelTask()' in a synchronous nonisolated context [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
    |23 |                          }
    |24 |                          hasReachedEnd = false
    +-------------------------------------------------------------------
131 |
132 |     //MARK: Private variables
    :
621 |
622 |     /// Restart a task with a 10-second timer to auto-hide the control panel.
623 |     public func restartControlPanelTask() {
    |                 `- note: calls to instance method 'restartControlPanelTask()' from outside of its actor context are implicitly asynchronous
624 |         cancelControlPanelTask()
625 |         dismissControlPanelTask = Task {
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:30: error: 'CADisplayLink' is only available in macOS 14.0 or newer
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
131 |
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
    |                 |            `- error: 'CADisplayLink' is only available in macOS 14.0 or newer
    |                 `- note: add '@available' attribute to enclosing property
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
macro expansion @ObservationTracked:4:28: error: 'CADisplayLink' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:44: note: expanded code originates here
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
131 |
132 |     //MARK: Private variables
133 |     private var displayLink: CADisplayLink?
    +--- macro expansion @ObservationTracked ---------------------------
    |2 |
    |3 |     @ObservationIgnored
    |4 | private  var _displayLink: CADisplayLink?
    |  |                            `- error: 'CADisplayLink' is only available in macOS 14.0 or newer
    +-------------------------------------------------------------------
134 |     private var videoOutput: AVPlayerItemVideoOutput?
135 |     private var timeObserver: Any?
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:493:37: error: 'CADisplayLink' is only available in macOS 14.0 or newer
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
491 |
492 |     /// Callback from the display link. This will execute for each display frame, which may be a different rate from the video.
493 |     @objc private func tick(_ link: CADisplayLink) {
    |                        |            `- error: 'CADisplayLink' is only available in macOS 14.0 or newer
    |                        `- note: add '@available' attribute to enclosing instance method
494 |         guard framePacking != .none, let videoOutput, let injector else {
495 |             return
macro expansion @Observable:1:70: error: 'ObservationRegistrar' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:639:1: 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 class 'VideoPlayer' here
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
    :
637 |         dismissControlPanelTask = nil
638 |     }
639 | }
    +--- macro expansion @Observable -----------------------------------
    | 1 | @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
    |   |                                                                      `- error: 'ObservationRegistrar' is only available in macOS 14.0 or newer
    | 2 |
    | 3 | internal nonisolated func access<$s13OpenImmersive11VideoPlayer10ObservablefMm_6MemberfMu_>(
    +-------------------------------------------------------------------
640 |
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:13:2: error: 'Observable()' is only available in macOS 14.0 or newer
 11 |
 12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
 13 | @Observable
    |  `- error: 'Observable()' is only available in macOS 14.0 or newer
 14 | public class VideoPlayer: Sendable {
    |              `- note: add '@available' attribute to enclosing class
 15 |     //MARK: Video Player and Video Renderer
 16 |     /// The video player.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/AVMetadataIdentifier+Codable.swift:11:1: warning: extension declares a conformance of imported type 'AVMetadataIdentifier' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'AVFoundation' introduce this conformance in the future
 9 |
10 | /// Codable extension of AVMetadataIdentifier so it can be used in VideoItem
11 | extension AVMetadataIdentifier: Codable {
   | |- warning: extension declares a conformance of imported type 'AVMetadataIdentifier' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'AVFoundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |     public typealias RawValue = String
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Models/SpatialVideoTransferable.swift:19:52: error: 'TransferRepresentation' is only available in macOS 13.0 or newer
10 |
11 | /// A representation for a spatial or immersive video selected from the Photos API or dragged and dropped onto the app
12 | public struct SpatialVideo: Transferable {
   |               `- note: add '@available' attribute to enclosing struct
13 |     public enum Status: Sendable {
14 |         case failed, ready
   :
17 |     public let url: URL
18 |
19 |     public static var transferRepresentation: some TransferRepresentation {
   |                       |                            `- error: 'TransferRepresentation' is only available in macOS 13.0 or newer
   |                       `- note: add '@available' attribute to enclosing static property
20 |         FileRepresentation(contentType: .audiovisualContent) { file in
21 |             SentTransferredFile(file.url)
/Users/admin/builder/spi-builder-workspace/Sources/Models/VideoScreen.swift:91:20: error: 'VideoPlayerComponent' is only available in macOS 15.0 or newer
 76 | }
 77 |
 78 | public extension VideoPlayer {
    |        `- note: add '@available' attribute to enclosing extension
 79 |     /// A RealityKit video material created from the underlying AVPlayer or AVSampleBufferVideoRenderer,
 80 |     /// depending on whether the media has frame packing or not.
    :
 89 |     /// A RealityKit video player component created from the underlying AVPlayer or AVSampleBufferVideoRenderer,
 90 |     /// depending on whether the media has frame packing or not.
 91 |     var component: VideoPlayerComponent {
    |         |          `- error: 'VideoPlayerComponent' is only available in macOS 15.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 92 |         var component: VideoPlayerComponent
 93 |         if let renderer {
/Users/admin/builder/spi-builder-workspace/Sources/Utils/APMPInjector.swift:22:27: error: 'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer
 11 |
 12 | /// Injects APMP metadata into frames to render stereo frame-packed media efficiently.
 13 | public class APMPInjector {
    |              `- note: add '@available' attribute to enclosing class
 14 |     /// Errors specific to APMP Injector.
 15 |     public enum APMPInjectorError: Error {
    :
 20 |     /// The renderer to use for enqueueing. Expose this so callers can
 21 |     /// associate it with a display layer or RealityKit component.
 22 |     public let renderer = AVSampleBufferVideoRenderer()
    |                           `- error: 'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer
 23 |     /// The source media's frame packing type, must be .sideBySide or .overUnder.
 24 |     private let packing: VideoItem.FramePacking
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift:19:29: error: cannot find type 'simd_quatf' in scope
17 |     public var body: CustomViewBuilder
18 |     public var position: SIMD3<Float>
19 |     public var orientation: simd_quatf
   |                             `- error: cannot find type 'simd_quatf' in scope
20 |     public var relativeToControlPanel: Bool
21 |
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift:22:101: error: cannot find type 'simd_quatf' in scope
20 |     public var relativeToControlPanel: Bool
21 |
22 |     public init(id: String, body: @escaping CustomViewBuilder, position: SIMD3<Float>, orientation: simd_quatf, relativeToControlPanel: Bool) {
   |                                                                                                     `- error: cannot find type 'simd_quatf' in scope
23 |         self.id = id
24 |         self.body = body
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:498:9: error: cannot find 'Attachment' in scope
496 |         }
497 |     } attachments: {
498 |         Attachment(id: "ControlPanel") {
    |         `- error: cannot find 'Attachment' in scope
499 |             ControlPanel(videoPlayer: .constant(VideoPlayer()))
500 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:497:20: error: extra trailing closure passed in call
495 |             content.add(entity)
496 |         }
497 |     } attachments: {
    |                    `- error: extra trailing closure passed in call
498 |         Attachment(id: "ControlPanel") {
499 |             ControlPanel(videoPlayer: .constant(VideoPlayer()))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:493:19: error: contextual closure type '@MainActor @Sendable (inout RealityViewCameraContent) async -> Void' expects 1 argument, but 2 were used in closure body
491 |
492 | #Preview {
493 |     RealityView { content, attachments in
    |                   `- error: contextual closure type '@MainActor @Sendable (inout RealityViewCameraContent) async -> Void' expects 1 argument, but 2 were used in closure body
494 |         if let entity = attachments.entity(for: "ControlPanel") {
495 |             content.add(entity)
/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/GalleryVideoPicker.swift:14:38: error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   |                        |             `- error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
   |                        `- note: add '@available' attribute to enclosing property
15 |
16 |     /// Whether the picker should show spatial videos only.
macro expansion @State:2:24: error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: note: expanded code originates here
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   |     `- note: in expansion of macro 'State' on property 'selectedItem' here
   +--- macro expansion @State -----------------------------------------
   | 1 | private var __selectedItem = SwiftUICore.State._makeStorage(({
   | 2 |             let value: PhotosPickerItem? = nil
   |   |                        `- error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
   | 3 |             return value
   | 4 |         }))
   +--------------------------------------------------------------------
15 |
16 |     /// Whether the picker should show spatial videos only.
macro expansion @State:8:27: error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: note: expanded code originates here
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   |     `- note: in expansion of macro 'State' on property 'selectedItem' here
   +--- macro expansion @State -----------------------------------------
   | 6 | @SwiftUICore._StatePropertyWrapperStorage(initialValue: "JHMxM09wZW5JbW1lcnNpdmUxOEdhbGxlcnlWaWRlb1BpY2tlclYxMnNlbGVjdGVkSXRlbTMzXzVERDM3RDgzNjlBNUQwMzJCOTE4NTk3MDAxRTQxMEJBTEw1U3RhdGVmTXBfMjBfaW5pdGlhbFN0b3JlZFZhbHVlX2ZNdV8=")
   | 7 | private var _selectedItem: SwiftUICore.State<_>! = SwiftUICore._stateNil(of: {
   | 8 |         SwiftUICore.State<PhotosPickerItem?>(initialValue: nil)
   |   |                           `- error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
   | 9 |     })
   |10 |
   +--------------------------------------------------------------------
15 |
16 |     /// Whether the picker should show spatial videos only.
macro expansion @State:12:47: error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: note: expanded code originates here
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   |     `- note: in expansion of macro 'State' on property 'selectedItem' here
   +--- macro expansion @State -----------------------------------------
   |10 |
   |11 | @SwiftUICore._StateProjectedValue
   |12 | private var $selectedItem = SwiftUICore.State<PhotosPickerItem?>(initialValue: nil).projectedValue
   |   |                                               `- error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
   |13 |
   |14 | @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKGluaXRpYWxWYWx1ZTogeyBsZXQgeDogUGhvdG9zUGlja2VySXRlbT8gPSBuaWwKcmV0dXJuIHggfSgpKQ==")
   +--------------------------------------------------------------------
15 |
16 |     /// Whether the picker should show spatial videos only.
macro expansion @State:16:20: error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: note: expanded code originates here
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   |     `- note: in expansion of macro 'State' on property 'selectedItem' here
   +--- macro expansion @State -----------------------------------------
   |14 | @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKGluaXRpYWxWYWx1ZTogeyBsZXQgeDogUGhvdG9zUGlja2VySXRlbT8gPSBuaWwKcmV0dXJuIHggfSgpKQ==")
   |15 | private static var $s13OpenImmersive18GalleryVideoPickerV12selectedItem33_5DD37D8369A5D032B918597001E410BALL5StatefMp_20_initialStoredValue_fMu_ = (SwiftUICore.State._makeStorage(initialValue: {
   |16 |             let x: PhotosPickerItem? = nil
   |   |                    `- error: 'PhotosPickerItem' is only available in macOS 13.0 or newer
   |17 |             return x
   |18 |         }()))
   +--------------------------------------------------------------------
15 |
16 |     /// Whether the picker should show spatial videos only.
/Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:23:24: error: 'PHPickerFilter' is only available in macOS 13.0 or newer
10 |
11 | /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
12 | public struct GalleryVideoPicker: View {
   |               `- note: add '@available' attribute to enclosing struct
13 |     /// The currently selected item, if any.
14 |     @State private var selectedItem: PhotosPickerItem?
   :
21 |
22 |     /// The Photos picker filter to use based on `spatialVideosOnly`.
23 |     public var filter: PHPickerFilter {
   |                |       `- error: 'PHPickerFilter' is only available in macOS 13.0 or newer
   |                `- note: add '@available' attribute to enclosing property
24 |         spatialVideosOnly ? .all(of: [.spatialMedia, .not(.images)]) : .videos
25 |     }
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/Extensions/AVMetadataIdentifier+Codable.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/AudioOption.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/BitrateRung.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/SpatialVideoTransferable.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/VideoItem.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/VideoScreen.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/APMPInjector.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/Config.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistLoaderDelegate.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistReader.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistWriter.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/VideoTools.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/FilePicker.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/ImmersivePlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/StreamUrlInput.swift -target arm64-apple-macos12.0 -disable-cross-import-overlay-search -swift-module-cross-import ARKit /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ARKit.framework/Modules/ARKit.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/WidgetKit.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/WidgetKit.swiftoverlay -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/ComputeGraph.swiftoverlay -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/SwiftUI.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#SwiftUIMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/SwiftExplicitPrecompiledModules -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -default-isolation MainActor -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.build/out/SDKStatCaches.noindex/macosx27.0-26A425-80c5bbf1d171475443272936d42f90a36a22442a12e9d48fe1a705f55a1adfc4.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name OpenImmersive -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-macos27.0 -target-sdk-version 27.0 -target-sdk-name macosx27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.abi.json
error: Build failed
BUILD FAILURE 6.4 macosSpm