The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Prism, reference main (5483af), with Swift 6.4 for tvOS using Xcode 27.0 on 12 Oct 2026 18:37:40 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme Prism-Package -destination generic/platform=tvOS

Build Log

    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraDevice.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+Cinematic.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Controls.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+Controls.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+DeviceObservers.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+Features.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Format.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+Format.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+Metadata.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+NightCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+State.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession+State.swift
tionEnabled = false
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift:189:35: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 28 | }
 29 |
 30 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 31 |     // MARK: - Planning
 32 |
    :
160 |     /// stabilization and low-light noise reduction off the frames (both blend frames over
161 |     /// time). Returns once a frame confirmed the exposure.
162 |     func applyNightExposure(_ lease: PRMNightCaptureLease) async throws {
    |          `- note: add '@available' attribute to enclosing instance method
163 |         let device = lease.device
164 |         try device.prm_withConfigurationLock {
    :
187 |                 if #available(iOS 27.0, *) {
188 |                     connection.automaticallyEnablesLowLightVideoNoiseReduction = false
189 |                     if connection.isLowLightVideoNoiseReductionEnabled {
    |                                   |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                   `- note: add 'if #available' version check
190 |                         connection.isLowLightVideoNoiseReductionEnabled = false
191 |                     }
SwiftCompile normal arm64 Compiling\ PRMPortraitBokehFilter.swift,\ PRMStylizeFilter.swift,\ PRMBasicFilterRenderer.swift,\ PRMBufferPoolAllocator.swift,\ PRMFilter.swift,\ PRMFilterChain.swift,\ PRMFilterPipeline.swift,\ PRMFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPortraitBokehFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMStylizeFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMBasicFilterRenderer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMBufferPoolAllocator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMFilterChain.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMFilterPipeline.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMFilterRenderer.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ PrismCore (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:18:34: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
   | `- note: add '@available' attribute to enclosing extension
18 |     init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
   |     |                            `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
19 |         switch mode {
20 |         case .strong: self = .strong
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:26:33: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
   | `- note: add '@available' attribute to enclosing extension
18 |     init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
19 |         switch mode {
   :
24 |     }
25 |
26 |     var avMode: AVCaptureDevice.CinematicVideoFocusMode {
   |         |                       `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
   |         `- note: add '@available' attribute to enclosing property
27 |         switch self {
28 |         case .none: .none
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:59:20: error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
   |             `- note: add '@available' attribute to enclosing enum
53 |     /// The scene is too dark for Cinematic Video to work optimally.
54 |     case notEnoughLight
   :
57 |
58 |     @available(iOS 26.0, *)
59 |     init(_ status: AVCaptureSceneMonitoringStatus) {
   |     |              `- error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
60 |         self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
61 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:34:36: error: 'AspectRatio' is unavailable in tvOS
32 | @available(iOS 26.0, *)
33 | extension PRMAspectRatio {
34 |     init?(_ ratio: AVCaptureDevice.AspectRatio) {
   |                                    `- error: 'AspectRatio' is unavailable in tvOS
35 |         switch ratio {
36 |         case .ratio1x1: self = .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                   `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:45:40: error: 'AspectRatio' is unavailable in tvOS
43 |     }
44 |
45 |     var avAspectRatio: AVCaptureDevice.AspectRatio {
   |                                        `- error: 'AspectRatio' is unavailable in tvOS
46 |         switch self {
47 |         case .ratio1x1: .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                   `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:70:22: error: 'AVCaptureFraming' is unavailable in tvOS
68 |
69 |     @available(iOS 26.0, *)
70 |     init?(_ framing: AVCaptureFraming) {
   |                      `- error: 'AVCaptureFraming' is unavailable in tvOS
71 |         guard let ratio = PRMAspectRatio(framing.aspectRatio) else { return nil }
72 |         self.init(aspectRatio: ratio, zoomFactor: framing.zoomFactor)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2940:12: note: 'AVCaptureFraming' has been explicitly marked unavailable here
2938 | /// An ``AVCaptureSmartFramingMonitor`` provides framing recommendations using this object.
2939 | API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2940 | @interface AVCaptureFraming : NSObject
     |            `- note: 'AVCaptureFraming' has been explicitly marked unavailable here
2941 |
2942 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift:82:60: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 80 |     /// one orientation. External cameras return 0.
 81 |     @available(iOS 27.0, *)
 82 |     public func videoRotationAngle(relativeTo orientation: AVCaptureVideoOrientation) -> CGFloat {
    |                                                            `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 83 |         coordinator.videoRotationAngleRelative(toDeviceOrientation: orientation)
 84 |     }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
 102 |
 103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
 104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
     |                            `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
 105 |     /// Indicates that video should be oriented vertically, port on the bottom.
 106 |     AVCaptureVideoOrientationPortrait           = 1,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift:32:20: error: 'AVCaptureCameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
 19 |
 20 | /// Result of iOS 26 camera-lens smudge detection.
 21 | public enum PRMLensSmudgeStatus: Sendable, Equatable {
    |             `- note: add '@available' attribute to enclosing enum
 22 |     /// Detection is off, or unsupported on this device / format / OS.
 23 |     case disabled
    :
 30 |
 31 |     @available(iOS 26.0, *)
 32 |     init(_ status: AVCaptureCameraLensSmudgeDetectionStatus) {
    |     |              `- error: 'AVCaptureCameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
    |     `- note: add '@available' attribute to enclosing initializer
 33 |         switch status {
 34 |         case .smudgeNotDetected: self = .clean
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:44:66: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
 42 |     public func photoOutput(
 43 |         _ output: AVCapturePhotoOutput,
 44 |         didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
    |                                                                  `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
 45 |         error: (any Error)?
 46 |     ) {
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 |  */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
     |            `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:42:17: error: cannot override 'photoOutput' which has been marked unavailable
 40 |     /// proxy is a failure with no follow-up; the capture is identified (and failed) in
 41 |     /// `didFinishCaptureFor`, which carries the resolved settings this callback lacks.
 42 |     public func photoOutput(
    |                 `- error: cannot override 'photoOutput' which has been marked unavailable
 43 |         _ output: AVCapturePhotoOutput,
 44 |         didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:1071:1: note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1069 |      Delegates are required to implement this method if they opt in for deferred photo processing, otherwise an NSInvalidArgumentException will be thrown from the -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] method.
1070 | */
1071 | - (void)captureOutput:(AVCapturePhotoOutput *)output didFinishCapturingDeferredPhotoProxy:(nullable AVCaptureDeferredPhotoProxy *)deferredPhotoProxy error:(nullable NSError *)error NS_SWIFT_NAME(photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)) API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     | `- note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1072 |
1073 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:101:21: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     |               `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:112:19: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         |         `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:122:39: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
120 |     }
121 |
122 |     static func set(from signals: Set<AVCaptureDeviceExposureSignal>) -> Set<Self> {
    |                 |                     `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
123 |         Set(signals.compactMap(Self.init))
124 |     }
Failed frontend command:
/Applications/Xcode-27.0.0.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/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Controls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Format.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+State.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift -target arm64-apple-tvos18.0 -module-can-import-version UIKit 9127.0.84.1 9127.0.84 -disable-cross-import-overlay-search -swift-module-cross-import Vision /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Vision.framework/Modules/Vision.swiftcrossimport/FoundationModels.swiftoverlay -swift-module-cross-import Vision /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/Vision.framework/Modules/Vision.swiftcrossimport/FoundationModels.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.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/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=5 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044509235ffd515576fb835ffc8f67461e5.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name PrismCore -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.abi.json
SwiftCompile normal arm64 (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

SwiftCompile normal arm64 Compiling\ AVCaptureDevice+Exposure.swift,\ AVCaptureDevice+FocusTracking.swift,\ AVCaptureDevice+FrameRate.swift,\ AVCaptureDevice+HDR.swift,\ AVCaptureDevice+ISO.swift,\ AVCaptureDevice+Lens.swift,\ AVCaptureDevice+Modes.swift,\ AVCaptureDevice+SmudgeDetection.swift,\ AVCaptureDevice+Torch.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:139:29: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
134 |     /// `NSInvalidArgumentException` on a manual bracket from a format that refuses custom
135 |     /// exposure at the current values, so on iOS 27 the active format also has to accept it.
136 |     var prm_supportsManualExposureCapture: Bool {
    |         `- note: add '@available' attribute to enclosing property
137 |         guard isExposureModeSupported(.custom), !prm_isVirtualMultiCameraDevice else { return false }
138 |         guard #available(iOS 27.0, *) else { return true }
139 |         return activeFormat.supportsExposureModeCustom(
    |                             |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
140 |             lensAperture: Self.currentLensAperture,
141 |             duration: Self.currentExposureDuration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:140:32: error: 'currentLensAperture' is only available in tvOS 27.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
134 |     /// `NSInvalidArgumentException` on a manual bracket from a format that refuses custom
135 |     /// exposure at the current values, so on iOS 27 the active format also has to accept it.
136 |     var prm_supportsManualExposureCapture: Bool {
    |         `- note: add '@available' attribute to enclosing property
137 |         guard isExposureModeSupported(.custom), !prm_isVirtualMultiCameraDevice else { return false }
138 |         guard #available(iOS 27.0, *) else { return true }
139 |         return activeFormat.supportsExposureModeCustom(
140 |             lensAperture: Self.currentLensAperture,
    |                                |- error: 'currentLensAperture' is only available in tvOS 27.0 or newer
    |                                `- note: add 'if #available' version check
141 |             duration: Self.currentExposureDuration,
142 |             iso: Self.currentISO
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:219:20: error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
217 |         try prm_withConfigurationLock {
218 |             if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 |                 if isFocusRectOfInterestSupported {
    |                    |- error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
    |                    `- note: add 'if #available' version check
220 |                     focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
221 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:220:21: error: 'focusRectOfInterest' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
218 |             if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 |                 if isFocusRectOfInterestSupported {
220 |                     focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
    |                     |- error: 'focusRectOfInterest' is only available in tvOS 26.0 or newer
    |                     `- note: add 'if #available' version check
221 |                 } else {
222 |                     focusPointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:220:93: error: 'minFocusRectOfInterestSize' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
218 |             if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 |                 if isFocusRectOfInterestSupported {
220 |                     focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
    |                                                                                             |- error: 'minFocusRectOfInterestSize' is only available in tvOS 26.0 or newer
    |                                                                                             `- note: add 'if #available' version check
221 |                 } else {
222 |                     focusPointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:227:20: error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
225 |             }
226 |             if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 |                 if isExposureRectOfInterestSupported {
    |                    |- error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
    |                    `- note: add 'if #available' version check
228 |                     exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
229 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:228:21: error: 'exposureRectOfInterest' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
226 |             if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 |                 if isExposureRectOfInterestSupported {
228 |                     exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
    |                     |- error: 'exposureRectOfInterest' is only available in tvOS 26.0 or newer
    |                     `- note: add 'if #available' version check
229 |                 } else {
230 |                     exposurePointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:228:96: error: 'minExposureRectOfInterestSize' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
199 |     /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 |     /// focuses without touching exposure.
201 |     func prm_setFocusAndExposure(
    |          `- note: add '@available' attribute to enclosing instance method
202 |         focusMode: AVCaptureDevice.FocusMode,
203 |         exposureMode: AVCaptureDevice.ExposureMode?,
    :
226 |             if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 |                 if isExposureRectOfInterestSupported {
228 |                     exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
    |                                                                                                |- error: 'minExposureRectOfInterestSize' is only available in tvOS 26.0 or newer
    |                                                                                                `- note: add 'if #available' version check
229 |                 } else {
230 |                     exposurePointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:242:40: error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
239 |     /// device space. Use it to size a focus indicator to what the camera actually meters.
240 |     /// `nil` before iOS 26 or when the device doesn't support focus rects.
241 |     func prm_defaultFocusRect(for devicePoint: CGPoint) -> CGRect? {
    |          `- note: add '@available' attribute to enclosing instance method
242 |         guard #available(iOS 26.0, *), isFocusRectOfInterestSupported else { return nil }
    |                                        |- error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
    |                                        `- note: add 'if #available' version check
243 |         let rect = defaultRectForFocusPoint(ofInterest: devicePoint)
244 |         return rect.isNull ? nil : rect
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:243:20: error: 'defaultRectForFocusPoint(ofInterest:)' is only available in tvOS 26.0 or newer
  2 | import CoreMedia
  3 |
  4 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  5 |     // MARK: - Exposure Mode
  6 |
    :
239 |     /// device space. Use it to size a focus indicator to what the camera actually meters.
240 |     /// `nil` before iOS 26 or when the device doesn't support focus rects.
241 |     func prm_defaultFocusRect(for devicePoint: CGPoint) -> CGRect? {
    |          `- note: add '@available' attribute to enclosing instance method
242 |         guard #available(iOS 26.0, *), isFocusRectOfInterestSupported else { return nil }
243 |         let rect = defaultRectForFocusPoint(ofInterest: devicePoint)
    |                    |- error: 'defaultRectForFocusPoint(ofInterest:)' is only available in tvOS 26.0 or newer
    |                    `- note: add 'if #available' version check
244 |         return rect.isNull ? nil : rect
245 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:13:29: error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    |         `- note: add '@available' attribute to enclosing property
 12 |         guard #available(iOS 27.0, *) else { return false }
 13 |         return activeFormat.isContinuousAutoFocusTrackingSupported
    |                             |- error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
 14 |     }
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:19:16: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 15 |
 16 |     /// Whether tracking is enabled (iOS 27). `false` before that.
 17 |     var prm_isContinuousAutoFocusTrackingEnabled: Bool {
    |         `- note: add '@available' attribute to enclosing property
 18 |         guard #available(iOS 27.0, *) else { return false }
 19 |         return isContinuousAutoFocusTrackingEnabled
    |                |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
    |                `- note: add 'if #available' version check
 20 |     }
 21 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:25:16: error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 21 |
 22 |     /// Whether a subject is being tracked right now (iOS 27). `false` before that.
 23 |     var prm_isContinuousAutoFocusTrackingSubjectAcquired: Bool {
    |         `- note: add '@available' attribute to enclosing property
 24 |         guard #available(iOS 27.0, *) else { return false }
 25 |         return isContinuousAutoFocusTrackingSubjectAcquired
    |                |- error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
    |                `- note: add 'if #available' version check
 26 |     }
 27 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:31:16: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 27 |
 28 |     /// Current tracking lens-position bias (iOS 27). `0` before that.
 29 |     var prm_continuousAutoFocusTrackingBias: Float {
    |         `- note: add '@available' attribute to enclosing property
 30 |         guard #available(iOS 27.0, *) else { return 0 }
 31 |         return continuousAutoFocusTrackingLensPositionBias
    |                |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
    |                `- note: add 'if #available' version check
 32 |     }
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:51:35: error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 45 |     ///   active format doesn't support tracking. AVFoundation also refuses while Cinematic
 46 |     ///   Video is enabled; the session layer guards that.
 47 |     func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 48 |         guard #available(iOS 27.0, *) else {
 49 |             throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
 50 |         }
 51 |         if enabled, !activeFormat.isContinuousAutoFocusTrackingSupported {
    |                                   |- error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
    |                                   `- note: add 'if #available' version check
 52 |             throw PRMSessionError.unsupportedConfiguration("The active format doesn't support continuous autofocus tracking")
 53 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:56:17: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 45 |     ///   active format doesn't support tracking. AVFoundation also refuses while Cinematic
 46 |     ///   Video is enabled; the session layer guards that.
 47 |     func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 48 |         guard #available(iOS 27.0, *) else {
 49 |             throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
    :
 54 |         try prm_withConfigurationLock {
 55 |             if enabled {
 56 |                 isContinuousAutoFocusTrackingEnabled = true
    |                 |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
    |                 `- note: add 'if #available' version check
 57 |                 // Tracking would otherwise be retargeted to the frame center every time the
 58 |                 // subject-area-change handler re-centers focus.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:61:23: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 45 |     ///   active format doesn't support tracking. AVFoundation also refuses while Cinematic
 46 |     ///   Video is enabled; the session layer guards that.
 47 |     func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 48 |         guard #available(iOS 27.0, *) else {
 49 |             throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
    :
 59 |                 isSubjectAreaChangeMonitoringEnabled = false
 60 |             } else {
 61 |                 guard isContinuousAutoFocusTrackingEnabled else { return }
    |                       |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
    |                       `- note: add 'if #available' version check
 62 |                 continuousAutoFocusTrackingLensPositionBias = 0
 63 |                 isContinuousAutoFocusTrackingEnabled = false
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:62:17: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 45 |     ///   active format doesn't support tracking. AVFoundation also refuses while Cinematic
 46 |     ///   Video is enabled; the session layer guards that.
 47 |     func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 48 |         guard #available(iOS 27.0, *) else {
 49 |             throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
    :
 60 |             } else {
 61 |                 guard isContinuousAutoFocusTrackingEnabled else { return }
 62 |                 continuousAutoFocusTrackingLensPositionBias = 0
    |                 |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
    |                 `- note: add 'if #available' version check
 63 |                 isContinuousAutoFocusTrackingEnabled = false
 64 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:63:17: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 45 |     ///   active format doesn't support tracking. AVFoundation also refuses while Cinematic
 46 |     ///   Video is enabled; the session layer guards that.
 47 |     func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 48 |         guard #available(iOS 27.0, *) else {
 49 |             throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
    :
 61 |                 guard isContinuousAutoFocusTrackingEnabled else { return }
 62 |                 continuousAutoFocusTrackingLensPositionBias = 0
 63 |                 isContinuousAutoFocusTrackingEnabled = false
    |                 |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
    |                 `- note: add 'if #available' version check
 64 |             }
 65 |             if focusMode == .continuousAutoFocus {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:81:40: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 78 |     ///
 79 |     /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` unless tracking is enabled.
 80 |     func prm_setContinuousAutoFocusTrackingBias(_ bias: Float, retargetingAt devicePoint: CGPoint? = nil) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 27.0, *), isContinuousAutoFocusTrackingEnabled else {
    |                                        |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
    |                                        `- note: add 'if #available' version check
 82 |             throw PRMSessionError.unsupportedConfiguration("Enable continuous autofocus tracking before setting its bias")
 83 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:85:13: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
  7 | // manage the metadata output yourself.
  8 |
  9 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
 10 |     /// Whether the active format supports continuous autofocus tracking (iOS 27).
 11 |     var prm_isContinuousAutoFocusTrackingSupported: Bool {
    :
 78 |     ///
 79 |     /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` unless tracking is enabled.
 80 |     func prm_setContinuousAutoFocusTrackingBias(_ bias: Float, retargetingAt devicePoint: CGPoint? = nil) throws {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 27.0, *), isContinuousAutoFocusTrackingEnabled else {
 82 |             throw PRMSessionError.unsupportedConfiguration("Enable continuous autofocus tracking before setting its bias")
 83 |         }
 84 |         try prm_withConfigurationLock {
 85 |             continuousAutoFocusTrackingLensPositionBias = Self.prm_clampedTrackingBias(bias)
    |             |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
 86 |             if let devicePoint, isFocusPointOfInterestSupported {
 87 |                 focusPointOfInterest = Self.prm_clampedUnitPoint(devicePoint)
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Exposure.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+FocusTracking.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+FrameRate.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+HDR.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+ISO.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Lens.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Modes.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+SmudgeDetection.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Torch.swift
SwiftCompile normal arm64 Compiling\ PRMCameraSession.swift,\ PRMCameraState.swift,\ PRMCinematicVideo.swift,\ PRMDetectedObject.swift,\ PRMFraming.swift,\ PRMMetadataRouter.swift,\ PRMPermissions.swift,\ PRMRotationCoordinator.swift,\ PRMSessionError.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:319:25: error: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' is unavailable in tvOS
 317 |             attachAudioDevice()
 318 |             if #available(iOS 26.0, *) {
 319 |                 session.configuresApplicationAudioSessionForBluetoothHighQualityRecording =
     |                         `- error: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' is unavailable in tvOS
 320 |                     configuration.enableBluetoothHighQualityRecording
 321 |             }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h:569:27: note: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' has been explicitly marked unavailable here
 567 | ///
 568 | /// The value of this property is a `BOOL` indicating whether the receiver should configure the application's audio session for bluetooth high quality recording (AirPods as a high quality microphone). When this property is set to `true`, the ``AVCaptureSession`` will opt in for high quality bluetooth recording, allowing users of your app to select AirPods as the active mic source for capture. This property has no effect when ``usesApplicationAudioSession`` is set to `false`. The default value is `false`.
 569 | @property(nonatomic) BOOL configuresApplicationAudioSessionForBluetoothHighQualityRecording API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos);
     |                           `- note: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' has been explicitly marked unavailable here
 570 | /*!
 571 |  @property automaticallyConfiguresCaptureDeviceForWideColor
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:379:93: error: 'lowLatency' is unavailable in tvOS
 377 |             var supportsLowLatency = false
 378 |             if #available(iOS 26.0, *), let device = videoDevice {
 379 |                 supportsLowLatency = device.activeFormat.isVideoStabilizationModeSupported(.lowLatency)
     |                                                                                             `- error: 'lowLatency' is unavailable in tvOS
 380 |             }
 381 |             connection.prm_setStabilization(Self.previewStabilizationMode(
AVFoundation.AVCaptureVideoStabilizationMode.lowLatency:3:8: note: 'lowLatency' has been explicitly marked unavailable here
1 | enum AVCaptureVideoStabilizationMode {
2 | @available(tvOS, unavailable)
3 |   case lowLatency}
  |        `- note: 'lowLatency' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:402:21: error: 'lowLatency' is unavailable in tvOS
 400 |         guard requested != .off, hasMovieOutput, supportsLowLatency else { return .off }
 401 |         if #available(iOS 26.0, *) {
 402 |             return .lowLatency
     |                     `- error: 'lowLatency' is unavailable in tvOS
 403 |         }
 404 |         return .off
AVFoundation.AVCaptureVideoStabilizationMode.lowLatency:3:8: note: 'lowLatency' has been explicitly marked unavailable here
1 | enum AVCaptureVideoStabilizationMode {
2 | @available(tvOS, unavailable)
3 |   case lowLatency}
  |        `- note: 'lowLatency' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1082:48: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
  16 | /// on the actor.
  17 | @PRMCameraActor
  18 | public final class PRMCameraSession {
     |                    `- note: add '@available' attribute to enclosing class
  19 |     // MARK: - Properties
  20 |
     :
1076 |     /// Cinematic Video runs on when it's enabled at configure and the usual camera has no
1077 |     /// Cinematic Video format (the Triple camera on Pro iPhones).
1078 |     nonisolated static func videoDeviceTypes(for configuration: PRMCameraConfiguration) -> [AVCaptureDevice.DeviceType] {
     |                             `- note: add '@available' attribute to enclosing static method
1079 |         guard #available(iOS 26.0, *), configuration.enableCinematicVideo,
1080 |               let cinematic = PRMCameraDevice.cinematicVideoDeviceType(at: configuration.cameraPosition),
1081 |               let usual = bestVideoDevice(position: configuration.cameraPosition, types: configuration.deviceTypes),
1082 |               !usual.formats.contains(where: \.isCinematicVideoCaptureSupported)
     |                                                |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
     |                                                `- note: add 'if #available' version check
1083 |         else { return configuration.deviceTypes }
1084 |         return [cinematic] + configuration.deviceTypes.filter { $0 != cinematic }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1180:19: error: 'isCameraSensorOrientationCompensationSupported' is unavailable in tvOS
1178 |         applyDeferredStart(to: output, isPreview: false)
1179 |         if #available(iOS 26.0, *), let compensation = configuration.enableCameraSensorOrientationCompensation,
1180 |            output.isCameraSensorOrientationCompensationSupported {
     |                   `- error: 'isCameraSensorOrientationCompensationSupported' is unavailable in tvOS
1181 |             output.isCameraSensorOrientationCompensationEnabled = compensation
1182 |         }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:804:92: note: 'isCameraSensorOrientationCompensationSupported' has been explicitly marked unavailable here
 802 |     Value is YES for camera configurations which support compensation for the sensor orientation, which is applied to HEIC, JPEG, and uncompressed processed photos only; compensation is never applied to Bayer RAW or Apple ProRaw captures.
 803 |  */
 804 | @property(nonatomic, readonly, getter=isCameraSensorOrientationCompensationSupported) BOOL cameraSensorOrientationCompensationSupported API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                                                                            `- note: 'isCameraSensorOrientationCompensationSupported' has been explicitly marked unavailable here
 805 |
 806 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1181:20: error: 'isCameraSensorOrientationCompensationEnabled' is unavailable in tvOS
1179 |         if #available(iOS 26.0, *), let compensation = configuration.enableCameraSensorOrientationCompensation,
1180 |            output.isCameraSensorOrientationCompensationSupported {
1181 |             output.isCameraSensorOrientationCompensationEnabled = compensation
     |                    `- error: 'isCameraSensorOrientationCompensationEnabled' is unavailable in tvOS
1182 |         }
1183 |
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:813:80: note: 'isCameraSensorOrientationCompensationEnabled' has been explicitly marked unavailable here
 811 |     Default is YES when cameraSensorOrientationCompensationSupported is YES. Set to NO if your app does not require sensor orientation compensation.
 812 |  */
 813 | @property(nonatomic, getter=isCameraSensorOrientationCompensationEnabled) BOOL cameraSensorOrientationCompensationEnabled API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                                                                `- note: 'isCameraSensorOrientationCompensationEnabled' has been explicitly marked unavailable here
 814 |
 815 | @end
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1213:35: error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
1211 |                 "Auto-deferred photo delivery",
1212 |                 requested: configuration.enableAutoDeferredPhotoDelivery,
1213 |                 supported: output.isAutoDeferredPhotoDeliverySupported
     |                                   `- error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
1214 |             ) { output.isAutoDeferredPhotoDeliveryEnabled = true }
1215 |             applyPhotoOutputFeature(
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:382:82: note: 'isAutoDeferredPhotoDeliverySupported' has been explicitly marked unavailable here
 380 |     Automatic deferred photo delivery can produce a lightweight photo representation, called a "proxy", at the time of capture that can later be processed to completion while improving camera responsiveness.  When it's appropriate for the receiver to deliver a photo proxy for deferred processing, the delegate callback -captureOutput:didFinishCapturingDeferredPhotoProxy:error: will be invoked instead of -captureOutput:didFinishProcessingPhoto:error:.  See the documentation for AVCaptureDeferredPhotoProxy for more details.
 381 |  */
 382 | @property(nonatomic, readonly, getter=isAutoDeferredPhotoDeliverySupported) BOOL autoDeferredPhotoDeliverySupported API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                                                                  `- note: 'isAutoDeferredPhotoDeliverySupported' has been explicitly marked unavailable here
 383 |
 384 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1214:24: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
1212 |                 requested: configuration.enableAutoDeferredPhotoDelivery,
1213 |                 supported: output.isAutoDeferredPhotoDeliverySupported
1214 |             ) { output.isAutoDeferredPhotoDeliveryEnabled = true }
     |                        `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
1215 |             applyPhotoOutputFeature(
1216 |                 "Zero shutter lag",
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:392:70: note: 'isAutoDeferredPhotoDeliveryEnabled' has been explicitly marked unavailable here
 390 |     Setting this value to either YES or NO requires a lengthy reconfiguration of the capture pipeline, so you should set this property before calling -[AVCaptureSession startRunning].  Setting this property to YES throws an NSInvalidArgumentException if autoDeferredPhotoDeliverySupported is NO.
 391 |  */
 392 | @property(nonatomic, getter=isAutoDeferredPhotoDeliveryEnabled) BOOL autoDeferredPhotoDeliveryEnabled API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                                                      `- note: 'isAutoDeferredPhotoDeliveryEnabled' has been explicitly marked unavailable here
 393 |
 394 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:18:34: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
   | `- note: add '@available' attribute to enclosing extension
18 |     init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
   |     |                            `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
19 |         switch mode {
20 |         case .strong: self = .strong
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:26:33: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
   | `- note: add '@available' attribute to enclosing extension
18 |     init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
19 |         switch mode {
   :
24 |     }
25 |
26 |     var avMode: AVCaptureDevice.CinematicVideoFocusMode {
   |         |                       `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
   |         `- note: add '@available' attribute to enclosing property
27 |         switch self {
28 |         case .none: .none
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:59:20: error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
   |             `- note: add '@available' attribute to enclosing enum
53 |     /// The scene is too dark for Cinematic Video to work optimally.
54 |     case notEnoughLight
   :
57 |
58 |     @available(iOS 26.0, *)
59 |     init(_ status: AVCaptureSceneMonitoringStatus) {
   |     |              `- error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
60 |         self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
61 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:60:27: error: 'notEnoughLight' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
   |             `- note: add '@available' attribute to enclosing enum
53 |     /// The scene is too dark for Cinematic Video to work optimally.
54 |     case notEnoughLight
   :
57 |
58 |     @available(iOS 26.0, *)
59 |     init(_ status: AVCaptureSceneMonitoringStatus) {
   |     `- note: add '@available' attribute to enclosing initializer
60 |         self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
   |                           |- error: 'notEnoughLight' is only available in tvOS 26.0 or newer
   |                           `- note: add 'if #available' version check
61 |     }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:81:47: error: 'objectID' is only available in tvOS 26.0 or newer
  4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
  5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
  6 | public struct PRMDetectedObject: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  7 |     /// What the metadata output detected.
  8 |     public enum Kind: Sendable, Hashable {
    :
 73 |     }
 74 |
 75 |     init(_ object: AVMetadataObject) {
    |     `- note: add '@available' attribute to enclosing initializer
 76 |         var objectID: Int?
 77 |         var groupID: Int?
    :
 79 |         var isFixedFocus = false
 80 |         if #available(iOS 26.0, *) {
 81 |             objectID = Self.identifier(object.objectID)
    |                                               |- error: 'objectID' is only available in tvOS 26.0 or newer
    |                                               `- note: add 'if #available' version check
 82 |             groupID = Self.identifier(object.groupID)
 83 |             let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:82:46: error: 'groupID' is only available in tvOS 26.0 or newer
  4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
  5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
  6 | public struct PRMDetectedObject: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  7 |     /// What the metadata output detected.
  8 |     public enum Kind: Sendable, Hashable {
    :
 73 |     }
 74 |
 75 |     init(_ object: AVMetadataObject) {
    |     `- note: add '@available' attribute to enclosing initializer
 76 |         var objectID: Int?
 77 |         var groupID: Int?
    :
 80 |         if #available(iOS 26.0, *) {
 81 |             objectID = Self.identifier(object.objectID)
 82 |             groupID = Self.identifier(object.groupID)
    |                                              |- error: 'groupID' is only available in tvOS 26.0 or newer
    |                                              `- note: add 'if #available' version check
 83 |             let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
 84 |             focusMode = mode == .none ? nil : mode
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:83:53: error: 'cinematicVideoFocusMode' is only available in tvOS 26.0 or newer
  4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
  5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
  6 | public struct PRMDetectedObject: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  7 |     /// What the metadata output detected.
  8 |     public enum Kind: Sendable, Hashable {
    :
 73 |     }
 74 |
 75 |     init(_ object: AVMetadataObject) {
    |     `- note: add '@available' attribute to enclosing initializer
 76 |         var objectID: Int?
 77 |         var groupID: Int?
    :
 81 |             objectID = Self.identifier(object.objectID)
 82 |             groupID = Self.identifier(object.groupID)
 83 |             let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
    |                                                     |- error: 'cinematicVideoFocusMode' is only available in tvOS 26.0 or newer
    |                                                     `- note: add 'if #available' version check
 84 |             focusMode = mode == .none ? nil : mode
 85 |             isFixedFocus = object.isFixedFocus
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:85:35: error: 'isFixedFocus' is only available in tvOS 26.0 or newer
  4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
  5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
  6 | public struct PRMDetectedObject: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  7 |     /// What the metadata output detected.
  8 |     public enum Kind: Sendable, Hashable {
    :
 73 |     }
 74 |
 75 |     init(_ object: AVMetadataObject) {
    |     `- note: add '@available' attribute to enclosing initializer
 76 |         var objectID: Int?
 77 |         var groupID: Int?
    :
 83 |             let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
 84 |             focusMode = mode == .none ? nil : mode
 85 |             isFixedFocus = object.isFixedFocus
    |                                   |- error: 'isFixedFocus' is only available in tvOS 26.0 or newer
    |                                   `- note: add 'if #available' version check
 86 |         }
 87 |         self.init(
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:101:46: error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
 97 | }
 98 |
 99 | extension PRMDetectedObject.Kind {
    | `- note: add '@available' attribute to enclosing extension
100 |     init(_ type: AVMetadataObject.ObjectType) {
    |     `- note: add '@available' attribute to enclosing initializer
101 |         if #available(iOS 27.0, *), type == .focusTrackedObject {
    |                                              |- error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
    |                                              `- note: add 'if #available' version check
102 |             self = .focusTracked
103 |             return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:106:25: error: 'catHead' is only available in tvOS 26.0 or newer
 97 | }
 98 |
 99 | extension PRMDetectedObject.Kind {
    | `- note: add '@available' attribute to enclosing extension
100 |     init(_ type: AVMetadataObject.ObjectType) {
    |     `- note: add '@available' attribute to enclosing initializer
101 |         if #available(iOS 27.0, *), type == .focusTrackedObject {
102 |             self = .focusTracked
    :
104 |         }
105 |         if #available(iOS 26.0, *) {
106 |             if type == .catHead {
    |                         |- error: 'catHead' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
107 |                 self = .catHead
108 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:110:25: error: 'dogHead' is only available in tvOS 26.0 or newer
 97 | }
 98 |
 99 | extension PRMDetectedObject.Kind {
    | `- note: add '@available' attribute to enclosing extension
100 |     init(_ type: AVMetadataObject.ObjectType) {
    |     `- note: add '@available' attribute to enclosing initializer
101 |         if #available(iOS 27.0, *), type == .focusTrackedObject {
102 |             self = .focusTracked
    :
108 |                 return
109 |             }
110 |             if type == .dogHead {
    |                         |- error: 'dogHead' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
111 |                 self = .dogHead
112 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:34:36: error: 'AspectRatio' is unavailable in tvOS
32 | @available(iOS 26.0, *)
33 | extension PRMAspectRatio {
34 |     init?(_ ratio: AVCaptureDevice.AspectRatio) {
   |                                    `- error: 'AspectRatio' is unavailable in tvOS
35 |         switch ratio {
36 |         case .ratio1x1: self = .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                   `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:45:40: error: 'AspectRatio' is unavailable in tvOS
43 |     }
44 |
45 |     var avAspectRatio: AVCaptureDevice.AspectRatio {
   |                                        `- error: 'AspectRatio' is unavailable in tvOS
46 |         switch self {
47 |         case .ratio1x1: .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                   `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:70:22: error: 'AVCaptureFraming' is unavailable in tvOS
68 |
69 |     @available(iOS 26.0, *)
70 |     init?(_ framing: AVCaptureFraming) {
   |                      `- error: 'AVCaptureFraming' is unavailable in tvOS
71 |         guard let ratio = PRMAspectRatio(framing.aspectRatio) else { return nil }
72 |         self.init(aspectRatio: ratio, zoomFactor: framing.zoomFactor)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2940:12: note: 'AVCaptureFraming' has been explicitly marked unavailable here
2938 | /// An ``AVCaptureSmartFramingMonitor`` provides framing recommendations using this object.
2939 | API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2940 | @interface AVCaptureFraming : NSObject
     |            `- note: 'AVCaptureFraming' has been explicitly marked unavailable here
2941 |
2942 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:36:15: error: 'ratio1x1' is unavailable in tvOS
34 |     init?(_ ratio: AVCaptureDevice.AspectRatio) {
35 |         switch ratio {
36 |         case .ratio1x1: self = .ratio1x1
   |               `- error: 'ratio1x1' is unavailable in tvOS
37 |         case .ratio16x9: self = .ratio16x9
38 |         case .ratio9x16: self = .ratio9x16
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2841:39: note: 'ratio1x1' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
2841 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio1x1 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio1x1' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:37:15: error: 'ratio16x9' is unavailable in tvOS
35 |         switch ratio {
36 |         case .ratio1x1: self = .ratio1x1
37 |         case .ratio16x9: self = .ratio16x9
   |               `- error: 'ratio16x9' is unavailable in tvOS
38 |         case .ratio9x16: self = .ratio9x16
39 |         case .ratio4x3: self = .ratio4x3
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2844:39: note: 'ratio16x9' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
2844 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio16x9 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio16x9' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:38:15: error: 'ratio9x16' is unavailable in tvOS
36 |         case .ratio1x1: self = .ratio1x1
37 |         case .ratio16x9: self = .ratio16x9
38 |         case .ratio9x16: self = .ratio9x16
   |               `- error: 'ratio9x16' is unavailable in tvOS
39 |         case .ratio4x3: self = .ratio4x3
40 |         case .ratio3x4: self = .ratio3x4
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2847:39: note: 'ratio9x16' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
2847 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio9x16 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio9x16' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:39:15: error: 'ratio4x3' is unavailable in tvOS
37 |         case .ratio16x9: self = .ratio16x9
38 |         case .ratio9x16: self = .ratio9x16
39 |         case .ratio4x3: self = .ratio4x3
   |               `- error: 'ratio4x3' is unavailable in tvOS
40 |         case .ratio3x4: self = .ratio3x4
41 |         default: return nil
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2850:39: note: 'ratio4x3' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
2850 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio4x3 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio4x3' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:40:15: error: 'ratio3x4' is unavailable in tvOS
38 |         case .ratio9x16: self = .ratio9x16
39 |         case .ratio4x3: self = .ratio4x3
40 |         case .ratio3x4: self = .ratio3x4
   |               `- error: 'ratio3x4' is unavailable in tvOS
41 |         default: return nil
42 |         }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2853:39: note: 'ratio3x4' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
2853 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio3x4 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio3x4' has been explicitly marked unavailable here
2854 |
2855 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:47:26: error: 'ratio1x1' is unavailable in tvOS
45 |     var avAspectRatio: AVCaptureDevice.AspectRatio {
46 |         switch self {
47 |         case .ratio1x1: .ratio1x1
   |                          `- error: 'ratio1x1' is unavailable in tvOS
48 |         case .ratio16x9: .ratio16x9
49 |         case .ratio9x16: .ratio9x16
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2841:39: note: 'ratio1x1' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
2841 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio1x1 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio1x1' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:48:27: error: 'ratio16x9' is unavailable in tvOS
46 |         switch self {
47 |         case .ratio1x1: .ratio1x1
48 |         case .ratio16x9: .ratio16x9
   |                           `- error: 'ratio16x9' is unavailable in tvOS
49 |         case .ratio9x16: .ratio9x16
50 |         case .ratio4x3: .ratio4x3
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2844:39: note: 'ratio16x9' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
2844 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio16x9 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio16x9' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:49:27: error: 'ratio9x16' is unavailable in tvOS
47 |         case .ratio1x1: .ratio1x1
48 |         case .ratio16x9: .ratio16x9
49 |         case .ratio9x16: .ratio9x16
   |                           `- error: 'ratio9x16' is unavailable in tvOS
50 |         case .ratio4x3: .ratio4x3
51 |         case .ratio3x4: .ratio3x4
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2847:39: note: 'ratio9x16' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
2847 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio9x16 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio9x16' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:50:26: error: 'ratio4x3' is unavailable in tvOS
48 |         case .ratio16x9: .ratio16x9
49 |         case .ratio9x16: .ratio9x16
50 |         case .ratio4x3: .ratio4x3
   |                          `- error: 'ratio4x3' is unavailable in tvOS
51 |         case .ratio3x4: .ratio3x4
52 |         }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2850:39: note: 'ratio4x3' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
2850 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio4x3 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio4x3' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:51:26: error: 'ratio3x4' is unavailable in tvOS
49 |         case .ratio9x16: .ratio9x16
50 |         case .ratio4x3: .ratio4x3
51 |         case .ratio3x4: .ratio3x4
   |                          `- error: 'ratio3x4' is unavailable in tvOS
52 |         }
53 |     }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2853:39: note: 'ratio3x4' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
2853 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio3x4 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                       `- note: 'ratio3x4' has been explicitly marked unavailable here
2854 |
2855 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift:82:60: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 80 |     /// one orientation. External cameras return 0.
 81 |     @available(iOS 27.0, *)
 82 |     public func videoRotationAngle(relativeTo orientation: AVCaptureVideoOrientation) -> CGFloat {
    |                                                            `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 83 |         coordinator.videoRotationAngleRelative(toDeviceOrientation: orientation)
 84 |     }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
 102 |
 103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
 104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
     |                            `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
 105 |     /// Indicates that video should be oriented vertically, port on the bottom.
 106 |     AVCaptureVideoOrientationPortrait           = 1,
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraSession.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraState.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCinematicVideo.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMDetectedObject.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMFraming.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMMetadataRouter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPermissions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMRotationCoordinator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMSessionError.swift
SwiftCompile normal arm64 Compiling\ PRMRenderContext.swift,\ PRMVideoFrame.swift,\ PRMBurstLog.swift,\ PRMImage.swift,\ PRMLog+Categories.swift,\ PRMLog.swift,\ PRMStreamRegistry.swift,\ PRMTempFile.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMRenderContext.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMVideoFrame.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMBurstLog.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMImage.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMLog+Categories.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMLog.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMStreamRegistry.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMTempFile.swift
SwiftCompile normal arm64 Compiling\ AVCaptureDevice+WhiteBalance.swift,\ AVCaptureDevice+Zoom.swift,\ AVCapturePhotoOutput+Readiness.swift,\ PRMExposureValue.swift,\ PRMLens.swift,\ PRMBlurFilter.swift,\ PRMColorFilter.swift,\ PRMDistortionFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:48:30: error: 'tungsten' is only available in tvOS 26.0 or newer
 25 |     /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
 26 |     /// nominal Kelvin used on earlier systems.
 27 |     enum PRMWhiteBalancePreset: Sendable, CaseIterable {
    |          `- note: add '@available' attribute to enclosing enum
 28 |         case tungsten       // ~3200K
 29 |         case fluorescent    // ~4000K
    :
 44 |
 45 |         @available(iOS 26.0, *)
 46 |         private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
    |                     `- note: add '@available' attribute to enclosing property
 47 |             switch self {
 48 |             case .tungsten: .tungsten
    |                              |- error: 'tungsten' is only available in tvOS 26.0 or newer
    |                              `- note: add 'if #available' version check
 49 |             case .fluorescent: .fluorescent
 50 |             case .daylight: .daylight
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:49:33: error: 'fluorescent' is only available in tvOS 26.0 or newer
 25 |     /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
 26 |     /// nominal Kelvin used on earlier systems.
 27 |     enum PRMWhiteBalancePreset: Sendable, CaseIterable {
    |          `- note: add '@available' attribute to enclosing enum
 28 |         case tungsten       // ~3200K
 29 |         case fluorescent    // ~4000K
    :
 44 |
 45 |         @available(iOS 26.0, *)
 46 |         private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
    |                     `- note: add '@available' attribute to enclosing property
 47 |             switch self {
 48 |             case .tungsten: .tungsten
 49 |             case .fluorescent: .fluorescent
    |                                 |- error: 'fluorescent' is only available in tvOS 26.0 or newer
    |                                 `- note: add 'if #available' version check
 50 |             case .daylight: .daylight
 51 |             case .cloudy: .cloudy
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:50:30: error: 'daylight' is only available in tvOS 26.0 or newer
 25 |     /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
 26 |     /// nominal Kelvin used on earlier systems.
 27 |     enum PRMWhiteBalancePreset: Sendable, CaseIterable {
    |          `- note: add '@available' attribute to enclosing enum
 28 |         case tungsten       // ~3200K
 29 |         case fluorescent    // ~4000K
    :
 44 |
 45 |         @available(iOS 26.0, *)
 46 |         private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
    |                     `- note: add '@available' attribute to enclosing property
 47 |             switch self {
 48 |             case .tungsten: .tungsten
 49 |             case .fluorescent: .fluorescent
 50 |             case .daylight: .daylight
    |                              |- error: 'daylight' is only available in tvOS 26.0 or newer
    |                              `- note: add 'if #available' version check
 51 |             case .cloudy: .cloudy
 52 |             case .shade: .shadow
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:51:28: error: 'cloudy' is only available in tvOS 26.0 or newer
 25 |     /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
 26 |     /// nominal Kelvin used on earlier systems.
 27 |     enum PRMWhiteBalancePreset: Sendable, CaseIterable {
    |          `- note: add '@available' attribute to enclosing enum
 28 |         case tungsten       // ~3200K
 29 |         case fluorescent    // ~4000K
    :
 44 |
 45 |         @available(iOS 26.0, *)
 46 |         private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
    |                     `- note: add '@available' attribute to enclosing property
 47 |             switch self {
 48 |             case .tungsten: .tungsten
 49 |             case .fluorescent: .fluorescent
 50 |             case .daylight: .daylight
 51 |             case .cloudy: .cloudy
    |                            |- error: 'cloudy' is only available in tvOS 26.0 or newer
    |                            `- note: add 'if #available' version check
 52 |             case .shade: .shadow
 53 |             case .flash: nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:52:27: error: 'shadow' is only available in tvOS 26.0 or newer
 25 |     /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
 26 |     /// nominal Kelvin used on earlier systems.
 27 |     enum PRMWhiteBalancePreset: Sendable, CaseIterable {
    |          `- note: add '@available' attribute to enclosing enum
 28 |         case tungsten       // ~3200K
 29 |         case fluorescent    // ~4000K
    :
 44 |
 45 |         @available(iOS 26.0, *)
 46 |         private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
    |                     `- note: add '@available' attribute to enclosing property
 47 |             switch self {
 48 |             case .tungsten: .tungsten
    :
 50 |             case .daylight: .daylight
 51 |             case .cloudy: .cloudy
 52 |             case .shade: .shadow
    |                           |- error: 'shadow' is only available in tvOS 26.0 or newer
    |                           `- note: add 'if #available' version check
 53 |             case .flash: nil
 54 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:140:23: error: 'nominalFocalLengthIn35mmFilm' is unavailable in tvOS
138 |     var prm_nominalFocalLength35mm: Double {
139 |         guard #available(iOS 26.0, *) else { return 0 }
140 |         return Double(nominalFocalLengthIn35mmFilm)
    |                       `- error: 'nominalFocalLengthIn35mmFilm' is unavailable in tvOS
141 |     }
142 |
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2963:38: note: 'nominalFocalLengthIn35mmFilm' has been explicitly marked unavailable here
2961 | ///
2962 | /// This property value is `0` for virtual devices and external cameras.
2963 | @property(nonatomic, readonly) float nominalFocalLengthIn35mmFilm API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     |                                      `- note: 'nominalFocalLengthIn35mmFilm' has been explicitly marked unavailable here
2964 | @end
2965 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:158:40: error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
  4 | private let sensorWidth35mm: Double = 36.0
  5 |
  6 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  7 |     // MARK: - Set Zoom
  8 |
    :
155 |     /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` before iOS 27, when the
156 |     ///   device doesn't support locking, or when it has no constituent of `type`.
157 |     func prm_lockPrimaryConstituent(to type: AVCaptureDevice.DeviceType?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
158 |         guard #available(iOS 27.0, *), isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported else {
    |                                        |- error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
    |                                        `- note: add 'if #available' version check
159 |             throw PRMSessionError.unsupportedConfiguration("Locking to one lens requires iOS 27 and a virtual camera that supports it")
160 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:171:13: error: 'setPrimaryConstituentDeviceSwitchingBehaviorLockedWith' is only available in tvOS 27.0 or newer
  4 | private let sensorWidth35mm: Double = 36.0
  5 |
  6 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  7 |     // MARK: - Set Zoom
  8 |
    :
155 |     /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` before iOS 27, when the
156 |     ///   device doesn't support locking, or when it has no constituent of `type`.
157 |     func prm_lockPrimaryConstituent(to type: AVCaptureDevice.DeviceType?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
158 |         guard #available(iOS 27.0, *), isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported else {
159 |             throw PRMSessionError.unsupportedConfiguration("Locking to one lens requires iOS 27 and a virtual camera that supports it")
    :
169 |         }
170 |         try prm_withConfigurationLock {
171 |             setPrimaryConstituentDeviceSwitchingBehaviorLockedWith(constituent)
    |             |- error: 'setPrimaryConstituentDeviceSwitchingBehaviorLockedWith' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
172 |         }
173 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:101:21: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     |               `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:112:19: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         |         `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:122:39: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
120 |     }
121 |
122 |     static func set(from signals: Set<AVCaptureDeviceExposureSignal>) -> Set<Self> {
    |                 |                     `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
123 |         Set(signals.compactMap(Self.init))
124 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:103:15: error: 'subjectMotion' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
    |               |- error: 'subjectMotion' is only available in tvOS 27.0 or newer
    |               `- note: add 'if #available' version check
104 |         case .groupPhoto: self = .groupPhoto
105 |         case .document: self = .document
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:104:15: error: 'groupPhoto' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
104 |         case .groupPhoto: self = .groupPhoto
    |               |- error: 'groupPhoto' is only available in tvOS 27.0 or newer
    |               `- note: add 'if #available' version check
105 |         case .document: self = .document
106 |         case .starburst: self = .starburst
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:105:15: error: 'document' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
104 |         case .groupPhoto: self = .groupPhoto
105 |         case .document: self = .document
    |               |- error: 'document' is only available in tvOS 27.0 or newer
    |               `- note: add 'if #available' version check
106 |         case .starburst: self = .starburst
107 |         case .flicker: self = .flicker
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:106:15: error: 'starburst' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
104 |         case .groupPhoto: self = .groupPhoto
105 |         case .document: self = .document
106 |         case .starburst: self = .starburst
    |               |- error: 'starburst' is only available in tvOS 27.0 or newer
    |               `- note: add 'if #available' version check
107 |         case .flicker: self = .flicker
108 |         default: return nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:107:15: error: 'flicker' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
    |     `- note: add '@available' attribute to enclosing initializer
102 |         switch signal {
103 |         case .subjectMotion: self = .subjectMotion
    :
105 |         case .document: self = .document
106 |         case .starburst: self = .starburst
107 |         case .flicker: self = .flicker
    |               |- error: 'flicker' is only available in tvOS 27.0 or newer
    |               `- note: add 'if #available' version check
108 |         default: return nil
109 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:114:31: error: 'subjectMotion' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
    |                               |- error: 'subjectMotion' is only available in tvOS 27.0 or newer
    |                               `- note: add 'if #available' version check
115 |         case .groupPhoto: .groupPhoto
116 |         case .document: .document
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:115:28: error: 'groupPhoto' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
115 |         case .groupPhoto: .groupPhoto
    |                            |- error: 'groupPhoto' is only available in tvOS 27.0 or newer
    |                            `- note: add 'if #available' version check
116 |         case .document: .document
117 |         case .starburst: .starburst
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:116:26: error: 'document' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
115 |         case .groupPhoto: .groupPhoto
116 |         case .document: .document
    |                          |- error: 'document' is only available in tvOS 27.0 or newer
    |                          `- note: add 'if #available' version check
117 |         case .starburst: .starburst
118 |         case .flicker: .flicker
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:117:27: error: 'starburst' is only available in tvOS 27.0 or newer
 98 |
 99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
    | `- note: add '@available' attribute to enclosing extension
101 |     init?(_ signal: AVCaptureDeviceExposureSignal) {
102 |         switch signal {
    :
110 |     }
111 |
112 |     var avSignal: AVCaptureDeviceExposureSignal {
    |         `- note: add '@available' attribute to enclosing property
113 |         switch self {
114 |         case .subjectMotion: .subjectMotion
115 |         case .groupPhoto: .groupPhoto
116 |         case .document: .document
117 |         case .starburst: .starburst
    |                           |- error: 'starburst' is only available in tvOS 27.0 or newer
    |                           `- note: add 'if #available' version check
118 |         case .flicker: .flicker
119 |         }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+WhiteBalance.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Zoom.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCapturePhotoOutput+Readiness.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMExposureValue.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMLens.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMBlurFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMColorFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMDistortionFilter.swift
SwiftCompile normal arm64 Compiling\ resource_bundle_accessor.swift,\ PRMCamera+Framing.swift,\ PRMCamera+ManualControls.swift,\ PRMCamera+Observers.swift,\ PRMCamera+SessionHealth.swift,\ PRMCamera+Tracking.swift,\ PRMCamera.swift,\ PRMCameraActor.swift,\ PRMCameraConfiguration.swift /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile resource_bundle_accessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera+Framing.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera+ManualControls.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera+Observers.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera+SessionHealth.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera+Tracking.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCamera.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraActor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMCameraConfiguration.swift
SwiftCompile normal arm64 Compiling\ PRMPortraitReadiness.swift,\ PRMRecording.swift,\ PRMVideoRecorder.swift,\ AVCaptureConnection+Stabilization.swift,\ AVCaptureDevice+Aperture.swift,\ AVCaptureDevice+AspectRatio.swift,\ AVCaptureDevice+Cinematic.swift,\ AVCaptureDevice+Configuration.swift,\ AVCaptureDevice+Depth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:22: error: 'minLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
 10 |     /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
 11 |     /// fixed or the OS is older than iOS 27.
 12 |     var prm_lensApertureRange: ClosedRange<Float>? {
    |         `- note: add '@available' attribute to enclosing property
 13 |         guard #available(iOS 27.0, *) else { return nil }
 14 |         let format = activeFormat
 15 |         guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
    |                      |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
    |                      `- note: add 'if #available' version check
 16 |         return format.minLensAperture ... format.maxLensAperture
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:50: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
 10 |     /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
 11 |     /// fixed or the OS is older than iOS 27.
 12 |     var prm_lensApertureRange: ClosedRange<Float>? {
    |         `- note: add '@available' attribute to enclosing property
 13 |         guard #available(iOS 27.0, *) else { return nil }
 14 |         let format = activeFormat
 15 |         guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
    |                                                  |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
    |                                                  `- note: add 'if #available' version check
 16 |         return format.minLensAperture ... format.maxLensAperture
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:75: error: 'minLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
 10 |     /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
 11 |     /// fixed or the OS is older than iOS 27.
 12 |     var prm_lensApertureRange: ClosedRange<Float>? {
    |         `- note: add '@available' attribute to enclosing property
 13 |         guard #available(iOS 27.0, *) else { return nil }
 14 |         let format = activeFormat
 15 |         guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
    |                                                                           |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
    |                                                                           `- note: add 'if #available' version check
 16 |         return format.minLensAperture ... format.maxLensAperture
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:16:23: error: 'minLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
 10 |     /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
 11 |     /// fixed or the OS is older than iOS 27.
 12 |     var prm_lensApertureRange: ClosedRange<Float>? {
    |         `- note: add '@available' attribute to enclosing property
 13 |         guard #available(iOS 27.0, *) else { return nil }
 14 |         let format = activeFormat
 15 |         guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
 16 |         return format.minLensAperture ... format.maxLensAperture
    |                       |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
    |                       `- note: add 'if #available' version check
 17 |     }
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:16:50: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
 10 |     /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
 11 |     /// fixed or the OS is older than iOS 27.
 12 |     var prm_lensApertureRange: ClosedRange<Float>? {
    |         `- note: add '@available' attribute to enclosing property
 13 |         guard #available(iOS 27.0, *) else { return nil }
 14 |         let format = activeFormat
 15 |         guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
 16 |         return format.minLensAperture ... format.maxLensAperture
    |                                                  |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
    |                                                  `- note: add 'if #available' version check
 17 |     }
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:25:27: error: 'automaticallyAdjustsLensAperture' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 20 |     /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
 21 |     /// `exposureMode` before that.
 22 |     var prm_autoExposureAxes: PRMExposureAxes {
    |         `- note: add '@available' attribute to enclosing property
 23 |         guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
 24 |         return PRMExposureAxes(
 25 |             apertureAuto: automaticallyAdjustsLensAperture,
    |                           |- error: 'automaticallyAdjustsLensAperture' is only available in tvOS 27.0 or newer
    |                           `- note: add 'if #available' version check
 26 |             shutterAuto: automaticallyAdjustsExposureDuration,
 27 |             isoAuto: automaticallyAdjustsISO
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:26:26: error: 'automaticallyAdjustsExposureDuration' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 20 |     /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
 21 |     /// `exposureMode` before that.
 22 |     var prm_autoExposureAxes: PRMExposureAxes {
    |         `- note: add '@available' attribute to enclosing property
 23 |         guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
 24 |         return PRMExposureAxes(
 25 |             apertureAuto: automaticallyAdjustsLensAperture,
 26 |             shutterAuto: automaticallyAdjustsExposureDuration,
    |                          |- error: 'automaticallyAdjustsExposureDuration' is only available in tvOS 27.0 or newer
    |                          `- note: add 'if #available' version check
 27 |             isoAuto: automaticallyAdjustsISO
 28 |         )
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:27:22: error: 'automaticallyAdjustsISO' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 20 |     /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
 21 |     /// `exposureMode` before that.
 22 |     var prm_autoExposureAxes: PRMExposureAxes {
    |         `- note: add '@available' attribute to enclosing property
 23 |         guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
 24 |         return PRMExposureAxes(
 25 |             apertureAuto: automaticallyAdjustsLensAperture,
 26 |             shutterAuto: automaticallyAdjustsExposureDuration,
 27 |             isoAuto: automaticallyAdjustsISO
    |                      |- error: 'automaticallyAdjustsISO' is only available in tvOS 27.0 or newer
    |                      `- note: add 'if #available' version check
 28 |         )
 29 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:43:29: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 34 |     /// `false` before iOS 27. Explicit values are only range-checked; `.current` and `.auto`
 35 |     /// test the lock/auto combination itself.
 36 |     func prm_supportsExposure(
    |          `- note: add '@available' attribute to enclosing instance method
 37 |         aperture: PRMExposureValue<Float> = .current,
 38 |         shutterSeconds: PRMExposureValue<Double> = .current,
    :
 41 |         guard #available(iOS 27.0, *) else { return false }
 42 |         let values = prm_resolvedExposureValues(aperture: aperture, shutterSeconds: shutterSeconds, iso: iso)
 43 |         return activeFormat.supportsExposureModeCustom(
    |                             |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
 44 |             lensAperture: values.aperture,
 45 |             duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:84:28: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 68 |     ///   multi-camera device when any axis is locked (the constituent cameras' auto exposure
 69 |     ///   overrides it).
 70 |     func prm_setExposure(
    |          `- note: add '@available' attribute to enclosing instance method
 71 |         aperture: PRMExposureValue<Float> = .current,
 72 |         shutterSeconds: PRMExposureValue<Double> = .current,
    :
 82 |         }
 83 |         let values = prm_resolvedExposureValues(aperture: aperture, shutterSeconds: shutterSeconds, iso: iso)
 84 |         guard activeFormat.supportsExposureModeCustom(
    |                            |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
    |                            `- note: add 'if #available' version check
 85 |             lensAperture: values.aperture,
 86 |             duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:98:13: error: 'setExposureModeCustom(lensAperture:duration:iso:completionHandler:)' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
 68 |     ///   multi-camera device when any axis is locked (the constituent cameras' auto exposure
 69 |     ///   overrides it).
 70 |     func prm_setExposure(
    |          `- note: add '@available' attribute to enclosing instance method
 71 |         aperture: PRMExposureValue<Float> = .current,
 72 |         shutterSeconds: PRMExposureValue<Double> = .current,
    :
 96 |                 prm_restoreExposureAutoTracking()
 97 |             }
 98 |             setExposureModeCustom(
    |             |- error: 'setExposureModeCustom(lensAperture:duration:iso:completionHandler:)' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
 99 |                 lensAperture: values.aperture,
100 |                 duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:116:13: error: 'autoExposureLensApertureRateLimit' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
108 |     /// frame. `0` restores the system's own pacing (faster in preview, slower while
109 |     /// recording). Values between 0 and 1 are raised to 1.
110 |     func prm_setAutoApertureRateLimit(_ ratio: Float) throws {
    |          `- note: add '@available' attribute to enclosing instance method
111 |         guard #available(iOS 27.0, *) else {
112 |             throw PRMSessionError.unsupportedConfiguration("Aperture rate limiting requires iOS 27")
    :
114 |         let value: Float = ratio <= 0 ? 0 : max(ratio, 1)
115 |         try prm_withConfigurationLock {
116 |             autoExposureLensApertureRateLimit = value
    |             |- error: 'autoExposureLensApertureRateLimit' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
117 |         }
118 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:125:44: error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
121 |
122 |     /// Exposure signals auto exposure is currently reacting to (iOS 27). Empty before that.
123 |     var prm_activeExposureSignals: Set<PRMExposureSignal> {
    |         `- note: add '@available' attribute to enclosing property
124 |         guard #available(iOS 27.0, *) else { return [] }
125 |         return PRMExposureSignal.set(from: activeExposureSignals)
    |                                            |- error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
    |                                            `- note: add 'if #available' version check
126 |     }
127 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:137:17: error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
129 |     /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 |     /// signals are dropped, since assigning one raises an exception.
131 |     func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
132 |         guard #available(iOS 27.0, *) else {
133 |             throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
    :
135 |         try prm_withConfigurationLock {
136 |             guard let signals else {
137 |                 automaticallyEnablesExposureSignals = true
    |                 |- error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
    |                 `- note: add 'if #available' version check
138 |                 return
139 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:140:13: error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
129 |     /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 |     /// signals are dropped, since assigning one raises an exception.
131 |     func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
132 |         guard #available(iOS 27.0, *) else {
133 |             throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
    :
138 |                 return
139 |             }
140 |             automaticallyEnablesExposureSignals = false
    |             |- error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
141 |             let supported = supportedExposureSignals
142 |             enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:141:29: error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
129 |     /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 |     /// signals are dropped, since assigning one raises an exception.
131 |     func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
132 |         guard #available(iOS 27.0, *) else {
133 |             throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
    :
139 |             }
140 |             automaticallyEnablesExposureSignals = false
141 |             let supported = supportedExposureSignals
    |                             |- error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
142 |             enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
143 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:142:13: error: 'enabledExposureSignals' is only available in tvOS 27.0 or newer
  5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
  6 |
  7 | public extension AVCaptureDevice {
    |        `- note: add '@available' attribute to enclosing extension
  8 |     // MARK: - Aperture capability
  9 |
    :
129 |     /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 |     /// signals are dropped, since assigning one raises an exception.
131 |     func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
    |          `- note: add '@available' attribute to enclosing instance method
132 |         guard #available(iOS 27.0, *) else {
133 |             throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
    :
140 |             automaticallyEnablesExposureSignals = false
141 |             let supported = supportedExposureSignals
142 |             enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
    |             |- error: 'enabledExposureSignals' is only available in tvOS 27.0 or newer
    |             `- note: add 'if #available' version check
143 |         }
144 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:160:26: error: 'autoLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
158 |         let format = activeFormat
159 |         let resolvedAperture: Float = switch aperture {
160 |         case .auto: Self.autoLensAperture
    |                          |- error: 'autoLensAperture' is only available in tvOS 27.0 or newer
    |                          `- note: add 'if #available' version check
161 |         case .current: Self.currentLensAperture
162 |         case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:161:29: error: 'currentLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
159 |         let resolvedAperture: Float = switch aperture {
160 |         case .auto: Self.autoLensAperture
161 |         case .current: Self.currentLensAperture
    |                             |- error: 'currentLensAperture' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
162 |         case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
163 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:55: error: 'minLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
160 |         case .auto: Self.autoLensAperture
161 |         case .current: Self.currentLensAperture
162 |         case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
    |                                                       |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
    |                                                       `- note: add 'if #available' version check
163 |         }
164 |         let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:84: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
160 |         case .auto: Self.autoLensAperture
161 |         case .current: Self.currentLensAperture
162 |         case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
    |                                                                                    |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
    |                                                                                    `- note: add 'if #available' version check
163 |         }
164 |         let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:108: error: 'minLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
160 |         case .auto: Self.autoLensAperture
161 |         case .current: Self.currentLensAperture
162 |         case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
    |                                                                                                            |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
    |                                                                                                            `- note: add 'if #available' version check
163 |         }
164 |         let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:165:26: error: 'autoExposureDuration' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
163 |         }
164 |         let resolvedDuration: CMTime = switch shutterSeconds {
165 |         case .auto: Self.autoExposureDuration
    |                          |- error: 'autoExposureDuration' is only available in tvOS 27.0 or newer
    |                          `- note: add 'if #available' version check
166 |         case .current: Self.currentExposureDuration
167 |         case let .fixed(seconds): prm_clampedDuration(CMTimeMakeWithSeconds(seconds, preferredTimescale: 1_000_000))
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:170:26: error: 'autoISO' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
150 |     /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 |     /// for `.fixed`.
152 |     @available(iOS 27.0, *)
153 |     func prm_resolvedExposureValues(
    |          `- note: add '@available' attribute to enclosing instance method
154 |         aperture: PRMExposureValue<Float>,
155 |         shutterSeconds: PRMExposureValue<Double>,
    :
168 |         }
169 |         let resolvedISO: Float = switch iso {
170 |         case .auto: Self.autoISO
    |                          |- error: 'autoISO' is only available in tvOS 27.0 or newer
    |                          `- note: add 'if #available' version check
171 |         case .current: Self.currentISO
172 |         case let .fixed(value): min(max(value, format.minISO), format.maxISO)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:10:52: error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
 9 |     var prm_cinematicFrameRateRange: ClosedRange<Float64>? {
   |         `- note: add '@available' attribute to enclosing property
10 |         guard #available(iOS 26.0, *), let range = videoFrameRateRangeForCinematicVideo else { return nil }
   |                                                    |- error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
   |                                                    `- note: add 'if #available' version check
11 |         return range.minFrameRate ... range.maxFrameRate
12 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:15: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
   :
14 |     /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 |     /// format can't change it (or the OS is older than iOS 26).
16 |     var prm_simulatedApertureRange: ClosedRange<Float>? {
   |         `- note: add '@available' attribute to enclosing property
17 |         guard #available(iOS 26.0, *) else { return nil }
18 |         guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
   |               |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
   |               `- note: add 'if #available' version check
19 |         return minSimulatedAperture ... maxSimulatedAperture
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:41: error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
   :
14 |     /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 |     /// format can't change it (or the OS is older than iOS 26).
16 |     var prm_simulatedApertureRange: ClosedRange<Float>? {
   |         `- note: add '@available' attribute to enclosing property
17 |         guard #available(iOS 26.0, *) else { return nil }
18 |         guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
   |                                         |- error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
   |                                         `- note: add 'if #available' version check
19 |         return minSimulatedAperture ... maxSimulatedAperture
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:65: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
   :
14 |     /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 |     /// format can't change it (or the OS is older than iOS 26).
16 |     var prm_simulatedApertureRange: ClosedRange<Float>? {
   |         `- note: add '@available' attribute to enclosing property
17 |         guard #available(iOS 26.0, *) else { return nil }
18 |         guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
   |                                                                 |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
   |                                                                 `- note: add 'if #available' version check
19 |         return minSimulatedAperture ... maxSimulatedAperture
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:19:16: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
   :
14 |     /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 |     /// format can't change it (or the OS is older than iOS 26).
16 |     var prm_simulatedApertureRange: ClosedRange<Float>? {
   |         `- note: add '@available' attribute to enclosing property
17 |         guard #available(iOS 26.0, *) else { return nil }
18 |         guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
19 |         return minSimulatedAperture ... maxSimulatedAperture
   |                |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
   |                `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:19:41: error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
 4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
 5 |
 6 | public extension AVCaptureDevice.Format {
   |        `- note: add '@available' attribute to enclosing extension
 7 |     /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
 8 |     /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
   :
14 |     /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 |     /// format can't change it (or the OS is older than iOS 26).
16 |     var prm_simulatedApertureRange: ClosedRange<Float>? {
   |         `- note: add '@available' attribute to enclosing property
17 |         guard #available(iOS 26.0, *) else { return nil }
18 |         guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
19 |         return minSimulatedAperture ... maxSimulatedAperture
   |                                         |- error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
   |                                         `- note: add 'if #available' version check
20 |     }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:41:17: error: 'setCinematicVideoTrackingFocus(detectedObjectID:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
   |        `- note: add '@available' attribute to enclosing extension
24 |     /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 |     var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
   :
35 |     /// instead.
36 |     @available(iOS 26.0, *)
37 |     func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
   |          `- note: add '@available' attribute to enclosing instance method
38 |         try prm_withConfigurationLock {
39 |             switch request {
40 |             case let .trackObject(id, mode):
41 |                 setCinematicVideoTrackingFocus(detectedObjectID: id, focusMode: mode.avMode)
   |                 |- error: 'setCinematicVideoTrackingFocus(detectedObjectID:focusMode:)' is only available in tvOS 26.0 or newer
   |                 `- note: add 'if #available' version check
42 |             case let .trackPoint(point, mode):
43 |                 setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:43:17: error: 'setCinematicVideoTrackingFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
   |        `- note: add '@available' attribute to enclosing extension
24 |     /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 |     var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
   :
35 |     /// instead.
36 |     @available(iOS 26.0, *)
37 |     func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
   |          `- note: add '@available' attribute to enclosing instance method
38 |         try prm_withConfigurationLock {
39 |             switch request {
   :
41 |                 setCinematicVideoTrackingFocus(detectedObjectID: id, focusMode: mode.avMode)
42 |             case let .trackPoint(point, mode):
43 |                 setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
   |                 |- error: 'setCinematicVideoTrackingFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
   |                 `- note: add 'if #available' version check
44 |             case let .fixedPoint(point, mode):
45 |                 setCinematicVideoFixedFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:45:17: error: 'setCinematicVideoFixedFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
   |        `- note: add '@available' attribute to enclosing extension
24 |     /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 |     var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
   :
35 |     /// instead.
36 |     @available(iOS 26.0, *)
37 |     func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
   |          `- note: add '@available' attribute to enclosing instance method
38 |         try prm_withConfigurationLock {
39 |             switch request {
   :
43 |                 setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
44 |             case let .fixedPoint(point, mode):
45 |                 setCinematicVideoFixedFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
   |                 |- error: 'setCinematicVideoFixedFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
   |                 `- note: add 'if #available' version check
46 |             }
47 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:65:23: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
51 | // MARK: - Format selection
52 |
53 | extension AVCaptureDevice {
   | `- note: add '@available' attribute to enclosing extension
54 |     /// Picks the format to switch to for Cinematic Video: among formats that support it,
55 |     /// the one closest in pixel count to `preferredDimensions` (the current format, so the
   :
57 |     /// `nil` when no format supports Cinematic Video.
58 |     @available(iOS 26.0, *)
59 |     static func prm_bestCinematicFormat(
   |                 `- note: add '@available' attribute to enclosing static method
60 |         from formats: [AVCaptureDevice.Format],
61 |         preferredDimensions: CMVideoDimensions
   :
63 |         let target = Int64(preferredDimensions.width) * Int64(preferredDimensions.height)
64 |         return formats
65 |             .filter(\.isCinematicVideoCaptureSupported)
   |                       |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
   |                       `- note: add 'if #available' version check
66 |             .min { lhs, rhs in
67 |                 let lhsDims = CMVideoFormatDescriptionGetDimensions(lhs.formatDescription)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:72:35: error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
51 | // MARK: - Format selection
52 |
53 | extension AVCaptureDevice {
   | `- note: add '@available' attribute to enclosing extension
54 |     /// Picks the format to switch to for Cinematic Video: among formats that support it,
55 |     /// the one closest in pixel count to `preferredDimensions` (the current format, so the
   :
57 |     /// `nil` when no format supports Cinematic Video.
58 |     @available(iOS 26.0, *)
59 |     static func prm_bestCinematicFormat(
   |                 `- note: add '@available' attribute to enclosing static method
60 |         from formats: [AVCaptureDevice.Format],
61 |         preferredDimensions: CMVideoDimensions
   :
70 |                 let rhsDistance = abs(Int64(rhsDims.width) * Int64(rhsDims.height) - target)
71 |                 if lhsDistance != rhsDistance { return lhsDistance < rhsDistance }
72 |                 let lhsRate = lhs.videoFrameRateRangeForCinematicVideo?.maxFrameRate ?? 0
   |                                   |- error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
   |                                   `- note: add 'if #available' version check
73 |                 let rhsRate = rhs.videoFrameRateRangeForCinematicVideo?.maxFrameRate ?? 0
74 |                 return lhsRate > rhsRate
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPortraitReadiness.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMRecording.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMVideoRecorder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureConnection+Stabilization.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Aperture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+AspectRatio.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Cinematic.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Configuration.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+Depth.swift
SwiftCompile normal arm64 Compiling\ PRMLivePhoto.swift,\ PRMNightModeCapture.swift,\ PRMOutputResolver.swift,\ PRMPhoto.swift,\ PRMPhotoCapture+Delegate.swift,\ PRMPhotoCapture+Encoding.swift,\ PRMPhotoCapture.swift,\ PRMPhotoSettings.swift,\ PRMPortraitPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMLivePhoto.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightModeCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMOutputResolver.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPhoto.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPhotoCapture+Delegate.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPhotoCapture+Encoding.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPhotoCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPhotoSettings.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMPortraitPhoto.swift
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:44:66: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
 42 |     public func photoOutput(
 43 |         _ output: AVCapturePhotoOutput,
 44 |         didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
    |                                                                  `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
 45 |         error: (any Error)?
 46 |     ) {
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 |  */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
     |            `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:42:17: error: cannot override 'photoOutput' which has been marked unavailable
 40 |     /// proxy is a failure with no follow-up; the capture is identified (and failed) in
 41 |     /// `didFinishCaptureFor`, which carries the resolved settings this callback lacks.
 42 |     public func photoOutput(
    |                 `- error: cannot override 'photoOutput' which has been marked unavailable
 43 |         _ output: AVCapturePhotoOutput,
 44 |         didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:1071:1: note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1069 |      Delegates are required to implement this method if they opt in for deferred photo processing, otherwise an NSInvalidArgumentException will be thrown from the -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] method.
1070 | */
1071 | - (void)captureOutput:(AVCapturePhotoOutput *)output didFinishCapturingDeferredPhotoProxy:(nullable AVCaptureDeferredPhotoProxy *)deferredPhotoProxy error:(nullable NSError *)error NS_SWIFT_NAME(photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)) API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
     | `- note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1072 |
1073 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift:158:50: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
156 |         switch result {
157 |         case let .success(photo):
158 |             let proxy = photo.underlyingPhoto is AVCaptureDeferredPhotoProxy ? " (deferred proxy)" : ""
    |                                                  `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
159 |             let smaller = smallerThanRequestedText(photo.underlyingPhoto.resolvedSettings.photoDimensions, requested: requested, sizeLimit: sizeLimit)
160 |             PRMLog.notice(
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 |  */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
     |            `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
SwiftCompile normal arm64 Compiling\ PRMSessionHealth.swift,\ PRMVideoFrameRouter.swift,\ PRMNightMerger.swift,\ PRMNightPlanner.swift,\ PRMNightRegistration.swift,\ PRMNightStacker.swift,\ PRMNightTone.swift,\ PRMNightTypes.swift,\ PRMDepthCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMSessionHealth.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMVideoFrameRouter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightMerger.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightPlanner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightRegistration.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightStacker.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightTone.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMNightTypes.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift (in target 'PrismCore' from project 'Prism')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PRMDepthCapture.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-10-12 14:37:38.167 xcodebuild[769:4686] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftEmitModule normal arm64 Emitting\ module\ for\ PrismCore (in target 'PrismCore' from project 'Prism')
	SwiftCompile normal arm64 (in target 'PrismCore' from project 'Prism')
	Building workspace Prism with scheme Prism-Package
(3 failures)
BUILD FAILURE 6.4 tvOS