The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of Satin, reference main (a91c46), with Swift 6.2 (beta) for macOS (SPM) on 20 Jun 2025 11:06:21 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Hi-Rez/Satin.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Hi-Rez/Satin
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at a91c469 updated README.md credits typo
Cloned https://github.com/Hi-Rez/Satin.git
Revision (git rev-parse @):
a91c469f517cef1946d5ed4dd9771df4843a30ef
SUCCESS checkout https://github.com/Hi-Rez/Satin.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/Hi-Rez/Satin.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/16] Compiling SatinCore Conversions.mm
[1/16] Write swift-version-1EA4D86E10B52AF.txt
[2/16] Copying Pipelines
[3/16] Compiling SatinCore Hermite.mm
[4/16] Compiling SatinCore SignedDistanceFunctions.mm
[4/16] Compiling SatinCore Bvh.mm
[4/16] Compiling SatinCore Types.mm
[4/16] Write sources
[8/16] Compiling SatinCore Rectangle.mm
[8/16] Compiling SatinCore Bounds.mm
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:918:23: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  918 |     tsVertex vertices[length];
      |                       ^~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:918:23: note: function parameter 'length' with unknown value cannot be used in a constant expression
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:917:46: note: declared here
  917 | int triangulatePath(simd_float2 *points, int length, TriangleData *triData) {
      |                                              ^
1 warning generated.
[10/16] Compiling SatinCore Triangulator.mm
[11/16] Compiling SatinCore Transforms.mm
[12/16] Compiling SatinCore Bezier.mm
[13/16] Compiling SatinCore Geometry.mm
[14/16] Compiling SatinCore Generators.mm
[15/16] Compiling SatinCore PoissonDiskSampler.mm
[17/213] Compiling Satin Float4x4Parameter.swift
[18/213] Compiling Satin FloatParameter.swift
[19/213] Compiling Satin GenericParameter.swift
[20/213] Compiling Satin Int2Parameter.swift
[21/213] Compiling Satin Int3Parameter.swift
[22/213] Compiling Satin Int4Parameter.swift
[23/213] Compiling Satin IntParameter.swift
[24/213] Compiling Satin PackedFloat3Parameter.swift
[25/213] Compiling Satin Parameter.swift
[26/213] Compiling Satin ParameterGroup.swift
[27/213] Compiling Satin StringParameter.swift
[28/213] Compiling Satin UInt32Parameter.swift
[29/213] Compiling Satin IBLEnvironment.swift
[30/213] Compiling Satin Light.swift
[31/213] Compiling Satin Renderable.swift
[32/213] Compiling Satin Shadow.swift
[33/213] Compiling Satin Raycast.swift
[34/213] Compiling Satin RaycastOptions.swift
[35/213] Compiling Satin RaycastResult.swift
[36/213] Compiling Satin RenderEncoderState.swift
[37/213] Compiling Satin RenderList.swift
[38/234] Compiling Satin CircleGeometry.swift
[39/234] Compiling Satin ConeGeometry.swift
[40/234] Compiling Satin CylinderGeometry.swift
[41/234] Compiling Satin ExtrudedRoundedRectGeometry.swift
[42/234] Compiling Satin ExtrudedTextGeometry.swift
[43/234] Compiling Satin IcoSphereGeometry.swift
[44/234] Compiling Satin LineGeometry.swift
[45/234] Compiling Satin OctaSphereGeometry.swift
[46/234] Compiling Satin ParametricGeometry.swift
[47/234] Compiling Satin PlaneGeometry.swift
[48/234] Compiling Satin PointGeometry.swift
[49/234] Compiling Satin QuadGeometry.swift
[50/234] Compiling Satin RoundedBoxGeometry.swift
[51/234] Compiling Satin RoundedRectGeometry.swift
[52/234] Compiling Satin SatinGeometry.swift
[53/234] Compiling Satin SkyboxGeometry.swift
[54/234] Compiling Satin SphereGeometry.swift
[55/234] Compiling Satin SquircleGeometry.swift
[56/234] Compiling Satin TesselatedTextGeometry.swift
[57/234] Compiling Satin TessellationGeometry.swift
[58/234] Compiling Satin TextGeometry.swift
[59/234] Compiling Satin TorusGeometry.swift
[60/234] Emitting module Satin
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[61/234] Compiling Satin Satin.swift
[62/234] Compiling Satin PBRShader.swift
[63/234] Compiling Satin PhysicalShader.swift
[64/234] Compiling Satin SkyboxShader.swift
[65/234] Compiling Satin SourceShader.swift
[66/234] Compiling Satin StandardShader.swift
[67/234] Compiling Satin RenderingConfiguration.swift
[68/234] Compiling Satin ShaderBlending.swift
[69/234] Compiling Satin ShaderConfiguration.swift
[70/234] Compiling Satin ShaderDefine.swift
[71/234] Compiling Satin ShaderLibraryCache.swift
[72/234] Compiling Satin ShaderLibraryConfiguration.swift
[73/234] Compiling Satin ShaderLibrarySourceCache.swift
[74/234] Compiling Satin ShaderPipelineCache.swift
[75/234] Compiling Satin ShaderSourceCache.swift
[76/234] Compiling Satin ShaderSourceInjections.swift
[77/234] Compiling Satin ShaderSourceParsers.swift
[78/234] Compiling Satin DirectionalLightShadow.swift
[79/234] Compiling Satin FontAtlas.swift
[80/234] Compiling Satin TextMesh.swift
[81/234] Compiling Satin InstanceMatrixUniforms.swift
[82/234] Compiling Satin DepthMaterial.swift
[83/234] Compiling Satin MatCapMaterial.swift
[84/234] Compiling Satin NormalColorMaterial.swift
[85/234] Compiling Satin PhysicalMaterial.swift
[86/234] Compiling Satin ShadowMaterial.swift
[87/234] Compiling Satin SkyboxMaterial.swift
[88/234] Compiling Satin SourceMaterial.swift
[89/234] Compiling Satin StandardMaterial.swift
[90/234] Compiling Satin TextMaterial.swift
[91/234] Compiling Satin UVColorMaterial.swift
[92/234] Compiling Satin IBLScene.swift
[93/234] Compiling Satin InstancedMesh.swift
[94/234] Compiling Satin Submesh.swift
[95/234] Compiling Satin TessellationMesh.swift
[96/234] Compiling Satin AnyParameter.swift
[97/234] Compiling Satin BoolParameter.swift
[98/234] Compiling Satin DoubleParameter.swift
[99/234] Compiling Satin Float2Parameter.swift
[100/234] Compiling Satin Float2x2Parameter.swift
[101/234] Compiling Satin Float3Parameter.swift
[102/234] Compiling Satin Float3x3Parameter.swift
[103/234] Compiling Satin Float4Parameter.swift
[104/234] Compiling Satin OrthographicCameraController.swift
[105/234] Compiling Satin PerspectiveCameraController.swift
[106/234] Compiling Satin OrthographicCamera.swift
[107/234] Compiling Satin PerspectiveCamera.swift
[108/234] Compiling Satin AnyMaterial.swift
[109/234] Compiling Satin BufferComputeSystem.swift
[110/234] Compiling Satin ComputeProcessor.swift
[111/234] Compiling Satin ComputeSystem.swift
[112/234] Compiling Satin TessellationProcessor.swift
[113/234] Compiling Satin TextureComputeProcessor.swift
[114/234] Compiling Satin TextureComputeSystem.swift
[115/234] Compiling Satin ComputeConfiguration.swift
[116/234] Compiling Satin ComputeShader.swift
[117/234] Compiling Satin ComputeShaderConfiguration.swift
[118/234] Compiling Satin ComputeShaderLibraryCache.swift
[119/234] Compiling Satin ComputeShaderLibraryConfiguration.swift
[120/234] Compiling Satin ComputeShaderLibrarySourceCache.swift
[121/234] Compiling Satin ComputeShaderPipelineCache.swift
[122/234] Compiling Satin Blending.swift
[123/234] Compiling Satin Constants.swift
[124/234] Compiling Satin Lighting.swift
[125/234] Compiling Satin ComputeConstants.swift
[126/234] Compiling Satin TriangleGeometry.swift
[127/234] Compiling Satin TubeGeometry.swift
[128/234] Compiling Satin UVDiskGeometry.swift
[129/234] Compiling Satin AnyBufferAttribute.swift
[130/234] Compiling Satin Attribute.swift
[131/234] Compiling Satin BufferAttribute.swift
[132/234] Compiling Satin ElementBuffer.swift
[133/234] Compiling Satin InterleavedBuffer.swift
[134/234] Compiling Satin InterleavedBufferAttribute.swift
[135/234] Compiling Satin VertexAttribute.swift
[136/234] Compiling Satin DirectionalLight.swift
[137/234] Compiling Satin PointLight.swift
[138/234] Compiling Satin SpotLight.swift
[139/234] Compiling Satin ARBackgroundDepthMaterial.swift
[140/234] Compiling Satin ARBackgroundMaterial.swift
[141/234] Compiling Satin ARCompositorMaterial.swift
[142/234] Compiling Satin ARMatteMaterial.swift
[143/234] Compiling Satin ARPostMaterial.swift
[144/234] Compiling Satin BasicColorMaterial.swift
[145/234] Compiling Satin BasicDiffuseMaterial.swift
[146/234] Compiling Satin BasicPointMaterial.swift
[147/234] Compiling Satin BasicTextureMaterial.swift
[148/234] Compiling Satin ARBackgroundDepthRenderer.swift
[149/234] Compiling Satin ARBackgroundRenderer.swift
[150/234] Compiling Satin ARCompositor.swift
[151/234] Compiling Satin ARDepthMaskGenerator.swift
[152/234] Compiling Satin ARDepthUpscaler.swift
[153/234] Compiling Satin ARFeatheredDepthMaskGenerator.swift
[154/234] Compiling Satin ARLidarMesh.swift
[155/234] Compiling Satin ARMatteRenderer.swift
[156/234] Compiling Satin ARPerspectiveCamera.swift
[157/234] Compiling Satin ARPlaneMesh.swift
[158/234] Compiling Satin ARPostProcessor.swift
[159/234] Compiling Satin ARSessionPublisher.swift
[160/234] Compiling Satin Easing.swift
[161/234] Compiling Satin Easings.swift
[162/234] Compiling Satin Tween.swift
[163/234] Compiling Satin Tweener.swift
[164/234] Compiling Satin InstanceMatrixUniformBuffer.swift
[165/234] Compiling Satin StructBuffer.swift
[166/234] Compiling Satin UniformBuffer.swift
[167/234] Compiling Satin VertexUniformBuffer.swift
[168/234] Compiling Satin CameraController.swift
[169/234] Compiling Satin OrbitPerspectiveCameraController.swift
[170/234] Compiling Satin FragmentConstants.swift
[171/234] Compiling Satin MeshConstants.swift
[172/234] Compiling Satin ObjectConstants.swift
[173/234] Compiling Satin PBRConstants.swift
[174/234] Compiling Satin VertexConstants.swift
[175/234] Compiling Satin Tonemapping.swift
[176/234] Compiling Satin YCbCrToRGBConverter.swift
[177/234] Compiling Satin Camera.swift
[178/234] Compiling Satin Context.swift
[179/234] Compiling Satin Geometry.swift
[180/234] Compiling Satin Material.swift
[181/234] Compiling Satin Mesh.swift
[182/234] Compiling Satin Object.swift
[183/234] Compiling Satin Renderer.swift
[184/234] Compiling Satin Shader.swift
[185/234] Compiling Satin BVH+Extensions.swift
[186/234] Compiling Satin Bounds+Extensions.swift
[187/234] Compiling Satin Bundle+Extensions.swift
[188/234] Compiling Satin CGPoint+Extensions.swift
[189/234] Compiling Satin CGSize+Extensions.swift
[190/234] Compiling Satin CodingUserInfoKey+Extensions.swift
[191/234] Compiling Satin Float+Extensions.swift
[192/234] Compiling Satin MTLClearColor+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[193/234] Compiling Satin MTLSamplerDescriptor+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[194/234] Compiling Satin MTLTexture+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[195/234] Compiling Satin MTLVertexFormat+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[196/234] Compiling Satin MTLVertexStepFunction+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[197/234] Compiling Satin MTLViewport+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[198/234] Compiling Satin Metal+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[199/234] Compiling Satin NSAppearanceCustomization+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[200/234] Compiling Satin Ray+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[201/234] Compiling Satin Rectangle+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[202/234] Compiling Satin Simd+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[203/234] Compiling Satin String+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[204/234] Compiling Satin UIWindow+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[205/234] Compiling Satin Vertex+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[206/234] Compiling Satin BrdfGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[207/234] Compiling Satin CubemapGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[208/234] Compiling Satin DiffuseIBLGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[209/234] Compiling Satin RandomNoiseGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[210/234] Compiling Satin SpecularIBLGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[211/234] Compiling Satin ArcGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[212/234] Compiling Satin BoxGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[213/234] Compiling Satin CapsuleGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         `- note: add missing case: '.unspecialized'
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
[214/234] Compiling Satin LightData.swift
[215/234] Compiling Satin ShadowData.swift
[216/234] Compiling Satin FileWatcher.swift
[217/234] Compiling Satin Helpers.swift
[218/234] Compiling Satin Loader.swift
[219/234] Compiling Satin Locks.swift
[220/234] Compiling Satin MetalFileCompiler.swift
[221/234] Compiling Satin MetalSourceCompiler.swift
[222/234] Compiling Satin Paths.swift
[223/234] Compiling Satin PostProcessor.swift
[224/234] Compiling Satin Textures.swift
[225/234] Compiling Satin ValueCache.swift
[226/234] Compiling Satin VertexDescriptors.swift
[227/234] Compiling Satin MetalLayerRenderer.swift
[228/234] Compiling Satin MetalView.swift
[229/234] Compiling Satin MetalViewController.swift
[230/234] Compiling Satin MetalViewRenderer.swift
[231/234] Compiling Satin MetalViewRendererDelegate.swift
[232/234] Compiling Satin SatinImmersiveSpace.swift
[233/234] Compiling Satin SatinMetalView.swift
[234/234] Compiling Satin resource_bundle_accessor.swift
Build complete! (12.61s)
Build complete.
{
  "cxx_language_standard" : "c++17",
  "dependencies" : [
  ],
  "manifest_display_name" : "Satin",
  "name" : "Satin",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "visionos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "Satin",
      "targets" : [
        "Satin",
        "SatinCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "SatinTests",
      "module_type" : "SwiftTarget",
      "name" : "SatinTests",
      "path" : "Tests/SatinTests",
      "sources" : [
        "MutexTests.swift",
        "ObjectTests.swift",
        "RenderableTests.swift"
      ],
      "target_dependencies" : [
        "Satin"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SatinCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "SatinCoreTests",
      "path" : "Tests/SatinCoreTests",
      "sources" : [
        "BezierTests.swift",
        "BoundsTests.swift",
        "MD5.swift",
        "TriangulatorTests.swift"
      ],
      "target_dependencies" : [
        "SatinCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SatinCore",
      "module_type" : "ClangTarget",
      "name" : "SatinCore",
      "path" : "Sources/SatinCore",
      "product_memberships" : [
        "Satin"
      ],
      "sources" : [
        "Bezier.mm",
        "Bounds.mm",
        "Bvh.mm",
        "Conversions.mm",
        "Generators.mm",
        "Geometry.mm",
        "Hermite.mm",
        "PoissonDiskSampler.mm",
        "Rectangle.mm",
        "SignedDistanceFunctions.mm",
        "Transforms.mm",
        "Triangulator.mm",
        "Types.mm"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Satin",
      "module_type" : "SwiftTarget",
      "name" : "Satin",
      "path" : "Sources/Satin",
      "product_memberships" : [
        "Satin"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Satin/Pipelines",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AR/ARBackgroundDepthRenderer.swift",
        "AR/ARBackgroundRenderer.swift",
        "AR/ARCompositor.swift",
        "AR/ARDepthMaskGenerator.swift",
        "AR/ARDepthUpscaler.swift",
        "AR/ARFeatheredDepthMaskGenerator.swift",
        "AR/ARLidarMesh.swift",
        "AR/ARMatteRenderer.swift",
        "AR/ARPerspectiveCamera.swift",
        "AR/ARPlaneMesh.swift",
        "AR/ARPostProcessor.swift",
        "AR/ARSessionPublisher.swift",
        "Animation/Easing.swift",
        "Animation/Easings.swift",
        "Animation/Tween.swift",
        "Animation/Tweener.swift",
        "Buffers/InstanceMatrixUniformBuffer.swift",
        "Buffers/StructBuffer.swift",
        "Buffers/UniformBuffer.swift",
        "Buffers/VertexUniformBuffer.swift",
        "CameraControllers/CameraController.swift",
        "CameraControllers/OrbitPerspectiveCameraController.swift",
        "CameraControllers/OrthographicCameraController.swift",
        "CameraControllers/PerspectiveCameraController.swift",
        "Cameras/OrthographicCamera.swift",
        "Cameras/PerspectiveCamera.swift",
        "Codable/AnyMaterial.swift",
        "Compute/BufferComputeSystem.swift",
        "Compute/ComputeProcessor.swift",
        "Compute/ComputeSystem.swift",
        "Compute/TessellationProcessor.swift",
        "Compute/TextureComputeProcessor.swift",
        "Compute/TextureComputeSystem.swift",
        "Compute/Utilities/ComputeConfiguration.swift",
        "Compute/Utilities/ComputeShader.swift",
        "Compute/Utilities/ComputeShaderConfiguration.swift",
        "Compute/Utilities/ComputeShaderLibraryCache.swift",
        "Compute/Utilities/ComputeShaderLibraryConfiguration.swift",
        "Compute/Utilities/ComputeShaderLibrarySourceCache.swift",
        "Compute/Utilities/ComputeShaderPipelineCache.swift",
        "Constants/Blending.swift",
        "Constants/Constants.swift",
        "Constants/Lighting.swift",
        "Constants/Pipelines/ComputeConstants.swift",
        "Constants/Pipelines/FragmentConstants.swift",
        "Constants/Pipelines/MeshConstants.swift",
        "Constants/Pipelines/ObjectConstants.swift",
        "Constants/Pipelines/PBRConstants.swift",
        "Constants/Pipelines/VertexConstants.swift",
        "Constants/Tonemapping.swift",
        "Converters/YCbCrToRGBConverter.swift",
        "Core/Camera.swift",
        "Core/Context.swift",
        "Core/Geometry.swift",
        "Core/Material.swift",
        "Core/Mesh.swift",
        "Core/Object.swift",
        "Core/Renderer.swift",
        "Core/Shader.swift",
        "Extensions/BVH+Extensions.swift",
        "Extensions/Bounds+Extensions.swift",
        "Extensions/Bundle+Extensions.swift",
        "Extensions/CGPoint+Extensions.swift",
        "Extensions/CGSize+Extensions.swift",
        "Extensions/CodingUserInfoKey+Extensions.swift",
        "Extensions/Float+Extensions.swift",
        "Extensions/MTLClearColor+Extensions.swift",
        "Extensions/MTLSamplerDescriptor+Extensions.swift",
        "Extensions/MTLTexture+Extensions.swift",
        "Extensions/MTLVertexFormat+Extension.swift",
        "Extensions/MTLVertexStepFunction+Extensions.swift",
        "Extensions/MTLViewport+Extensions.swift",
        "Extensions/Metal+Extensions.swift",
        "Extensions/NSAppearanceCustomization+Extensions.swift",
        "Extensions/Ray+Extensions.swift",
        "Extensions/Rectangle+Extensions.swift",
        "Extensions/Simd+Extensions.swift",
        "Extensions/String+Extensions.swift",
        "Extensions/UIWindow+Extensions.swift",
        "Extensions/Vertex+Extensions.swift",
        "Generators/BrdfGenerator.swift",
        "Generators/CubemapGenerator.swift",
        "Generators/DiffuseIBLGenerator.swift",
        "Generators/RandomNoiseGenerator.swift",
        "Generators/SpecularIBLGenerator.swift",
        "Geometry/ArcGeometry.swift",
        "Geometry/BoxGeometry.swift",
        "Geometry/CapsuleGeometry.swift",
        "Geometry/CircleGeometry.swift",
        "Geometry/ConeGeometry.swift",
        "Geometry/CylinderGeometry.swift",
        "Geometry/ExtrudedRoundedRectGeometry.swift",
        "Geometry/ExtrudedTextGeometry.swift",
        "Geometry/IcoSphereGeometry.swift",
        "Geometry/LineGeometry.swift",
        "Geometry/OctaSphereGeometry.swift",
        "Geometry/ParametricGeometry.swift",
        "Geometry/PlaneGeometry.swift",
        "Geometry/PointGeometry.swift",
        "Geometry/QuadGeometry.swift",
        "Geometry/RoundedBoxGeometry.swift",
        "Geometry/RoundedRectGeometry.swift",
        "Geometry/SatinGeometry.swift",
        "Geometry/SkyboxGeometry.swift",
        "Geometry/SphereGeometry.swift",
        "Geometry/SquircleGeometry.swift",
        "Geometry/TesselatedTextGeometry.swift",
        "Geometry/TessellationGeometry.swift",
        "Geometry/TextGeometry.swift",
        "Geometry/TorusGeometry.swift",
        "Geometry/TriangleGeometry.swift",
        "Geometry/TubeGeometry.swift",
        "Geometry/UVDiskGeometry.swift",
        "Geometry/Utilities/AnyBufferAttribute.swift",
        "Geometry/Utilities/Attribute.swift",
        "Geometry/Utilities/BufferAttribute.swift",
        "Geometry/Utilities/ElementBuffer.swift",
        "Geometry/Utilities/InterleavedBuffer.swift",
        "Geometry/Utilities/InterleavedBufferAttribute.swift",
        "Geometry/Utilities/VertexAttribute.swift",
        "Lights/DirectionalLight.swift",
        "Lights/PointLight.swift",
        "Lights/SpotLight.swift",
        "Materials/ARBackgroundDepthMaterial.swift",
        "Materials/ARBackgroundMaterial.swift",
        "Materials/ARCompositorMaterial.swift",
        "Materials/ARMatteMaterial.swift",
        "Materials/ARPostMaterial.swift",
        "Materials/BasicColorMaterial.swift",
        "Materials/BasicDiffuseMaterial.swift",
        "Materials/BasicPointMaterial.swift",
        "Materials/BasicTextureMaterial.swift",
        "Materials/DepthMaterial.swift",
        "Materials/MatCapMaterial.swift",
        "Materials/NormalColorMaterial.swift",
        "Materials/PhysicalMaterial.swift",
        "Materials/ShadowMaterial.swift",
        "Materials/SkyboxMaterial.swift",
        "Materials/SourceMaterial.swift",
        "Materials/StandardMaterial.swift",
        "Materials/TextMaterial.swift",
        "Materials/UVColorMaterial.swift",
        "Objects/IBLScene.swift",
        "Objects/InstancedMesh.swift",
        "Objects/Submesh.swift",
        "Objects/TessellationMesh.swift",
        "Parameters/AnyParameter.swift",
        "Parameters/BoolParameter.swift",
        "Parameters/DoubleParameter.swift",
        "Parameters/Float2Parameter.swift",
        "Parameters/Float2x2Parameter.swift",
        "Parameters/Float3Parameter.swift",
        "Parameters/Float3x3Parameter.swift",
        "Parameters/Float4Parameter.swift",
        "Parameters/Float4x4Parameter.swift",
        "Parameters/FloatParameter.swift",
        "Parameters/GenericParameter.swift",
        "Parameters/Int2Parameter.swift",
        "Parameters/Int3Parameter.swift",
        "Parameters/Int4Parameter.swift",
        "Parameters/IntParameter.swift",
        "Parameters/PackedFloat3Parameter.swift",
        "Parameters/Parameter.swift",
        "Parameters/ParameterGroup.swift",
        "Parameters/StringParameter.swift",
        "Parameters/UInt32Parameter.swift",
        "Protocols/IBLEnvironment.swift",
        "Protocols/Light.swift",
        "Protocols/Renderable.swift",
        "Protocols/Shadow.swift",
        "Raycast/Raycast.swift",
        "Raycast/RaycastOptions.swift",
        "Raycast/RaycastResult.swift",
        "Renderer/RenderEncoderState.swift",
        "Renderer/RenderList.swift",
        "Satin.swift",
        "Shaders/PBRShader.swift",
        "Shaders/PhysicalShader.swift",
        "Shaders/SkyboxShader.swift",
        "Shaders/SourceShader.swift",
        "Shaders/StandardShader.swift",
        "Shaders/Utilities/RenderingConfiguration.swift",
        "Shaders/Utilities/ShaderBlending.swift",
        "Shaders/Utilities/ShaderConfiguration.swift",
        "Shaders/Utilities/ShaderDefine.swift",
        "Shaders/Utilities/ShaderLibraryCache.swift",
        "Shaders/Utilities/ShaderLibraryConfiguration.swift",
        "Shaders/Utilities/ShaderLibrarySourceCache.swift",
        "Shaders/Utilities/ShaderPipelineCache.swift",
        "Shaders/Utilities/ShaderSourceCache.swift",
        "Shaders/Utilities/ShaderSourceInjections.swift",
        "Shaders/Utilities/ShaderSourceParsers.swift",
        "Shadows/DirectionalLightShadow.swift",
        "Text/FontAtlas.swift",
        "Text/TextMesh.swift",
        "Types/InstanceMatrixUniforms.swift",
        "Types/LightData.swift",
        "Types/ShadowData.swift",
        "Utilities/FileWatcher.swift",
        "Utilities/Helpers.swift",
        "Utilities/Loader.swift",
        "Utilities/Locks.swift",
        "Utilities/MetalFileCompiler.swift",
        "Utilities/MetalSourceCompiler.swift",
        "Utilities/Paths.swift",
        "Utilities/PostProcessor.swift",
        "Utilities/Textures.swift",
        "Utilities/ValueCache.swift",
        "Utilities/VertexDescriptors.swift",
        "Views/MetalLayerRenderer.swift",
        "Views/MetalView.swift",
        "Views/MetalViewController.swift",
        "Views/MetalViewRenderer.swift",
        "Views/MetalViewRendererDelegate.swift",
        "Views/SatinImmersiveSpace.swift",
        "Views/SatinMetalView.swift"
      ],
      "target_dependencies" : [
        "SatinCore"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.