The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build Euclid, reference main (067e21), with Swift 6.1 for macOS (SPM) on 1 May 2025 09:47:56 UTC.

Build Command

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

Build Log

477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:514:52: warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
512 |                 return MaterialWrapper(material)
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
    |                                                    `- warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
516 |                 #if compiler(>=6)
RealityFoundation.VideoMaterial.avPlayer:2:39: note: property declared here
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public var avPlayer: AVPlayer? { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:515:32: warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
    |                                `- warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
RealityFoundation.VideoMaterial.init:2:35: note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public init(avPlayer: AVPlayer)}
  |                                   `- note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: mutation of this property is only permitted within the actor
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: property declared here
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: property declared here
3 |
[36/37] Compiling Euclid Euclid+CoreText.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:78:50: warning: call to main actor-isolated static method 'generate(from:withName:options:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 61 |
 62 | @available(macOS 12.0, iOS 15.0, *)
 63 | private func defaultMaterialLookup(_ material: Polygon.Material?) -> RealityKit.Material? {
    |              `- note: add '@MainActor' to make global function 'defaultMaterialLookup' part of global actor 'MainActor'
 64 |     switch material {
 65 |     case let wrapper as MaterialWrapper:
    :
 76 |         return defaultMaterialLookup(image.cgImage)
 77 |     case let image as CGImage where CFGetTypeID(image) == CGImage.typeID:
 78 |         guard let texture = try? TextureResource.generate(
    |                                                  `- warning: call to main actor-isolated static method 'generate(from:withName:options:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 79 |             from: image,
 80 |             options: .init(semantic: .color)
RealityFoundation.TextureResource.generate:6:49: note: calls to static method 'generate(from:withName:options:)' from outside of its actor context are implicitly asynchronous
4 |   @available(macCatalyst, introduced: 15.0, deprecated: 18.0, renamed: "init(image:withName:options:)")
5 |   @available(visionOS, introduced: 1.0, deprecated: 2.0, renamed: "init(image:withName:options:)")
6 |   @MainActor @preconcurrency public static func generate(from cgImage: CGImage, withName resourceName: String? = nil, options: TextureResource.CreateOptions) throws -> TextureResource}
  |                                                 `- note: calls to static method 'generate(from:withName:options:)' from outside of its actor context are implicitly asynchronous
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:425:43: warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
423 |     init(_ meshResource: MeshResource, materials: [Polygon.Material?] = []) {
424 |         var models = [String: Mesh]()
425 |         self.init(submeshes: meshResource.contents.instances.compactMap {
    |                                           `- warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
426 |             var mesh = models[$0.model]
427 |             if mesh == nil, let model = meshResource.contents.models[$0.model] {
RealityFoundation.MeshResource.contents:2:39: note: property declared here
1 | class MeshResource {
2 | @MainActor @preconcurrency public var contents: MeshResource.Contents { get }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:427:54: warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
425 |         self.init(submeshes: meshResource.contents.instances.compactMap {
426 |             var mesh = models[$0.model]
427 |             if mesh == nil, let model = meshResource.contents.models[$0.model] {
    |                                                      `- warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
428 |                 let modelMesh = Mesh(model, materials: materials)
429 |                 models[$0.model] = modelMesh
RealityFoundation.MeshResource.contents:2:39: note: property declared here
1 | class MeshResource {
2 | @MainActor @preconcurrency public var contents: MeshResource.Contents { get }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:463:39: warning: main actor-isolated property 'model' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
461 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
462 |     init(_ modelEntity: ModelEntity, materialLookup: RealityKitMaterialProvider? = nil) {
463 |         guard let model = modelEntity.model else {
    |                                       `- warning: main actor-isolated property 'model' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |             self = .empty
465 |             return
RealityFoundation.HasModel.model:2:39: note: property declared here
1 | protocol HasModel {
2 | @MainActor @preconcurrency public var model: ModelComponent? { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:468:41: warning: main actor-isolated property 'transform' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
466 |         }
467 |         self.init(model, materialLookup: materialLookup)
468 |         transform(by: .init(modelEntity.transform))
    |                                         `- warning: main actor-isolated property 'transform' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
469 |     }
470 |
RealityFoundation.HasTransform.transform:2:39: note: property declared here
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:514:52: warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
512 |                 return MaterialWrapper(material)
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
    |                                                    `- warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
516 |                 #if compiler(>=6)
RealityFoundation.VideoMaterial.avPlayer:2:39: note: property declared here
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public var avPlayer: AVPlayer? { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:515:32: warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
    |                                `- warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
RealityFoundation.VideoMaterial.init:2:35: note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public init(avPlayer: AVPlayer)}
  |                                   `- note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: mutation of this property is only permitted within the actor
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: property declared here
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: property declared here
3 |
[37/37] Compiling Euclid Euclid+RealityKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:78:50: warning: call to main actor-isolated static method 'generate(from:withName:options:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 61 |
 62 | @available(macOS 12.0, iOS 15.0, *)
 63 | private func defaultMaterialLookup(_ material: Polygon.Material?) -> RealityKit.Material? {
    |              `- note: add '@MainActor' to make global function 'defaultMaterialLookup' part of global actor 'MainActor'
 64 |     switch material {
 65 |     case let wrapper as MaterialWrapper:
    :
 76 |         return defaultMaterialLookup(image.cgImage)
 77 |     case let image as CGImage where CFGetTypeID(image) == CGImage.typeID:
 78 |         guard let texture = try? TextureResource.generate(
    |                                                  `- warning: call to main actor-isolated static method 'generate(from:withName:options:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 79 |             from: image,
 80 |             options: .init(semantic: .color)
RealityFoundation.TextureResource.generate:6:49: note: calls to static method 'generate(from:withName:options:)' from outside of its actor context are implicitly asynchronous
4 |   @available(macCatalyst, introduced: 15.0, deprecated: 18.0, renamed: "init(image:withName:options:)")
5 |   @available(visionOS, introduced: 1.0, deprecated: 2.0, renamed: "init(image:withName:options:)")
6 |   @MainActor @preconcurrency public static func generate(from cgImage: CGImage, withName resourceName: String? = nil, options: TextureResource.CreateOptions) throws -> TextureResource}
  |                                                 `- note: calls to static method 'generate(from:withName:options:)' from outside of its actor context are implicitly asynchronous
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:425:43: warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
423 |     init(_ meshResource: MeshResource, materials: [Polygon.Material?] = []) {
424 |         var models = [String: Mesh]()
425 |         self.init(submeshes: meshResource.contents.instances.compactMap {
    |                                           `- warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
426 |             var mesh = models[$0.model]
427 |             if mesh == nil, let model = meshResource.contents.models[$0.model] {
RealityFoundation.MeshResource.contents:2:39: note: property declared here
1 | class MeshResource {
2 | @MainActor @preconcurrency public var contents: MeshResource.Contents { get }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:427:54: warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
425 |         self.init(submeshes: meshResource.contents.instances.compactMap {
426 |             var mesh = models[$0.model]
427 |             if mesh == nil, let model = meshResource.contents.models[$0.model] {
    |                                                      `- warning: main actor-isolated property 'contents' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
428 |                 let modelMesh = Mesh(model, materials: materials)
429 |                 models[$0.model] = modelMesh
RealityFoundation.MeshResource.contents:2:39: note: property declared here
1 | class MeshResource {
2 | @MainActor @preconcurrency public var contents: MeshResource.Contents { get }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:463:39: warning: main actor-isolated property 'model' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
461 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
462 |     init(_ modelEntity: ModelEntity, materialLookup: RealityKitMaterialProvider? = nil) {
463 |         guard let model = modelEntity.model else {
    |                                       `- warning: main actor-isolated property 'model' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
464 |             self = .empty
465 |             return
RealityFoundation.HasModel.model:2:39: note: property declared here
1 | protocol HasModel {
2 | @MainActor @preconcurrency public var model: ModelComponent? { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:468:41: warning: main actor-isolated property 'transform' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
466 |         }
467 |         self.init(model, materialLookup: materialLookup)
468 |         transform(by: .init(modelEntity.transform))
    |                                         `- warning: main actor-isolated property 'transform' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
469 |     }
470 |
RealityFoundation.HasTransform.transform:2:39: note: property declared here
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:514:52: warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
512 |                 return MaterialWrapper(material)
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
    |                                                    `- warning: main actor-isolated property 'avPlayer' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
516 |                 #if compiler(>=6)
RealityFoundation.VideoMaterial.avPlayer:2:39: note: property declared here
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public var avPlayer: AVPlayer? { get set }}
  |                                       `- note: property declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:515:32: warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
513 |             case let videoMaterial as VideoMaterial:
514 |                 guard let avPlayer = videoMaterial.avPlayer else { return nil }
515 |                 var material = VideoMaterial(avPlayer: avPlayer)
    |                                `- warning: call to main actor-isolated initializer 'init(avPlayer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
RealityFoundation.VideoMaterial.init:2:35: note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
1 | struct VideoMaterial {
2 | @MainActor @preconcurrency public init(avPlayer: AVPlayer)}
  |                                   `- note: calls to initializer 'init(avPlayer:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: mutation of this property is only permitted within the actor
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         `- warning: main actor-isolated property 'preferredViewingMode' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
RealityFoundation.VideoPlaybackController.preferredViewingMode:2:39: note: property declared here
1 | class VideoPlaybackController {
2 | @MainActor @preconcurrency public var preferredViewingMode: VideoPlaybackController.ViewingMode { get set }}
  |                                       `- note: property declared here
3 |
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/33] Emitting module Euclid
[3/36] Compiling Euclid Euclid+AppKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
[4/36] Compiling Euclid Euclid+CoreGraphics.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
[5/36] Compiling Euclid Euclid+CoreText.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
[6/36] Compiling Euclid Euclid+RealityKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:485:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
483 |                 #if compiler(>=6)
484 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:487:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
485 |                     material.triangleFillMode = simpleMaterial.triangleFillMode
486 |                     if #available(visionOS 2.0, *) {
487 |                         material.faceCulling = simpleMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
488 |                     }
489 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:499:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
497 |                 #if compiler(>=6)
498 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:501:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
499 |                     material.triangleFillMode = unlitMaterial.triangleFillMode
500 |                     if #available(visionOS 2.0, *) {
501 |                         material.faceCulling = unlitMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
502 |                     }
503 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:41: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:518:89: error: 'preferredViewingMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
516 |                 #if compiler(>=6)
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
    |                                                                                         |- error: 'preferredViewingMode' is only available in macOS 15.0 or newer
    |                                                                                         `- note: add 'if #available' version check
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:519:63: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
517 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
518 |                     material.controller.preferredViewingMode = videoMaterial.controller.preferredViewingMode
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
    |                                                               |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:521:62: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
519 |                     material.triangleFillMode = videoMaterial.triangleFillMode
520 |                     if #available(visionOS 2.0, *) {
521 |                         material.faceCulling = videoMaterial.faceCulling
    |                                                              |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                              `- note: add 'if #available' version check
522 |                     }
523 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:548:61: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
546 |                 #if compiler(>=6)
547 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *) {
548 |                     material.triangleFillMode = pbrMaterial.triangleFillMode
    |                                                             |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                             `- note: add 'if #available' version check
549 |                     if #available(visionOS 2.0, *) {
550 |                         material.faceCulling = pbrMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:558:48: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
556 |                 #if compiler(>=6)
557 |                 if #available(visionOS 1.0, macOS 15.0, iOS 18.0, *),
558 |                    let portalMaterial = $0 as? PortalMaterial
    |                                                |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                                `- note: add 'if #available' version check
559 |                 {
560 |                     var material = PortalMaterial()
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:560:36: error: 'PortalMaterial' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
558 |                    let portalMaterial = $0 as? PortalMaterial
559 |                 {
560 |                     var material = PortalMaterial()
    |                                    |- error: 'PortalMaterial' is only available in macOS 15.0 or newer
    |                                    `- note: add 'if #available' version check
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:30: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                              |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                              `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:561:64: error: 'triangleFillMode' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
559 |                 {
560 |                     var material = PortalMaterial()
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
    |                                                                |- error: 'triangleFillMode' is only available in macOS 15.0 or newer
    |                                                                `- note: add 'if #available' version check
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:34: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                  |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                  `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
/Users/admin/builder/spi-builder-workspace/Sources/Euclid+RealityKit.swift:563:63: error: 'faceCulling' is only available in macOS 15.0 or newer
473 |     ///   - component: The `ModelComponent` to convert into a mesh.
474 |     ///   - materialLookup: An optional closure to map the RealityKit materials to Euclid materials.
475 |     init(_ component: ModelComponent, materialLookup: RealityKitMaterialProvider? = nil) {
    |     `- note: add @available attribute to enclosing initializer
476 |         let materialLookup = materialLookup ?? {
477 |             switch $0 {
    :
561 |                     material.triangleFillMode = portalMaterial.triangleFillMode
562 |                     if #available(visionOS 2.0, *) {
563 |                         material.faceCulling = portalMaterial.faceCulling
    |                                                               |- error: 'faceCulling' is only available in macOS 15.0 or newer
    |                                                               `- note: add 'if #available' version check
564 |                     }
565 |                     return MaterialWrapper(material)
[7/36] Compiling Euclid Angle.swift
[8/36] Compiling Euclid BSP.swift
[9/36] Compiling Euclid Bounds.swift
[10/36] Compiling Euclid Color.swift
[11/36] Compiling Euclid Mesh+Texcoords.swift
[12/36] Compiling Euclid Mesh.swift
[13/36] Compiling Euclid Path+Shapes.swift
[14/36] Compiling Euclid LineSegment+CSG.swift
[15/36] Compiling Euclid LineSegment.swift
[16/36] Compiling Euclid Mesh+CSG.swift
[17/36] Compiling Euclid Mesh+IO.swift
[18/36] Compiling Euclid Utilities.swift
[19/36] Compiling Euclid Vector.swift
[20/36] Compiling Euclid Vertex.swift
[21/36] Compiling Euclid Path.swift
[22/36] Compiling Euclid PathPoint.swift
[23/36] Compiling Euclid Plane.swift
[24/36] Compiling Euclid Mesh+OBJ.swift
[25/36] Compiling Euclid Mesh+STL.swift
[26/36] Compiling Euclid Mesh+Shapes.swift
[27/36] Compiling Euclid Rotation.swift
[28/36] Compiling Euclid Stretchable.swift
[29/36] Compiling Euclid Transforms.swift
[30/36] Compiling Euclid Euclid+SIMD.swift
[31/36] Compiling Euclid Euclid+SceneKit.swift
[32/36] Compiling Euclid Euclid+UIKit.swift
[33/36] Compiling Euclid Line.swift
[34/36] Compiling Euclid Polygon+CSG.swift
[35/36] Compiling Euclid Polygon.swift
[36/36] Compiling Euclid Quaternion.swift
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Tests/Cube.stl
BUILD FAILURE 6.1 macosSpm