The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Prism, reference 0.2.0 (5004fe), with Swift 6.4 for tvOS using Xcode 27.0 on 12 Oct 2026 18:40:53 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

/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\ PRMCameraDevice.swift,\ PRMCameraSession+Cinematic.swift,\ PRMCameraSession+Controls.swift,\ PRMCameraSession+DeviceObservers.swift,\ PRMCameraSession+Features.swift,\ PRMCameraSession+Format.swift,\ PRMCameraSession+Metadata.swift,\ PRMCameraSession+NightCapture.swift,\ PRMCameraSession+State.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 (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:291:47: error: 'recommendedLensApertureStops' is only available in tvOS 27.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
289 |         if #available(iOS 27.0, *) {
290 |             apertureRange = device.prm_lensApertureRange
291 |             recommendedApertureStops = format.recommendedLensApertureStops
    |                                               |- error: 'recommendedLensApertureStops' is only available in tvOS 27.0 or newer
    |                                               `- note: add 'if #available' version check
292 |             supportedExposureSignals = PRMExposureSignal.set(from: device.supportedExposureSignals)
293 |             supportsPrimaryConstituentLock = device.isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:292:75: error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
290 |             apertureRange = device.prm_lensApertureRange
291 |             recommendedApertureStops = format.recommendedLensApertureStops
292 |             supportedExposureSignals = PRMExposureSignal.set(from: device.supportedExposureSignals)
    |                                                                           |- error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
    |                                                                           `- note: add 'if #available' version check
293 |             supportsPrimaryConstituentLock = device.isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported
294 |             supportsLowLightVideoNoiseReduction = format.isLowLightVideoNoiseReductionSupported
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:293:53: error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
291 |             recommendedApertureStops = format.recommendedLensApertureStops
292 |             supportedExposureSignals = PRMExposureSignal.set(from: device.supportedExposureSignals)
293 |             supportsPrimaryConstituentLock = device.isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported
    |                                                     |- error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
    |                                                     `- note: add 'if #available' version check
294 |             supportsLowLightVideoNoiseReduction = format.isLowLightVideoNoiseReductionSupported
295 |             supportsContinuousAutoFocusTracking = format.isContinuousAutoFocusTrackingSupported
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:294:58: error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
292 |             supportedExposureSignals = PRMExposureSignal.set(from: device.supportedExposureSignals)
293 |             supportsPrimaryConstituentLock = device.isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported
294 |             supportsLowLightVideoNoiseReduction = format.isLowLightVideoNoiseReductionSupported
    |                                                          |- error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
    |                                                          `- note: add 'if #available' version check
295 |             supportsContinuousAutoFocusTracking = format.isContinuousAutoFocusTrackingSupported
296 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:295:58: error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
293 |             supportsPrimaryConstituentLock = device.isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported
294 |             supportsLowLightVideoNoiseReduction = format.isLowLightVideoNoiseReductionSupported
295 |             supportsContinuousAutoFocusTracking = format.isContinuousAutoFocusTrackingSupported
    |                                                          |- error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
    |                                                          `- note: add 'if #available' version check
296 |         } else {
297 |             apertureRange = nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:305:50: error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
303 |         }
304 |         if #available(iOS 26.0, *) {
305 |             supportsFocusRectOfInterest = device.isFocusRectOfInterestSupported
    |                                                  |- error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
    |                                                  `- note: add 'if #available' version check
306 |             supportsExposureRectOfInterest = device.isExposureRectOfInterestSupported
307 |             supportsLensSmudgeDetection = format.isCameraLensSmudgeDetectionSupported
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:306:53: error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
304 |         if #available(iOS 26.0, *) {
305 |             supportsFocusRectOfInterest = device.isFocusRectOfInterestSupported
306 |             supportsExposureRectOfInterest = device.isExposureRectOfInterestSupported
    |                                                     |- error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
    |                                                     `- note: add 'if #available' version check
307 |             supportsLensSmudgeDetection = format.isCameraLensSmudgeDetectionSupported
308 |             // The format `PRMCameraSession` would switch to, so the ranges match what
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:307:50: error: 'isCameraLensSmudgeDetectionSupported' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
305 |             supportsFocusRectOfInterest = device.isFocusRectOfInterestSupported
306 |             supportsExposureRectOfInterest = device.isExposureRectOfInterestSupported
307 |             supportsLensSmudgeDetection = format.isCameraLensSmudgeDetectionSupported
    |                                                  |- error: 'isCameraLensSmudgeDetectionSupported' is only available in tvOS 26.0 or newer
    |                                                  `- note: add 'if #available' version check
308 |             // The format `PRMCameraSession` would switch to, so the ranges match what
309 |             // enabling Cinematic Video actually gives. Without one here, the ranges are the
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:312:45: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
310 |             // camera's that enabling switches to.
311 |             let preferredDimensions = CMVideoFormatDescriptionGetDimensions(format.formatDescription)
312 |             let ownCinematicFormat = format.isCinematicVideoCaptureSupported
    |                                             |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
    |                                             `- note: add 'if #available' version check
313 |                 ? format
314 |                 : AVCaptureDevice.prm_bestCinematicFormat(from: device.formats, preferredDimensions: preferredDimensions)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:327:47: error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
325 |             }
326 |             if let cinematicFormat {
327 |                 let minZoom = cinematicFormat.videoMinZoomFactorForCinematicVideo
    |                                               |- error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                                               `- note: add 'if #available' version check
328 |                 let maxZoom = cinematicFormat.videoMaxZoomFactorForCinematicVideo
329 |                 cinematicZoomRange = minZoom <= maxZoom ? minZoom ... maxZoom : nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:328:47: error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
  5 | /// `AVCaptureDevice` itself is not `Sendable` and is owned by ``PRMCameraSession``. This
  6 | /// struct is the safe-to-cross-actor view into the device used by ``PRMCamera`` consumers.
  7 | public struct PRMCameraDevice: Sendable, Equatable {
    |               `- note: add '@available' attribute to enclosing struct
  8 |     /// Underlying device unique ID (`AVCaptureDevice.uniqueID`).
  9 |     public let uniqueID: String
    :
238 |     /// Constructs a snapshot from an `AVCaptureDevice`. Call from session-actor context where
239 |     /// reading the device's mutable properties is safe.
240 |     public init(snapshotting device: AVCaptureDevice) {
    |            `- note: add '@available' attribute to enclosing initializer
241 |         uniqueID = device.uniqueID
242 |         deviceType = device.deviceType
    :
326 |             if let cinematicFormat {
327 |                 let minZoom = cinematicFormat.videoMinZoomFactorForCinematicVideo
328 |                 let maxZoom = cinematicFormat.videoMaxZoomFactorForCinematicVideo
    |                                               |- error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                                               `- note: add 'if #available' version check
329 |                 cinematicZoomRange = minZoom <= maxZoom ? minZoom ... maxZoom : nil
330 |                 simulatedApertureRange = cinematicFormat.prm_simulatedApertureRange
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift:431:30: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
390 | /// and ``PRMCameraDevice/depthDeviceType(at:)``: each discovery walks every format of several
391 | /// cameras.
392 | private enum DeviceTypeCache {
    |              `- note: add '@available' attribute to enclosing enum
393 |     enum Capability: Hashable {
394 |         case cinematicVideo
    :
414 |     }
415 |
416 |     private static func discover(_ capability: Capability, at position: AVCaptureDevice.Position) -> AVCaptureDevice.DeviceType? {
    |                         `- note: add '@available' attribute to enclosing static method
417 |         let preference: [AVCaptureDevice.DeviceType]
418 |         let hasFormat: (AVCaptureDevice.Format) -> Bool
    :
429 |                 .builtInTelephotoCamera,
430 |             ]
431 |             hasFormat = { $0.isCinematicVideoCaptureSupported }
    |                              |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
    |                              `- note: add 'if #available' version check
432 |         case .depth:
433 |             preference = [
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:29:22: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
 26 |     /// Whether Cinematic Video capture is enabled on the current video input.
 27 |     var isCinematicVideoCaptureActive: Bool {
    |         `- note: add '@available' attribute to enclosing property
 28 |         guard #available(iOS 26.0, *), let input = videoDeviceInput else { return false }
 29 |         return input.isCinematicVideoCaptureEnabled
    |                      |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                      `- note: add 'if #available' version check
 30 |     }
 31 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:34:76: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
    :
 31 |
 32 |     /// Current Cinematic Video simulated aperture, or `0` when Cinematic Video is off.
 33 |     var cinematicSimulatedAperture: Float {
    |         `- note: add '@available' attribute to enclosing property
 34 |         guard #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled else { return 0 }
    |                                                                            |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                                                                            `- note: add 'if #available' version check
 35 |         return input.simulatedAperture
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:35:22: error: 'simulatedAperture' is only available in tvOS 26.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
    :
 31 |
 32 |     /// Current Cinematic Video simulated aperture, or `0` when Cinematic Video is off.
 33 |     var cinematicSimulatedAperture: Float {
    |         `- note: add '@available' attribute to enclosing property
 34 |         guard #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled else { return 0 }
 35 |         return input.simulatedAperture
    |                      |- error: 'simulatedAperture' is only available in tvOS 26.0 or newer
    |                      `- note: add 'if #available' version check
 36 |     }
 37 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:41:23: error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
    :
 37 |
 38 |     /// Whether the movie output records Cinematic Video metadata (iOS 27).
 39 |     var isCinematicVideoMetadataCaptureEnabled: Bool {
    |         `- note: add '@available' attribute to enclosing property
 40 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return false }
 41 |         return output.isCinematicVideoMetadataCaptureEnabled
    |                       |- error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                       `- note: add 'if #available' version check
 42 |     }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:123:76: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
    :
120 |     ///   enabled, not recording, and the format allows changing the aperture.
121 |     @discardableResult
122 |     func setCinematicSimulatedAperture(_ aperture: Float) throws -> Float {
    |          `- note: add '@available' attribute to enclosing instance method
123 |         guard #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled,
    |                                                                            |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                                                                            `- note: add 'if #available' version check
124 |               let device = videoDevice
125 |         else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:134:15: error: 'simulatedAperture' is only available in tvOS 26.0 or newer
 21 | // don't.
 22 |
 23 | public extension PRMCameraSession {
    |        `- note: add '@available' attribute to enclosing extension
 24 |     // MARK: State
 25 |
    :
120 |     ///   enabled, not recording, and the format allows changing the aperture.
121 |     @discardableResult
122 |     func setCinematicSimulatedAperture(_ aperture: Float) throws -> Float {
    |          `- note: add '@available' attribute to enclosing instance method
123 |         guard #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled,
124 |               let device = videoDevice
    :
132 |         let clamped = min(max(aperture, range.lowerBound), range.upperBound)
133 |         cinematicSimulatedApertureIntent = clamped
134 |         input.simulatedAperture = clamped
    |               |- error: 'simulatedAperture' is only available in tvOS 26.0 or newer
    |               `- note: add 'if #available' version check
135 |         return clamped
136 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:254:33: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
252 |         wantsContinuousAutoFocusTracking = false
253 |
254 |         if !device.activeFormat.isCinematicVideoCaptureSupported {
    |                                 |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
    |                                 `- note: add 'if #available' version check
255 |             let dims = CMVideoFormatDescriptionGetDimensions(device.activeFormat.formatDescription)
256 |             guard let format = AVCaptureDevice.prm_bestCinematicFormat(from: device.formats, preferredDimensions: dims) else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:269:21: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
267 |             refreshOutputMaxPhotoDimensions()
268 |         }
269 |         guard input.isCinematicVideoCaptureSupported else {
    |                     |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
    |                     `- note: add 'if #available' version check
270 |             // This commit still changed the format; keep the format-dependent features in
271 |             // step until the next pass enables Cinematic Video.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:281:25: error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
279 |         let zoom = Self.clampedZoom(
280 |             device.videoZoomFactor,
281 |             min: format.videoMinZoomFactorForCinematicVideo,
    |                         |- error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
282 |             max: format.videoMaxZoomFactorForCinematicVideo
283 |         )
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:282:25: error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
280 |             device.videoZoomFactor,
281 |             min: format.videoMinZoomFactorForCinematicVideo,
282 |             max: format.videoMaxZoomFactorForCinematicVideo
    |                         |- error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
283 |         )
284 |         if zoom != device.videoZoomFactor {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:299:15: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
297 |         }
298 |
299 |         input.isCinematicVideoCaptureEnabled = true
    |               |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |               `- note: add 'if #available' version check
300 |         if let aperture = cinematicSimulatedApertureIntent, let range = format.prm_simulatedApertureRange {
301 |             input.simulatedAperture = min(max(aperture, range.lowerBound), range.upperBound)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:301:19: error: 'simulatedAperture' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
237 |     /// and run another pass.
238 |     @available(iOS 26.0, *)
239 |     private func enableCinematicVideo(targetPhotoOutputAttached: Bool?, attachMovieOutput: Bool) throws -> Bool {
    |                  `- note: add '@available' attribute to enclosing instance method
240 |         guard let input = videoDeviceInput, let device = videoDevice else {
241 |             throw PRMSessionError.unsupportedConfiguration("No video input")
    :
299 |         input.isCinematicVideoCaptureEnabled = true
300 |         if let aperture = cinematicSimulatedApertureIntent, let range = format.prm_simulatedApertureRange {
301 |             input.simulatedAperture = min(max(aperture, range.lowerBound), range.upperBound)
    |                   |- error: 'simulatedAperture' is only available in tvOS 26.0 or newer
    |                   `- note: add 'if #available' version check
302 |         }
303 |         // Includes the metadata output (Cinematic's required types) and the iOS 27 metadata
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:312:48: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
308 |
309 |     @available(iOS 26.0, *)
310 |     private func disableCinematicVideo(targetPhotoOutputAttached: Bool?) {
    |                  `- note: add '@available' attribute to enclosing instance method
311 |         wantsCinematicVideo = false
312 |         if let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled {
    |                                                |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                                                `- note: add 'if #available' version check
313 |             input.isCinematicVideoCaptureEnabled = false
314 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:313:19: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
308 |
309 |     @available(iOS 26.0, *)
310 |     private func disableCinematicVideo(targetPhotoOutputAttached: Bool?) {
    |                  `- note: add '@available' attribute to enclosing instance method
311 |         wantsCinematicVideo = false
312 |         if let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled {
313 |             input.isCinematicVideoCaptureEnabled = false
    |                   |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                   `- note: add 'if #available' version check
314 |         }
315 |         if let preset = configuredSessionPreset, session.sessionPreset != preset, session.canSetSessionPreset(preset) {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:354:73: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
347 |     /// back to the snapshot. Outputs the app arranged (a detached photo output, an attached
348 |     /// movie output) stay as they are. Call inside an open begin/commit.
349 |     private func rollBackCinematicAttempt(_ rollback: CinematicRollback) {
    |                  `- note: add '@available' attribute to enclosing instance method
350 |         wantsCinematicVideo = false
351 |         // Enabling turned the tracking intent off up front; a failed attempt gives it back
352 |         // (`applyFeatureIntents()` below re-applies it to the device).
353 |         wantsContinuousAutoFocusTracking = rollback.wantsTracking
354 |         if #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled {
    |                                                                         |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                                                                         `- note: add 'if #available' version check
355 |             input.isCinematicVideoCaptureEnabled = false
356 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:355:19: error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
347 |     /// back to the snapshot. Outputs the app arranged (a detached photo output, an attached
348 |     /// movie output) stay as they are. Call inside an open begin/commit.
349 |     private func rollBackCinematicAttempt(_ rollback: CinematicRollback) {
    |                  `- note: add '@available' attribute to enclosing instance method
350 |         wantsCinematicVideo = false
351 |         // Enabling turned the tracking intent off up front; a failed attempt gives it back
    :
353 |         wantsContinuousAutoFocusTracking = rollback.wantsTracking
354 |         if #available(iOS 26.0, *), let input = videoDeviceInput, input.isCinematicVideoCaptureEnabled {
355 |             input.isCinematicVideoCaptureEnabled = false
    |                   |- error: 'isCinematicVideoCaptureEnabled' is only available in tvOS 26.0 or newer
    |                   `- note: add 'if #available' version check
356 |         }
357 |         if session.sessionPreset != rollback.preset, session.canSetSessionPreset(rollback.preset) {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:387:25: error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
379 |     /// `factor` clamped to the Cinematic Video zoom range while Cinematic Video is enabled;
380 |     /// unchanged otherwise.
381 |     func cinematicClampedZoom(_ factor: CGFloat) -> CGFloat {
    |          `- note: add '@available' attribute to enclosing instance method
382 |         guard #available(iOS 26.0, *), isCinematicVideoCaptureActive, let format = videoDevice?.activeFormat else {
383 |             return factor
    :
385 |         return Self.clampedZoom(
386 |             factor,
387 |             min: format.videoMinZoomFactorForCinematicVideo,
    |                         |- error: 'videoMinZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
388 |             max: format.videoMaxZoomFactorForCinematicVideo
389 |         )
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:388:25: error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
379 |     /// `factor` clamped to the Cinematic Video zoom range while Cinematic Video is enabled;
380 |     /// unchanged otherwise.
381 |     func cinematicClampedZoom(_ factor: CGFloat) -> CGFloat {
    |          `- note: add '@available' attribute to enclosing instance method
382 |         guard #available(iOS 26.0, *), isCinematicVideoCaptureActive, let format = videoDevice?.activeFormat else {
383 |             return factor
    :
386 |             factor,
387 |             min: format.videoMinZoomFactorForCinematicVideo,
388 |             max: format.videoMaxZoomFactorForCinematicVideo
    |                         |- error: 'videoMaxZoomFactorForCinematicVideo' is only available in tvOS 26.0 or newer
    |                         `- note: add 'if #available' version check
389 |         )
390 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:402:24: error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
401 |         case .automatic:
402 |             if !output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled {
    |                        |- error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                        `- note: add 'if #available' version check
403 |                 output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled = true
404 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:403:24: error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
401 |         case .automatic:
402 |             if !output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled {
403 |                 output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled = true
    |                        |- error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                        `- note: add 'if #available' version check
404 |             }
405 |         case .enabled, .disabled:
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:406:23: error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
    :
404 |             }
405 |         case .enabled, .disabled:
406 |             if output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled {
    |                       |- error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                       `- note: add 'if #available' version check
407 |                 output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled = false
408 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:407:24: error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
    :
405 |         case .enabled, .disabled:
406 |             if output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled {
407 |                 output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled = false
    |                        |- error: 'automaticallyAdjustsCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                        `- note: add 'if #available' version check
408 |             }
409 |             let enable = cinematicMetadataCapture == .enabled && output.isCinematicVideoMetadataCaptureSupported
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:409:73: error: 'isCinematicVideoMetadataCaptureSupported' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
    :
407 |                 output.automaticallyAdjustsCinematicVideoMetadataCaptureEnabled = false
408 |             }
409 |             let enable = cinematicMetadataCapture == .enabled && output.isCinematicVideoMetadataCaptureSupported
    |                                                                         |- error: 'isCinematicVideoMetadataCaptureSupported' is only available in tvOS 27.0 or newer
    |                                                                         `- note: add 'if #available' version check
410 |             if output.isCinematicVideoMetadataCaptureEnabled != enable {
411 |                 output.isCinematicVideoMetadataCaptureEnabled = enable
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:410:23: error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
    :
408 |             }
409 |             let enable = cinematicMetadataCapture == .enabled && output.isCinematicVideoMetadataCaptureSupported
410 |             if output.isCinematicVideoMetadataCaptureEnabled != enable {
    |                       |- error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                       `- note: add 'if #available' version check
411 |                 output.isCinematicVideoMetadataCaptureEnabled = enable
412 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift:411:24: error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
150 | // MARK: - Internals
151 |
152 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
153 |     /// What an enable attempt may change, so a failure can put it back exactly.
154 |     private struct CinematicRollback {
    :
396 |     }
397 |
398 |     func applyCinematicMetadataCapturePolicy() {
    |          `- note: add '@available' attribute to enclosing instance method
399 |         guard #available(iOS 27.0, *), let output = movieFileOutput else { return }
400 |         switch cinematicMetadataCapture {
    :
409 |             let enable = cinematicMetadataCapture == .enabled && output.isCinematicVideoMetadataCaptureSupported
410 |             if output.isCinematicVideoMetadataCaptureEnabled != enable {
411 |                 output.isCinematicVideoMetadataCaptureEnabled = enable
    |                        |- error: 'isCinematicVideoMetadataCaptureEnabled' is only available in tvOS 27.0 or newer
    |                        `- note: add 'if #available' version check
412 |             }
413 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift:41:50: error: 'cameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
14 | // the closures carry no actor isolation: KVO fires them on arbitrary queues.
15 |
16 | extension PRMCameraSession {
   | `- note: add '@available' attribute to enclosing extension
17 |     /// Re-binds device KVO to the current `videoDevice`. Called from `videoDevice`'s
18 |     /// `didSet` whenever the device identity changes.
19 |     func installDeviceObservers() {
   |          `- note: add '@available' attribute to enclosing instance method
20 |         for observation in deviceObservations {
21 |             observation.invalidate()
   :
39 |         ]
40 |         if #available(iOS 26.0, *) {
41 |             observations.append(device.observe(\.cameraLensSmudgeDetectionStatus) { @Sendable _, _ in events.yield(()) })
   |                                                  |- error: 'cameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
   |                                                  `- note: add 'if #available' version check
42 |             observations.append(device.observe(\.cinematicVideoCaptureSceneMonitoringStatuses) { @Sendable _, _ in events.yield(()) })
43 |             observations.append(device.observe(\.dynamicAspectRatio) { @Sendable _, _ in events.yield(()) })
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift:59:50: error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
14 | // the closures carry no actor isolation: KVO fires them on arbitrary queues.
15 |
16 | extension PRMCameraSession {
   | `- note: add '@available' attribute to enclosing extension
17 |     /// Re-binds device KVO to the current `videoDevice`. Called from `videoDevice`'s
18 |     /// `didSet` whenever the device identity changes.
19 |     func installDeviceObservers() {
   |          `- note: add '@available' attribute to enclosing instance method
20 |         for observation in deviceObservations {
21 |             observation.invalidate()
   :
57 |         }
58 |         if #available(iOS 27.0, *) {
59 |             observations.append(device.observe(\.activeExposureSignals) { @Sendable _, _ in events.yield(()) })
   |                                                  |- error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
   |                                                  `- note: add 'if #available' version check
60 |             observations.append(device.observe(\.isContinuousAutoFocusTrackingSubjectAcquired) { @Sendable _, _ in events.yield(()) })
61 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift:60:50: error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
14 | // the closures carry no actor isolation: KVO fires them on arbitrary queues.
15 |
16 | extension PRMCameraSession {
   | `- note: add '@available' attribute to enclosing extension
17 |     /// Re-binds device KVO to the current `videoDevice`. Called from `videoDevice`'s
18 |     /// `didSet` whenever the device identity changes.
19 |     func installDeviceObservers() {
   |          `- note: add '@available' attribute to enclosing instance method
20 |         for observation in deviceObservations {
21 |             observation.invalidate()
   :
58 |         if #available(iOS 27.0, *) {
59 |             observations.append(device.observe(\.activeExposureSignals) { @Sendable _, _ in events.yield(()) })
60 |             observations.append(device.observe(\.isContinuousAutoFocusTrackingSubjectAcquired) { @Sendable _, _ in events.yield(()) })
   |                                                  |- error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
   |                                                  `- note: add 'if #available' version check
61 |         }
62 |         deviceObservations = observations
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:56:23: error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 48 |
 49 |     /// Applies ``PRMCameraConfiguration/deferredStart`` to a freshly added output.
 50 |     func applyDeferredStart(to output: AVCaptureOutput, isPreview: Bool) {
    |          `- note: add '@available' attribute to enclosing instance method
 51 |         guard #available(iOS 26.0, *), let mode = configuration?.deferredStart else { return }
 52 |         switch mode {
    :
 54 |             return
 55 |         case .disabled:
 56 |             if output.isDeferredStartEnabled {
    |                       |- error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
    |                       `- note: add 'if #available' version check
 57 |                 output.isDeferredStartEnabled = false
 58 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:57:24: error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 48 |
 49 |     /// Applies ``PRMCameraConfiguration/deferredStart`` to a freshly added output.
 50 |     func applyDeferredStart(to output: AVCaptureOutput, isPreview: Bool) {
    |          `- note: add '@available' attribute to enclosing instance method
 51 |         guard #available(iOS 26.0, *), let mode = configuration?.deferredStart else { return }
 52 |         switch mode {
    :
 55 |         case .disabled:
 56 |             if output.isDeferredStartEnabled {
 57 |                 output.isDeferredStartEnabled = false
    |                        |- error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
    |                        `- note: add 'if #available' version check
 58 |             }
 59 |         case .photoAndMovie:
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:61:39: error: 'isDeferredStartSupported' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 48 |
 49 |     /// Applies ``PRMCameraConfiguration/deferredStart`` to a freshly added output.
 50 |     func applyDeferredStart(to output: AVCaptureOutput, isPreview: Bool) {
    |          `- note: add '@available' attribute to enclosing instance method
 51 |         guard #available(iOS 26.0, *), let mode = configuration?.deferredStart else { return }
 52 |         switch mode {
    :
 59 |         case .photoAndMovie:
 60 |             let wantsDeferral = !isPreview && (output is AVCapturePhotoOutput || output is AVCaptureFileOutput)
 61 |             if wantsDeferral, !output.isDeferredStartSupported { return }
    |                                       |- error: 'isDeferredStartSupported' is only available in tvOS 26.0 or newer
    |                                       `- note: add 'if #available' version check
 62 |             if output.isDeferredStartEnabled != wantsDeferral {
 63 |                 output.isDeferredStartEnabled = wantsDeferral
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:62:23: error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 48 |
 49 |     /// Applies ``PRMCameraConfiguration/deferredStart`` to a freshly added output.
 50 |     func applyDeferredStart(to output: AVCaptureOutput, isPreview: Bool) {
    |          `- note: add '@available' attribute to enclosing instance method
 51 |         guard #available(iOS 26.0, *), let mode = configuration?.deferredStart else { return }
 52 |         switch mode {
    :
 60 |             let wantsDeferral = !isPreview && (output is AVCapturePhotoOutput || output is AVCaptureFileOutput)
 61 |             if wantsDeferral, !output.isDeferredStartSupported { return }
 62 |             if output.isDeferredStartEnabled != wantsDeferral {
    |                       |- error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
    |                       `- note: add 'if #available' version check
 63 |                 output.isDeferredStartEnabled = wantsDeferral
 64 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:63:24: error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 48 |
 49 |     /// Applies ``PRMCameraConfiguration/deferredStart`` to a freshly added output.
 50 |     func applyDeferredStart(to output: AVCaptureOutput, isPreview: Bool) {
    |          `- note: add '@available' attribute to enclosing instance method
 51 |         guard #available(iOS 26.0, *), let mode = configuration?.deferredStart else { return }
 52 |         switch mode {
    :
 61 |             if wantsDeferral, !output.isDeferredStartSupported { return }
 62 |             if output.isDeferredStartEnabled != wantsDeferral {
 63 |                 output.isDeferredStartEnabled = wantsDeferral
    |                        |- error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
    |                        `- note: add 'if #available' version check
 64 |             }
 65 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:82:35: error: 'isCameraLensSmudgeDetectionSupported' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 78 |     }
 79 |
 80 |     func applyLensSmudgeDetection() {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 26.0, *), let device = videoDevice,
 82 |               device.activeFormat.isCameraLensSmudgeDetectionSupported
    |                                   |- error: 'isCameraLensSmudgeDetectionSupported' is only available in tvOS 26.0 or newer
    |                                   `- note: add 'if #available' version check
 83 |         else { return }
 84 |         let wanted = lensSmudgeDetectionInterval
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:85:30: error: 'isCameraLensSmudgeDetectionEnabled' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 78 |     }
 79 |
 80 |     func applyLensSmudgeDetection() {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 26.0, *), let device = videoDevice,
 82 |               device.activeFormat.isCameraLensSmudgeDetectionSupported
 83 |         else { return }
 84 |         let wanted = lensSmudgeDetectionInterval
 85 |         let enabled = device.isCameraLensSmudgeDetectionEnabled
    |                              |- error: 'isCameraLensSmudgeDetectionEnabled' is only available in tvOS 26.0 or newer
    |                              `- note: add 'if #available' version check
 86 |         if let wanted {
 87 |             guard !enabled || !Self.sameDetectionInterval(device.cameraLensSmudgeDetectionInterval, wanted) else { return }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:87:66: error: 'cameraLensSmudgeDetectionInterval' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 78 |     }
 79 |
 80 |     func applyLensSmudgeDetection() {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 26.0, *), let device = videoDevice,
 82 |               device.activeFormat.isCameraLensSmudgeDetectionSupported
    :
 85 |         let enabled = device.isCameraLensSmudgeDetectionEnabled
 86 |         if let wanted {
 87 |             guard !enabled || !Self.sameDetectionInterval(device.cameraLensSmudgeDetectionInterval, wanted) else { return }
    |                                                                  |- error: 'cameraLensSmudgeDetectionInterval' is only available in tvOS 26.0 or newer
    |                                                                  `- note: add 'if #available' version check
 88 |         } else {
 89 |             guard enabled else { return }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:93:24: error: 'setCameraLensSmudgeDetectionEnabled(_:detectionInterval:)' is only available in tvOS 26.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
 78 |     }
 79 |
 80 |     func applyLensSmudgeDetection() {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |         guard #available(iOS 26.0, *), let device = videoDevice,
 82 |               device.activeFormat.isCameraLensSmudgeDetectionSupported
    :
 91 |         do {
 92 |             try device.prm_withConfigurationLock {
 93 |                 device.setCameraLensSmudgeDetectionEnabled(wanted != nil, detectionInterval: wanted ?? .invalid)
    |                        |- error: 'setCameraLensSmudgeDetectionEnabled(_:detectionInterval:)' is only available in tvOS 26.0 or newer
    |                        `- note: add 'if #available' version check
 94 |             }
 95 |         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:120:64: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
116 |
117 |     /// Whether noise reduction is active on the movie or video-data connection.
118 |     public var isLowLightVideoNoiseReductionActive: Bool {
    |                `- note: add '@available' attribute to enclosing property
119 |         guard #available(iOS 27.0, *) else { return false }
120 |         let movie = movieFileOutput?.connection(with: .video)?.isLowLightVideoNoiseReductionEnabled ?? false
    |                                                                |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                                                `- note: add 'if #available' version check
121 |         let data = videoDataOutput?.connection(with: .video)?.isLowLightVideoNoiseReductionEnabled ?? false
122 |         return movie || data
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:121:63: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
116 |
117 |     /// Whether noise reduction is active on the movie or video-data connection.
118 |     public var isLowLightVideoNoiseReductionActive: Bool {
    |                `- note: add '@available' attribute to enclosing property
119 |         guard #available(iOS 27.0, *) else { return false }
120 |         let movie = movieFileOutput?.connection(with: .video)?.isLowLightVideoNoiseReductionEnabled ?? false
121 |         let data = videoDataOutput?.connection(with: .video)?.isLowLightVideoNoiseReductionEnabled ?? false
    |                                                               |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                                               `- note: add 'if #available' version check
122 |         return movie || data
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:133:54: error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
131 |             // The SDK default: automatic on movie connections. The preview connection goes
132 |             // back to off if an earlier `.on` forced it.
133 |             if let movieConnection, !movieConnection.automaticallyEnablesLowLightVideoNoiseReduction {
    |                                                      |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                                      `- note: add 'if #available' version check
134 |                 movieConnection.automaticallyEnablesLowLightVideoNoiseReduction = true
135 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:134:33: error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
132 |             // back to off if an earlier `.on` forced it.
133 |             if let movieConnection, !movieConnection.automaticallyEnablesLowLightVideoNoiseReduction {
134 |                 movieConnection.automaticallyEnablesLowLightVideoNoiseReduction = true
    |                                 |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                 `- note: add 'if #available' version check
135 |             }
136 |             if let dataConnection, !dataConnection.automaticallyEnablesLowLightVideoNoiseReduction,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:136:52: error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
134 |                 movieConnection.automaticallyEnablesLowLightVideoNoiseReduction = true
135 |             }
136 |             if let dataConnection, !dataConnection.automaticallyEnablesLowLightVideoNoiseReduction,
    |                                                    |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                                    `- note: add 'if #available' version check
137 |                dataConnection.isLowLightVideoNoiseReductionEnabled {
138 |                 dataConnection.isLowLightVideoNoiseReductionEnabled = false
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:137:31: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
135 |             }
136 |             if let dataConnection, !dataConnection.automaticallyEnablesLowLightVideoNoiseReduction,
137 |                dataConnection.isLowLightVideoNoiseReductionEnabled {
    |                               |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                               `- note: add 'if #available' version check
138 |                 dataConnection.isLowLightVideoNoiseReductionEnabled = false
139 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:138:32: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
136 |             if let dataConnection, !dataConnection.automaticallyEnablesLowLightVideoNoiseReduction,
137 |                dataConnection.isLowLightVideoNoiseReductionEnabled {
138 |                 dataConnection.isLowLightVideoNoiseReductionEnabled = false
    |                                |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                `- note: add 'if #available' version check
139 |             }
140 |         case .on, .off:
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:144:60: error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
142 |             // flag may lag the format's; require both before enabling (enabling an
143 |             // unsupported connection raises).
144 |             let formatSupports = videoDevice?.activeFormat.isLowLightVideoNoiseReductionSupported ?? false
    |                                                            |- error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
    |                                                            `- note: add 'if #available' version check
145 |             for connection in [movieConnection, dataConnection].compactMap(\.self) {
146 |                 if connection.automaticallyEnablesLowLightVideoNoiseReduction {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:146:31: error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
144 |             let formatSupports = videoDevice?.activeFormat.isLowLightVideoNoiseReductionSupported ?? false
145 |             for connection in [movieConnection, dataConnection].compactMap(\.self) {
146 |                 if connection.automaticallyEnablesLowLightVideoNoiseReduction {
    |                               |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                               `- note: add 'if #available' version check
147 |                     connection.automaticallyEnablesLowLightVideoNoiseReduction = false
148 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:147:32: error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
145 |             for connection in [movieConnection, dataConnection].compactMap(\.self) {
146 |                 if connection.automaticallyEnablesLowLightVideoNoiseReduction {
147 |                     connection.automaticallyEnablesLowLightVideoNoiseReduction = false
    |                                |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                `- note: add 'if #available' version check
148 |                 }
149 |                 let enable = lowLightVideoNoiseReduction == .on && formatSupports
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:150:35: error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
148 |                 }
149 |                 let enable = lowLightVideoNoiseReduction == .on && formatSupports
150 |                     && connection.isLowLightVideoNoiseReductionSupported
    |                                   |- error: 'isLowLightVideoNoiseReductionSupported' is only available in tvOS 27.0 or newer
    |                                   `- note: add 'if #available' version check
151 |                 if connection.isLowLightVideoNoiseReductionEnabled != enable {
152 |                     connection.isLowLightVideoNoiseReductionEnabled = enable
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:151:31: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
149 |                 let enable = lowLightVideoNoiseReduction == .on && formatSupports
150 |                     && connection.isLowLightVideoNoiseReductionSupported
151 |                 if connection.isLowLightVideoNoiseReductionEnabled != enable {
    |                               |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                               `- note: add 'if #available' version check
152 |                     connection.isLowLightVideoNoiseReductionEnabled = enable
153 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift:152:32: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
 10 | // separately (`PRMCameraSession+Cinematic.swift`) because it switches formats itself.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Intents
 14 |
    :
123 |     }
124 |
125 |     func applyLowLightVideoNoiseReduction() {
    |          `- note: add '@available' attribute to enclosing instance method
126 |         guard #available(iOS 27.0, *) else { return }
127 |         let movieConnection = movieFileOutput?.connection(with: .video)
    :
150 |                     && connection.isLowLightVideoNoiseReductionSupported
151 |                 if connection.isLowLightVideoNoiseReductionEnabled != enable {
152 |                     connection.isLowLightVideoNoiseReductionEnabled = enable
    |                                |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                `- note: add 'if #available' version check
153 |                 }
154 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Format.swift:91:35: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
 89 |             let matte = output.isPortraitEffectsMatteDeliveryEnabled
 90 |             let zsl = output.isZeroShutterLagEnabled
 91 |             let deferred = output.isAutoDeferredPhotoDeliveryEnabled
    |                                   `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
 92 |             PRMLog.debug(
 93 |                 .session,
/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/PRMCameraSession+Format.swift:112:27: error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
110 |                     output.isPortraitEffectsMatteDeliveryEnabled = false
111 |                 }
112 |                 if output.isAutoDeferredPhotoDeliverySupported, output.isAutoDeferredPhotoDeliveryEnabled {
    |                           `- error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
113 |                     output.isAutoDeferredPhotoDeliveryEnabled = false
114 |                 }
/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+Format.swift:112:72: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
110 |                     output.isPortraitEffectsMatteDeliveryEnabled = false
111 |                 }
112 |                 if output.isAutoDeferredPhotoDeliverySupported, output.isAutoDeferredPhotoDeliveryEnabled {
    |                                                                        `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
113 |                     output.isAutoDeferredPhotoDeliveryEnabled = false
114 |                 }
/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/PRMCameraSession+Format.swift:113:28: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
111 |                 }
112 |                 if output.isAutoDeferredPhotoDeliverySupported, output.isAutoDeferredPhotoDeliveryEnabled {
113 |                     output.isAutoDeferredPhotoDeliveryEnabled = false
    |                            `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
114 |                 }
115 |                 if output.isZeroShutterLagSupported, output.isZeroShutterLagEnabled {
/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/PRMCameraSession+Format.swift:132:27: error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
130 |                     }
131 |                 }
132 |                 if output.isAutoDeferredPhotoDeliverySupported {
    |                           `- error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
133 |                     let want = configuration.enableAutoDeferredPhotoDelivery
134 |                     if output.isAutoDeferredPhotoDeliveryEnabled != want {
/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+Format.swift:134:31: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
132 |                 if output.isAutoDeferredPhotoDeliverySupported {
133 |                     let want = configuration.enableAutoDeferredPhotoDelivery
134 |                     if output.isAutoDeferredPhotoDeliveryEnabled != want {
    |                               `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
135 |                         output.isAutoDeferredPhotoDeliveryEnabled = want
136 |                     }
/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/PRMCameraSession+Format.swift:135:32: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
133 |                     let want = configuration.enableAutoDeferredPhotoDelivery
134 |                     if output.isAutoDeferredPhotoDeliveryEnabled != want {
135 |                         output.isAutoDeferredPhotoDeliveryEnabled = want
    |                                `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
136 |                     }
137 |                 }
/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/PRMCameraSession+Metadata.swift:56:91: error: 'isDeferredStartSupported' is only available in tvOS 26.0 or newer
 10 | // pipeline rebuild for no benefit.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Consumer types
 14 |
    :
 28 |     /// Call inside an open begin/commit; the available types change with the input and
 29 |     /// active format, and the type setter raises on anything not currently available.
 30 |     func reconcileMetadataOutput() {
    |          `- note: add '@available' attribute to enclosing instance method
 31 |         let cinematicActive = isCinematicVideoCaptureActive
 32 |         let needsOutput = configuration?.includesMetadataOutput == true
    :
 54 |             // output also holds deferred start back until it delivers something, which a
 55 |             // metadata output may never do in an empty scene.
 56 |             if #available(iOS 26.0, *), configuration?.deferredStart != .disabled, output.isDeferredStartSupported {
    |                                                                                           |- error: 'isDeferredStartSupported' is only available in tvOS 26.0 or newer
    |                                                                                           `- note: add 'if #available' version check
 57 |                 output.isDeferredStartEnabled = true
 58 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift:57:24: error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
 10 | // pipeline rebuild for no benefit.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Consumer types
 14 |
    :
 28 |     /// Call inside an open begin/commit; the available types change with the input and
 29 |     /// active format, and the type setter raises on anything not currently available.
 30 |     func reconcileMetadataOutput() {
    |          `- note: add '@available' attribute to enclosing instance method
 31 |         let cinematicActive = isCinematicVideoCaptureActive
 32 |         let needsOutput = configuration?.includesMetadataOutput == true
    :
 55 |             // metadata output may never do in an empty scene.
 56 |             if #available(iOS 26.0, *), configuration?.deferredStart != .disabled, output.isDeferredStartSupported {
 57 |                 output.isDeferredStartEnabled = true
    |                        |- error: 'isDeferredStartEnabled' is only available in tvOS 26.0 or newer
    |                        `- note: add 'if #available' version check
 58 |             }
 59 |             metadataOutput = output
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift:65:40: error: 'requiredMetadataObjectTypesForCinematicVideoCapture' is only available in tvOS 26.0 or newer
 10 | // pipeline rebuild for no benefit.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Consumer types
 14 |
    :
 28 |     /// Call inside an open begin/commit; the available types change with the input and
 29 |     /// active format, and the type setter raises on anything not currently available.
 30 |     func reconcileMetadataOutput() {
    |          `- note: add '@available' attribute to enclosing instance method
 31 |         let cinematicActive = isCinematicVideoCaptureActive
 32 |         let needsOutput = configuration?.includesMetadataOutput == true
    :
 63 |         var cinematicRequired: [AVMetadataObject.ObjectType] = []
 64 |         if #available(iOS 26.0, *) {
 65 |             cinematicRequired = output.requiredMetadataObjectTypesForCinematicVideoCapture
    |                                        |- error: 'requiredMetadataObjectTypesForCinematicVideoCapture' is only available in tvOS 26.0 or newer
    |                                        `- note: add 'if #available' version check
 66 |         }
 67 |         var trackingType: AVMetadataObject.ObjectType?
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift:69:29: error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
 10 | // pipeline rebuild for no benefit.
 11 |
 12 | extension PRMCameraSession {
    | `- note: add '@available' attribute to enclosing extension
 13 |     // MARK: Consumer types
 14 |
    :
 28 |     /// Call inside an open begin/commit; the available types change with the input and
 29 |     /// active format, and the type setter raises on anything not currently available.
 30 |     func reconcileMetadataOutput() {
    |          `- note: add '@available' attribute to enclosing instance method
 31 |         let cinematicActive = isCinematicVideoCaptureActive
 32 |         let needsOutput = configuration?.includesMetadataOutput == true
    :
 67 |         var trackingType: AVMetadataObject.ObjectType?
 68 |         if #available(iOS 27.0, *), wantsContinuousAutoFocusTracking {
 69 |             trackingType = .focusTrackedObject
    |                             |- error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
    |                             `- note: add 'if #available' version check
 70 |         }
 71 |         let types = Self.effectiveMetadataObjectTypes(
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift:181:52: error: 'automaticallyEnablesLowLightVideoNoiseReduction' 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 {
    :
179 |                 changes = true
180 |             }
181 |             if #available(iOS 27.0, *), connection.automaticallyEnablesLowLightVideoNoiseReduction || connection.isLowLightVideoNoiseReductionEnabled {
    |                                                    |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                                    `- note: add 'if #available' version check
182 |                 changes = true
183 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift:181:114: 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 {
    :
179 |                 changes = true
180 |             }
181 |             if #available(iOS 27.0, *), connection.automaticallyEnablesLowLightVideoNoiseReduction || connection.isLowLightVideoNoiseReductionEnabled {
    |                                                                                                                  |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
    |                                                                                                                  `- note: add 'if #available' version check
182 |                 changes = true
183 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift:188:32: error: 'automaticallyEnablesLowLightVideoNoiseReduction' 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 {
    :
186 |                 connection.prm_setStabilization(.off)
187 |                 if #available(iOS 27.0, *) {
188 |                     connection.automaticallyEnablesLowLightVideoNoiseReduction = false
    |                                |- error: 'automaticallyEnablesLowLightVideoNoiseReduction' is only available in tvOS 27.0 or newer
    |                                `- note: add 'if #available' version check
189 |                     if connection.isLowLightVideoNoiseReductionEnabled {
190 |                         connection.isLowLightVideoNoiseReductionEnabled = 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 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift (in target 'PrismCore' from project 'Prism')
    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
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
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+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\ 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
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-10-12 14:40:52.051 xcodebuild[773:4676] [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