The Swift Package Index logo.Swift Package Index

Build Information

Successful build of ShaderKit, reference main (0f4f5b), with Swift 6.1 for macOS (SPM) on 24 Jul 2026 10:14:57 UTC.

Swift 6 data race errors: 1

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jamesrochabrun/ShaderKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/jamesrochabrun/ShaderKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0f4f5b4 Migrate to a single one-shot trading-card skill (completes #23)
Cloned https://github.com/jamesrochabrun/ShaderKit.git
Revision (git rev-parse @):
0f4f5b41b58f2eaddfe2ba46d8dd721d0732d5c7
SUCCESS checkout https://github.com/jamesrochabrun/ShaderKit.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/jamesrochabrun/ShaderKit.git
https://github.com/jamesrochabrun/ShaderKit.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ShaderKit",
  "name" : "ShaderKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "ShaderKit",
      "targets" : [
        "ShaderKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderKitUI",
      "targets" : [
        "ShaderKitUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderCards",
      "targets" : [
        "ShaderCards"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderCardsDemo",
      "targets" : [
        "ShaderCardsDemo"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ShaderKitUI",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKitUI",
      "path" : "Sources/ShaderKitUI",
      "product_memberships" : [
        "ShaderKitUI"
      ],
      "sources" : [
        "Audio/ToneGenerator.swift",
        "Components/JellyButton.swift",
        "Components/JellySwitch.swift",
        "Physics/SpringPhysics.swift",
        "ShaderKitUI.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ShaderKitTests",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKitTests",
      "path" : "Tests/ShaderKitTests",
      "sources" : [
        "ShaderKitTests.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ShaderKit",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKit",
      "path" : "Sources/ShaderKit",
      "product_memberships" : [
        "ShaderKit",
        "ShaderKitUI",
        "ShaderCards",
        "ShaderCardsDemo"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/AmazingRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BasicGlareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BlendedHoloShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BubbleShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/CodexLogoShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/CosmosHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/DiagonalHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/DiamondGridShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/EtchedFoilShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/FoilEffectsShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/FrozenShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/GlassShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/HalftonePastelShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/IntenseBlingShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/JellyButtonShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/JellySwitchShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/LightsaberShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/LiquidTechShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/MaskedFoilShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/PolishedAluminumShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/PremiumMaterialShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RadialStarShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RadiantHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RainbowRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RegularHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ReverseHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ShaderUtilities.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ShinyRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SnowfallShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SpiralRingsShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/StarburstShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SubtleGradientShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ThermostatShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/TradingCardHoloShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/WaterShader.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Containers/CardLayerExplodeContainer.swift",
        "Containers/ExplodableCard/CardLayer.swift",
        "Containers/ExplodableCard/CardLayerBuilder.swift",
        "Containers/ExplodableCard/ExplodableHolographicCard.swift",
        "Containers/ExplodableCard/ExplodedLayerView.swift",
        "Containers/HolographicCardContainer.swift",
        "Containers/HolographicInteractionMode.swift",
        "Containers/SimpleCardContent.swift",
        "Effects/ShaderContext.swift",
        "Effects/ShaderEffect.swift",
        "Effects/TradingCardHoloStyle.swift",
        "Modifiers/ShaderModifier.swift",
        "Modifiers/View+Shader.swift",
        "ShaderKit.swift",
        "Utilities/Spring.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ShaderCardsTests",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCardsTests",
      "path" : "Tests/ShaderCardsTests",
      "sources" : [
        "ShaderCardsTests.swift",
        "SnapshotRenderTests.swift"
      ],
      "target_dependencies" : [
        "ShaderCards"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ShaderCardsDemo",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCardsDemo",
      "path" : "Sources/ShaderCardsDemo",
      "product_memberships" : [
        "ShaderCardsDemo"
      ],
      "sources" : [
        "ShaderCardsDemoApp.swift"
      ],
      "target_dependencies" : [
        "ShaderCards"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "ShaderCards",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCards",
      "path" : "Sources/ShaderCards",
      "product_memberships" : [
        "ShaderCards",
        "ShaderCardsDemo"
      ],
      "sources" : [
        "Art/ArtSceneSpec.swift",
        "Art/ArtworkSpecs.swift",
        "Art/ArtworkView.swift",
        "Art/Backdrops.swift",
        "Art/Figures/BirdFigure.swift",
        "Art/Figures/CatFigure.swift",
        "Art/Figures/DrakeFigure.swift",
        "Art/Figures/FishFigure.swift",
        "Art/Figures/FoxFigure.swift",
        "Art/Figures/GolemFigure.swift",
        "Art/Figures/JellyFigure.swift",
        "Art/Figures/MothFigure.swift",
        "Art/Figures/SerpentFigure.swift",
        "Art/Figures/TurtleFigure.swift",
        "Art/Figures/WispFigure.swift",
        "Art/Figures/WolfFigure.swift",
        "Art/ParticleField.swift",
        "Art/SceneRandom.swift",
        "Builder/CardBuilder.swift",
        "Components/ArtWindow.swift",
        "Components/AttackRow.swift",
        "Components/CardFooter.swift",
        "Components/CardHeader.swift",
        "Components/EnergyIcon.swift",
        "Components/RaritySymbolView.swift",
        "Design/CardMetrics.swift",
        "Design/CardTypography.swift",
        "Design/ElementPalette.swift",
        "Frames/EnergyCardFace.swift",
        "Frames/FullArtCardFace.swift",
        "Frames/MinimalCardFace.swift",
        "Frames/StandardCardFace.swift",
        "Frames/TrainerCardFace.swift",
        "Library/CardLibrary.swift",
        "Library/PremiumMaterialEditions.swift",
        "Library/SpecialEditions.swift",
        "Library/TradingCardHoloEditions.swift",
        "Model/Card.swift",
        "Model/CardArt.swift",
        "Model/CardArtwork.swift",
        "Model/CardAttack.swift",
        "Model/CardFinish.swift",
        "Model/CardLayout.swift",
        "Model/CardModel.swift",
        "Model/CardRarity.swift",
        "Model/CardStage.swift",
        "Model/ElementType.swift",
        "Model/PremiumCardFinishes.swift",
        "Model/TradingCardHoloFinishes.swift",
        "ShaderCards.swift",
        "Views/CardFaceView.swift",
        "Views/CardGalleryView.swift",
        "Views/CardLayerFactory.swift",
        "Views/CardStudioView.swift",
        "Views/ExplodableCardView.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/44] Copying WaterShader.metal
[0/44] Copying TradingCardHoloShaders.metal
[2/44] Copying SnowfallShader.metal
[2/44] Copying ThermostatShaders.metal
[3/44] Copying SubtleGradientShader.metal
[3/44] Copying StarburstShaders.metal
[4/44] Copying ShinyRareShader.metal
[4/44] Copying ShaderUtilities.metal
[4/44] Copying SpiralRingsShader.metal
[4/44] Copying RegularHoloShader.metal
[4/44] Copying ReverseHoloShader.metal
[11/44] Copying JellySwitchShader.metal
[11/44] Copying RainbowRareShader.metal
[11/44] Copying RadialStarShader.metal
[12/44] Copying PremiumMaterialShaders.metal
[13/44] Copying PolishedAluminumShader.metal
[13/44] Copying LightsaberShaders.metal
[13/44] Copying LiquidTechShader.metal
[13/44] Copying RadiantHoloShader.metal
[18/44] Copying MaskedFoilShaders.metal
[18/44] Copying JellyButtonShader.metal
[18/44] Copying HalftonePastelShader.metal
[18/44] Copying GlassShaders.metal
[18/44] Copying IntenseBlingShader.metal
[18/44] Copying FrozenShader.metal
[25/44] Copying CosmosHoloShader.metal
[25/44] Copying FoilEffectsShaders.metal
[25/44] Copying EtchedFoilShader.metal
[25/44] Copying DiamondGridShader.metal
[25/44] Copying DiagonalHoloShader.metal
[25/44] Copying CodexLogoShader.metal
[25/44] Copying BubbleShaders.metal
[25/44] Copying BasicGlareShader.metal
[32/44] Write sources
[33/44] Copying BlendedHoloShaders.metal
[33/44] Write sources
[37/44] Copying AmazingRareShader.metal
[38/44] Write ShaderCardsDemo-entitlement.plist
[38/44] Write sources
[40/44] Write swift-version-2F0A5646E1D333AE.txt
[42/60] Compiling ShaderKit Spring.swift
[43/61] Compiling ShaderKit resource_bundle_accessor.swift
[44/61] Compiling ShaderKit ShaderKit.swift
[45/61] Compiling ShaderKit TradingCardHoloStyle.swift
[46/61] Compiling ShaderKit ShaderModifier.swift
[47/61] Compiling ShaderKit View+Shader.swift
[48/61] Compiling ShaderKit ShaderContext.swift
[49/61] Compiling ShaderKit ShaderEffect.swift
[50/61] Compiling ShaderKit ExplodedLayerView.swift
[51/61] Compiling ShaderKit HolographicCardContainer.swift
[52/61] Compiling ShaderKit CardLayerBuilder.swift
[53/61] Compiling ShaderKit ExplodableHolographicCard.swift
[54/61] Emitting module ShaderKit
[55/61] Compiling ShaderKit CardLayerExplodeContainer.swift
[56/61] Compiling ShaderKit CardLayer.swift
[57/61] Compiling ShaderKit HolographicInteractionMode.swift
[58/61] Compiling ShaderKit SimpleCardContent.swift
[59/118] Compiling ShaderKitUI SpringPhysics.swift
[60/118] Compiling ShaderKitUI ShaderKitUI.swift
[61/118] Compiling ShaderKitUI JellySwitch.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKitUI/Components/JellySwitch.swift:214:7: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
212 |
213 |     DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) { [weak self] in
214 |       self?.pressed = false
    |       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
215 |     }
216 |   }
[62/118] Compiling ShaderKitUI JellyButton.swift
[63/118] Emitting module ShaderKitUI
[64/118] Compiling ShaderKitUI ToneGenerator.swift
[65/118] Emitting module ShaderCards
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
[66/123] Compiling ShaderCards CardAttack.swift
[67/123] Compiling ShaderCards CardFinish.swift
[68/123] Compiling ShaderCards CardLayout.swift
[69/123] Compiling ShaderCards CardModel.swift
[70/123] Compiling ShaderCards CardRarity.swift
[71/123] Compiling ShaderCards CardStage.swift
[72/123] Compiling ShaderCards ElementType.swift
[73/123] Compiling ShaderCards PremiumCardFinishes.swift
[74/123] Compiling ShaderCards TradingCardHoloFinishes.swift
[75/123] Compiling ShaderCards ShaderCards.swift
[76/123] Compiling ShaderCards SerpentFigure.swift
[77/123] Compiling ShaderCards TurtleFigure.swift
[78/123] Compiling ShaderCards WispFigure.swift
[79/123] Compiling ShaderCards WolfFigure.swift
[80/123] Compiling ShaderCards ParticleField.swift
[81/123] Compiling ShaderCards SceneRandom.swift
[82/123] Compiling ShaderCards DrakeFigure.swift
[83/123] Compiling ShaderCards FishFigure.swift
[84/123] Compiling ShaderCards FoxFigure.swift
[85/123] Compiling ShaderCards GolemFigure.swift
[86/123] Compiling ShaderCards JellyFigure.swift
[87/123] Compiling ShaderCards MothFigure.swift
[88/123] Compiling ShaderCards ArtSceneSpec.swift
[89/123] Compiling ShaderCards ArtworkSpecs.swift
[90/123] Compiling ShaderCards ArtworkView.swift
[91/123] Compiling ShaderCards Backdrops.swift
[92/123] Compiling ShaderCards BirdFigure.swift
[93/123] Compiling ShaderCards CatFigure.swift
[94/123] Compiling ShaderCards SpecialEditions.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:15: error: cannot convert value of type 'T?' to specified type 'String'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |               `- error: cannot convert value of type 'T?' to specified type 'String'
 63 |     }
 64 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:59:39: error: generic parameter 'ElementOfResult' could not be inferred
 57 |     case .image: "Custom Art"
 58 |     case .gradient: "Gradient"
 59 |     case .layered(let layers): layers.compactMap { layer in
    |                                       `- error: generic parameter 'ElementOfResult' could not be inferred
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
Swift.Sequence.compactMap:2:24: note: in call to function 'compactMap'
1 | protocol Sequence {
2 | @inlinable public func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]}
  |                        `- note: in call to function 'compactMap'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:18: error: cannot convert value of type 'String' to expected argument type 'T?'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |                  `- error: cannot convert value of type 'String' to expected argument type 'T?'
 63 |     }
 64 |   }
[95/123] Compiling ShaderCards TradingCardHoloEditions.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:15: error: cannot convert value of type 'T?' to specified type 'String'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |               `- error: cannot convert value of type 'T?' to specified type 'String'
 63 |     }
 64 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:59:39: error: generic parameter 'ElementOfResult' could not be inferred
 57 |     case .image: "Custom Art"
 58 |     case .gradient: "Gradient"
 59 |     case .layered(let layers): layers.compactMap { layer in
    |                                       `- error: generic parameter 'ElementOfResult' could not be inferred
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
Swift.Sequence.compactMap:2:24: note: in call to function 'compactMap'
1 | protocol Sequence {
2 | @inlinable public func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]}
  |                        `- note: in call to function 'compactMap'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:18: error: cannot convert value of type 'String' to expected argument type 'T?'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |                  `- error: cannot convert value of type 'String' to expected argument type 'T?'
 63 |     }
 64 |   }
[96/123] Compiling ShaderCards Card.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:15: error: cannot convert value of type 'T?' to specified type 'String'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |               `- error: cannot convert value of type 'T?' to specified type 'String'
 63 |     }
 64 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:59:39: error: generic parameter 'ElementOfResult' could not be inferred
 57 |     case .image: "Custom Art"
 58 |     case .gradient: "Gradient"
 59 |     case .layered(let layers): layers.compactMap { layer in
    |                                       `- error: generic parameter 'ElementOfResult' could not be inferred
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
Swift.Sequence.compactMap:2:24: note: in call to function 'compactMap'
1 | protocol Sequence {
2 | @inlinable public func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]}
  |                        `- note: in call to function 'compactMap'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:18: error: cannot convert value of type 'String' to expected argument type 'T?'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |                  `- error: cannot convert value of type 'String' to expected argument type 'T?'
 63 |     }
 64 |   }
[97/123] Compiling ShaderCards CardArt.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:15: error: cannot convert value of type 'T?' to specified type 'String'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |               `- error: cannot convert value of type 'T?' to specified type 'String'
 63 |     }
 64 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:59:39: error: generic parameter 'ElementOfResult' could not be inferred
 57 |     case .image: "Custom Art"
 58 |     case .gradient: "Gradient"
 59 |     case .layered(let layers): layers.compactMap { layer in
    |                                       `- error: generic parameter 'ElementOfResult' could not be inferred
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
Swift.Sequence.compactMap:2:24: note: in call to function 'compactMap'
1 | protocol Sequence {
2 | @inlinable public func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]}
  |                        `- note: in call to function 'compactMap'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:18: error: cannot convert value of type 'String' to expected argument type 'T?'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |                  `- error: cannot convert value of type 'String' to expected argument type 'T?'
 63 |     }
 64 |   }
[98/123] Compiling ShaderCards CardArtwork.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:129:22: warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
127 | /// Decode-once cache for custom image art, keyed by the image data.
128 | enum ArtImageCache {
129 |   private static let cache = NSCache<NSData, PlatformImage>()
    |                      |- warning: static property 'cache' is not concurrency-safe because non-'Sendable' type 'NSCache<NSData, PlatformImage>' (aka 'NSCache<NSData, NSImage>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'cache' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |   static func image(for data: Data) -> PlatformImage? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSCache.h:13:12: note: generic class 'NSCache' does not conform to the 'Sendable' protocol
11 |
12 | API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0))
13 | @interface NSCache <KeyType, ObjectType> : NSObject
   |            `- note: generic class 'NSCache' does not conform to the 'Sendable' protocol
14 |
15 | @property (copy) NSString *name;
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:15: error: cannot convert value of type 'T?' to specified type 'String'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |               `- error: cannot convert value of type 'T?' to specified type 'String'
 63 |     }
 64 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:59:39: error: generic parameter 'ElementOfResult' could not be inferred
 57 |     case .image: "Custom Art"
 58 |     case .gradient: "Gradient"
 59 |     case .layered(let layers): layers.compactMap { layer in
    |                                       `- error: generic parameter 'ElementOfResult' could not be inferred
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
Swift.Sequence.compactMap:2:24: note: in call to function 'compactMap'
1 | protocol Sequence {
2 | @inlinable public func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]}
  |                        `- note: in call to function 'compactMap'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:62:18: error: cannot convert value of type 'String' to expected argument type 'T?'
 60 |         if case .gradient = layer { return nil }
 61 |         return layer.displayName
 62 |       }.first ?? "Layered Art"
    |                  `- error: cannot convert value of type 'String' to expected argument type 'T?'
 63 |     }
 64 |   }
[99/123] Compiling ShaderCards CardBuilder.swift
[100/123] Compiling ShaderCards ArtWindow.swift
[101/123] Compiling ShaderCards AttackRow.swift
[102/123] Compiling ShaderCards CardFooter.swift
[103/123] Compiling ShaderCards CardHeader.swift
[104/123] Compiling ShaderCards EnergyIcon.swift
[105/123] Compiling ShaderCards RaritySymbolView.swift
[106/123] Compiling ShaderCards CardMetrics.swift
[107/123] Compiling ShaderCards CardTypography.swift
[108/123] Compiling ShaderCards ElementPalette.swift
[109/123] Compiling ShaderCards EnergyCardFace.swift
[110/123] Compiling ShaderCards FullArtCardFace.swift
[111/123] Compiling ShaderCards MinimalCardFace.swift
[112/123] Compiling ShaderCards StandardCardFace.swift
[113/123] Compiling ShaderCards TrainerCardFace.swift
[114/123] Compiling ShaderCards CardLibrary.swift
[115/123] Compiling ShaderCards PremiumMaterialEditions.swift
[116/123] Compiling ShaderCards CardFaceView.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/MinimalCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 11 |
 12 | /// The minimal card face: the artwork is the card.
 13 | struct MinimalCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 14 |   let card: CardModel
 15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/FullArtCardFace.swift:14:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 12 | /// The full-art card face: artwork bleeds to the card edges and the UI
 13 | /// chrome floats on frosted panels, like modern ultra-rare cards.
 14 | struct FullArtCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 15 |   let card: CardModel
 16 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/EnergyCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
11 |
12 | /// The energy card face: bold, centered, iconic.
13 | struct EnergyCardFace: View {
   |        |- note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
   |        `- note: main actor isolation inferred from conformance to protocol 'View'
14 |   let card: EnergyCardModel
15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:154:5: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
148 |
149 |   /// One full-bleed art layer, clipped to the card shape.
150 |   private static func fullBleedArt(
    |                       `- note: add '@MainActor' to make static method 'fullBleedArt(_:metrics:)' part of global actor 'MainActor'
151 |     _ art: CardArt,
152 |     metrics: CardMetrics.Resolved
153 |   ) -> some View {
154 |     CardArtView(art: art)
    |     `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 |       .frame(width: metrics.width, height: metrics.height)
156 |       .clipShape(RoundedRectangle(cornerRadius: metrics.cornerRadius))
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:180:7: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 |     ZStack {
179 |       Color.clear
180 |       CardArtView(art: art)
    |       `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
182 |         .clipped()
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:201:10: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
199 |         )
200 |         .blendMode(.screen)
201 |         .shader(effect)
    |          `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
203 |         .position(x: metrics.artWindowRect.midX, y: metrics.artWindowRect.midY)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:219:8: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
207 |
208 |   /// A foil pass covering the whole card.
209 |   private static func fullCardCarrier(
    |                       `- note: add '@MainActor' to make static method 'fullCardCarrier(effect:metrics:colors:)' part of global actor 'MainActor'
210 |     effect: ShaderEffect,
211 |     metrics: CardMetrics.Resolved,
    :
217 |       )
218 |       .blendMode(.screen)
219 |       .shader(effect)
    |        `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 |       .frame(width: metrics.width, height: metrics.height)
221 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardStudioView.swift:351:15: warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |     .black.opacity(0.40),
 55 |   ]
 56 |   @State private var customImageData: Data?
    |                      `- note: property declared here
 57 |   @State private var photoSelection: PhotosPickerItem?
 58 |   @State private var isImportingImageFile = false
    :
349 |     HStack(spacing: 12) {
350 |       PhotosPicker(selection: $photoSelection, matching: .images) {
351 |         Label(customImageData == nil ? "Add Photo" : "Replace Photo", systemImage: "photo.badge.plus")
    |               `- warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
352 |       }
353 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
[117/123] Compiling ShaderCards CardGalleryView.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/MinimalCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 11 |
 12 | /// The minimal card face: the artwork is the card.
 13 | struct MinimalCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 14 |   let card: CardModel
 15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/FullArtCardFace.swift:14:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 12 | /// The full-art card face: artwork bleeds to the card edges and the UI
 13 | /// chrome floats on frosted panels, like modern ultra-rare cards.
 14 | struct FullArtCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 15 |   let card: CardModel
 16 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/EnergyCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
11 |
12 | /// The energy card face: bold, centered, iconic.
13 | struct EnergyCardFace: View {
   |        |- note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
   |        `- note: main actor isolation inferred from conformance to protocol 'View'
14 |   let card: EnergyCardModel
15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:154:5: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
148 |
149 |   /// One full-bleed art layer, clipped to the card shape.
150 |   private static func fullBleedArt(
    |                       `- note: add '@MainActor' to make static method 'fullBleedArt(_:metrics:)' part of global actor 'MainActor'
151 |     _ art: CardArt,
152 |     metrics: CardMetrics.Resolved
153 |   ) -> some View {
154 |     CardArtView(art: art)
    |     `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 |       .frame(width: metrics.width, height: metrics.height)
156 |       .clipShape(RoundedRectangle(cornerRadius: metrics.cornerRadius))
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:180:7: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 |     ZStack {
179 |       Color.clear
180 |       CardArtView(art: art)
    |       `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
182 |         .clipped()
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:201:10: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
199 |         )
200 |         .blendMode(.screen)
201 |         .shader(effect)
    |          `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
203 |         .position(x: metrics.artWindowRect.midX, y: metrics.artWindowRect.midY)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:219:8: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
207 |
208 |   /// A foil pass covering the whole card.
209 |   private static func fullCardCarrier(
    |                       `- note: add '@MainActor' to make static method 'fullCardCarrier(effect:metrics:colors:)' part of global actor 'MainActor'
210 |     effect: ShaderEffect,
211 |     metrics: CardMetrics.Resolved,
    :
217 |       )
218 |       .blendMode(.screen)
219 |       .shader(effect)
    |        `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 |       .frame(width: metrics.width, height: metrics.height)
221 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardStudioView.swift:351:15: warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |     .black.opacity(0.40),
 55 |   ]
 56 |   @State private var customImageData: Data?
    |                      `- note: property declared here
 57 |   @State private var photoSelection: PhotosPickerItem?
 58 |   @State private var isImportingImageFile = false
    :
349 |     HStack(spacing: 12) {
350 |       PhotosPicker(selection: $photoSelection, matching: .images) {
351 |         Label(customImageData == nil ? "Add Photo" : "Replace Photo", systemImage: "photo.badge.plus")
    |               `- warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
352 |       }
353 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
[118/123] Compiling ShaderCards CardLayerFactory.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/MinimalCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 11 |
 12 | /// The minimal card face: the artwork is the card.
 13 | struct MinimalCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 14 |   let card: CardModel
 15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/FullArtCardFace.swift:14:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 12 | /// The full-art card face: artwork bleeds to the card edges and the UI
 13 | /// chrome floats on frosted panels, like modern ultra-rare cards.
 14 | struct FullArtCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 15 |   let card: CardModel
 16 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/EnergyCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
11 |
12 | /// The energy card face: bold, centered, iconic.
13 | struct EnergyCardFace: View {
   |        |- note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
   |        `- note: main actor isolation inferred from conformance to protocol 'View'
14 |   let card: EnergyCardModel
15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:154:5: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
148 |
149 |   /// One full-bleed art layer, clipped to the card shape.
150 |   private static func fullBleedArt(
    |                       `- note: add '@MainActor' to make static method 'fullBleedArt(_:metrics:)' part of global actor 'MainActor'
151 |     _ art: CardArt,
152 |     metrics: CardMetrics.Resolved
153 |   ) -> some View {
154 |     CardArtView(art: art)
    |     `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 |       .frame(width: metrics.width, height: metrics.height)
156 |       .clipShape(RoundedRectangle(cornerRadius: metrics.cornerRadius))
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:180:7: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 |     ZStack {
179 |       Color.clear
180 |       CardArtView(art: art)
    |       `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
182 |         .clipped()
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:201:10: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
199 |         )
200 |         .blendMode(.screen)
201 |         .shader(effect)
    |          `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
203 |         .position(x: metrics.artWindowRect.midX, y: metrics.artWindowRect.midY)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:219:8: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
207 |
208 |   /// A foil pass covering the whole card.
209 |   private static func fullCardCarrier(
    |                       `- note: add '@MainActor' to make static method 'fullCardCarrier(effect:metrics:colors:)' part of global actor 'MainActor'
210 |     effect: ShaderEffect,
211 |     metrics: CardMetrics.Resolved,
    :
217 |       )
218 |       .blendMode(.screen)
219 |       .shader(effect)
    |        `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 |       .frame(width: metrics.width, height: metrics.height)
221 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardStudioView.swift:351:15: warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |     .black.opacity(0.40),
 55 |   ]
 56 |   @State private var customImageData: Data?
    |                      `- note: property declared here
 57 |   @State private var photoSelection: PhotosPickerItem?
 58 |   @State private var isImportingImageFile = false
    :
349 |     HStack(spacing: 12) {
350 |       PhotosPicker(selection: $photoSelection, matching: .images) {
351 |         Label(customImageData == nil ? "Add Photo" : "Replace Photo", systemImage: "photo.badge.plus")
    |               `- warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
352 |       }
353 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
[119/123] Compiling ShaderCards CardStudioView.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/MinimalCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 11 |
 12 | /// The minimal card face: the artwork is the card.
 13 | struct MinimalCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 14 |   let card: CardModel
 15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/FullArtCardFace.swift:14:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 12 | /// The full-art card face: artwork bleeds to the card edges and the UI
 13 | /// chrome floats on frosted panels, like modern ultra-rare cards.
 14 | struct FullArtCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 15 |   let card: CardModel
 16 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/EnergyCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
11 |
12 | /// The energy card face: bold, centered, iconic.
13 | struct EnergyCardFace: View {
   |        |- note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
   |        `- note: main actor isolation inferred from conformance to protocol 'View'
14 |   let card: EnergyCardModel
15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:154:5: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
148 |
149 |   /// One full-bleed art layer, clipped to the card shape.
150 |   private static func fullBleedArt(
    |                       `- note: add '@MainActor' to make static method 'fullBleedArt(_:metrics:)' part of global actor 'MainActor'
151 |     _ art: CardArt,
152 |     metrics: CardMetrics.Resolved
153 |   ) -> some View {
154 |     CardArtView(art: art)
    |     `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 |       .frame(width: metrics.width, height: metrics.height)
156 |       .clipShape(RoundedRectangle(cornerRadius: metrics.cornerRadius))
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:180:7: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 |     ZStack {
179 |       Color.clear
180 |       CardArtView(art: art)
    |       `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
182 |         .clipped()
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:201:10: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
199 |         )
200 |         .blendMode(.screen)
201 |         .shader(effect)
    |          `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
203 |         .position(x: metrics.artWindowRect.midX, y: metrics.artWindowRect.midY)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:219:8: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
207 |
208 |   /// A foil pass covering the whole card.
209 |   private static func fullCardCarrier(
    |                       `- note: add '@MainActor' to make static method 'fullCardCarrier(effect:metrics:colors:)' part of global actor 'MainActor'
210 |     effect: ShaderEffect,
211 |     metrics: CardMetrics.Resolved,
    :
217 |       )
218 |       .blendMode(.screen)
219 |       .shader(effect)
    |        `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 |       .frame(width: metrics.width, height: metrics.height)
221 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardStudioView.swift:351:15: warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |     .black.opacity(0.40),
 55 |   ]
 56 |   @State private var customImageData: Data?
    |                      `- note: property declared here
 57 |   @State private var photoSelection: PhotosPickerItem?
 58 |   @State private var isImportingImageFile = false
    :
349 |     HStack(spacing: 12) {
350 |       PhotosPicker(selection: $photoSelection, matching: .images) {
351 |         Label(customImageData == nil ? "Add Photo" : "Replace Photo", systemImage: "photo.badge.plus")
    |               `- warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
352 |       }
353 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
[120/123] Compiling ShaderCards ExplodableCardView.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/MinimalCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 11 |
 12 | /// The minimal card face: the artwork is the card.
 13 | struct MinimalCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 14 |   let card: CardModel
 15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/FullArtCardFace.swift:14:8: note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
 12 | /// The full-art card face: artwork bleeds to the card edges and the UI
 13 | /// chrome floats on frosted panels, like modern ultra-rare cards.
 14 | struct FullArtCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:artHidden:scrimsHidden:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 15 |   let card: CardModel
 16 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/StandardCardFace.swift:39:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 37 | /// frame-masked effects across the frame, so holo and reverse-holo
 38 | /// treatments land exactly where they would on a real card.
 39 | struct StandardCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 40 |   let card: CardModel
 41 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:layerMode:artTreatment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/TrainerCardFace.swift:12:8: note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
 10 |
 11 | /// The trainer card face (supporter / item / stadium).
 12 | struct TrainerCardFace: View {
    |        |- note: calls to initializer 'init(card:metrics:finish:layerMode:artTreatment:)' from outside of its actor context are implicitly asynchronous
    |        `- note: main actor isolation inferred from conformance to protocol 'View'
 13 |   let card: TrainerCardModel
 14 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         `- warning: call to main actor-isolated initializer 'init(card:metrics:finish:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Frames/EnergyCardFace.swift:13:8: note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
11 |
12 | /// The energy card face: bold, centered, iconic.
13 | struct EnergyCardFace: View {
   |        |- note: calls to initializer 'init(card:metrics:finish:)' from outside of its actor context are implicitly asynchronous
   |        `- note: main actor isolation inferred from conformance to protocol 'View'
14 |   let card: EnergyCardModel
15 |   let metrics: CardMetrics.Resolved
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:154:5: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
148 |
149 |   /// One full-bleed art layer, clipped to the card shape.
150 |   private static func fullBleedArt(
    |                       `- note: add '@MainActor' to make static method 'fullBleedArt(_:metrics:)' part of global actor 'MainActor'
151 |     _ art: CardArt,
152 |     metrics: CardMetrics.Resolved
153 |   ) -> some View {
154 |     CardArtView(art: art)
    |     `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 |       .frame(width: metrics.width, height: metrics.height)
156 |       .clipShape(RoundedRectangle(cornerRadius: metrics.cornerRadius))
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:180:7: warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 |     ZStack {
179 |       Color.clear
180 |       CardArtView(art: art)
    |       `- warning: call to main actor-isolated initializer 'init(art:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
182 |         .clipped()
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Model/CardArt.swift:72:10: note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
 70 |   let art: CardArt
 71 |
 72 |   public init(art: CardArt) {
    |          |- note: calls to initializer 'init(art:)' from outside of its actor context are implicitly asynchronous
    |          `- note: main actor isolation inferred from conformance to protocol 'View'
 73 |     self.art = art
 74 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:201:10: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
199 |         )
200 |         .blendMode(.screen)
201 |         .shader(effect)
    |          `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 |         .frame(width: metrics.artWindowRect.width, height: metrics.artWindowRect.height)
203 |         .position(x: metrics.artWindowRect.midX, y: metrics.artWindowRect.midY)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:219:8: warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
207 |
208 |   /// A foil pass covering the whole card.
209 |   private static func fullCardCarrier(
    |                       `- note: add '@MainActor' to make static method 'fullCardCarrier(effect:metrics:colors:)' part of global actor 'MainActor'
210 |     effect: ShaderEffect,
211 |     metrics: CardMetrics.Resolved,
    :
217 |       )
218 |       .blendMode(.screen)
219 |       .shader(effect)
    |        `- warning: call to main actor-isolated instance method 'shader(_:tilt:time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 |       .frame(width: metrics.width, height: metrics.height)
221 |   }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Modifiers/View+Shader.swift:31:8: note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 29 |   ///   - time: Optional time override (uses context if nil)
 30 |   /// - Returns: A view with the shader effect applied
 31 |   func shader(
    |        `- note: calls to instance method 'shader(_:tilt:time:)' from outside of its actor context are implicitly asynchronous
 32 |     _ effect: ShaderEffect,
 33 |     tilt: CGPoint? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardStudioView.swift:351:15: warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |     .black.opacity(0.40),
 55 |   ]
 56 |   @State private var customImageData: Data?
    |                      `- note: property declared here
 57 |   @State private var photoSelection: PhotosPickerItem?
 58 |   @State private var isImportingImageFile = false
    :
349 |     HStack(spacing: 12) {
350 |       PhotosPicker(selection: $photoSelection, matching: .images) {
351 |         Label(customImageData == nil ? "Add Photo" : "Replace Photo", systemImage: "photo.badge.plus")
    |               `- warning: main actor-isolated property 'customImageData' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
352 |       }
353 |
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:73:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 71 |       case .framed:
 72 |         layers.append(CardLayerExplodeLayer(id: "frame-base") {
 73 |           StandardCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 74 |             .frame(width: metrics.width, height: metrics.height)
 75 |         })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:87:11: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 85 |         }
 86 |         layers.append(CardLayerExplodeLayer(id: "chrome") {
 87 |           StandardCardFace(
    |           |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |           `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 88 |             card: model,
 89 |             metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:64:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 62 |           Group {
 63 |             if model.resolvedLayout(for: resolvedFinish) == .minimal {
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:66:15: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 64 |               MinimalCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
 65 |             } else {
 66 |               FullArtCardFace(card: model, metrics: metrics, finish: resolvedFinish, artHidden: true)
    |               |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |               `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |           }
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:100:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
 98 |     case .trainer(let model):
 99 |       layers.append(CardLayerExplodeLayer(id: "frame-base") {
100 |         TrainerCardFace(card: model, metrics: metrics, finish: resolvedFinish, layerMode: .frameOnly)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
101 |           .frame(width: metrics.width, height: metrics.height)
102 |       })
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:114:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
112 |       })
113 |       layers.append(CardLayerExplodeLayer(id: "chrome") {
114 |         TrainerCardFace(
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
115 |           card: model,
116 |           metrics: metrics,
/Users/admin/builder/spi-builder-workspace/Sources/ShaderCards/Views/CardLayerFactory.swift:126:9: warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
124 |     case .energy(let model):
125 |       layers.append(CardLayerExplodeLayer(id: "card-face") {
126 |         EnergyCardFace(card: model, metrics: metrics, finish: resolvedFinish)
    |         |- warning: sending 'metrics' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: sending task-isolated 'metrics' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
127 |           .frame(width: metrics.width, height: metrics.height)
128 |       })
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/4] Write swift-version-2F0A5646E1D333AE.txt
[2/20] Compiling ShaderKit View+Shader.swift
[3/20] Compiling ShaderKit Spring.swift
[4/20] Compiling ShaderKit ShaderKit.swift
[5/21] Compiling ShaderKit resource_bundle_accessor.swift
[6/21] Compiling ShaderKit TradingCardHoloStyle.swift
[7/21] Compiling ShaderKit ShaderModifier.swift
[8/21] Compiling ShaderKit HolographicInteractionMode.swift
[9/21] Compiling ShaderKit SimpleCardContent.swift
[10/21] Compiling ShaderKit ExplodedLayerView.swift
[11/21] Compiling ShaderKit HolographicCardContainer.swift
[12/21] Compiling ShaderKit ShaderContext.swift
[13/21] Compiling ShaderKit ShaderEffect.swift
[14/21] Compiling ShaderKit CardLayerExplodeContainer.swift
[15/21] Compiling ShaderKit CardLayer.swift
[16/21] Compiling ShaderKit CardLayerBuilder.swift
[17/21] Compiling ShaderKit ExplodableHolographicCard.swift
[18/21] Emitting module ShaderKit
[19/78] Compiling ShaderKitUI ShaderKitUI.swift
[20/78] Compiling ShaderKitUI SpringPhysics.swift
[21/78] Compiling ShaderKitUI JellyButton.swift
[22/78] Compiling ShaderKitUI ToneGenerator.swift
[23/78] Emitting module ShaderKitUI
[24/78] Compiling ShaderKitUI JellySwitch.swift
[25/78] Emitting module ShaderCards
[26/83] Compiling ShaderCards CardBuilder.swift
[27/83] Compiling ShaderCards ArtWindow.swift
[28/83] Compiling ShaderCards AttackRow.swift
[29/83] Compiling ShaderCards CardFooter.swift
[30/83] Compiling ShaderCards CardHeader.swift
[31/83] Compiling ShaderCards EnergyIcon.swift
[32/83] Compiling ShaderCards DrakeFigure.swift
[33/83] Compiling ShaderCards FishFigure.swift
[34/83] Compiling ShaderCards FoxFigure.swift
[35/83] Compiling ShaderCards GolemFigure.swift
[36/83] Compiling ShaderCards JellyFigure.swift
[37/83] Compiling ShaderCards MothFigure.swift
[38/83] Compiling ShaderCards ArtSceneSpec.swift
[39/83] Compiling ShaderCards ArtworkSpecs.swift
[40/83] Compiling ShaderCards ArtworkView.swift
[41/83] Compiling ShaderCards Backdrops.swift
[42/83] Compiling ShaderCards BirdFigure.swift
[43/83] Compiling ShaderCards CatFigure.swift
[44/83] Compiling ShaderCards SerpentFigure.swift
[45/83] Compiling ShaderCards TurtleFigure.swift
[46/83] Compiling ShaderCards WispFigure.swift
[47/83] Compiling ShaderCards WolfFigure.swift
[48/83] Compiling ShaderCards ParticleField.swift
[49/83] Compiling ShaderCards SceneRandom.swift
[50/83] Compiling ShaderCards CardAttack.swift
[51/83] Compiling ShaderCards CardFinish.swift
[52/83] Compiling ShaderCards CardLayout.swift
[53/83] Compiling ShaderCards CardModel.swift
[54/83] Compiling ShaderCards CardRarity.swift
[55/83] Compiling ShaderCards CardStage.swift
[56/83] Compiling ShaderCards ElementType.swift
[57/83] Compiling ShaderCards PremiumCardFinishes.swift
[58/83] Compiling ShaderCards TradingCardHoloFinishes.swift
[59/83] Compiling ShaderCards ShaderCards.swift
[60/83] Compiling ShaderCards RaritySymbolView.swift
[61/83] Compiling ShaderCards CardMetrics.swift
[62/83] Compiling ShaderCards CardTypography.swift
[63/83] Compiling ShaderCards ElementPalette.swift
[64/83] Compiling ShaderCards EnergyCardFace.swift
[65/83] Compiling ShaderCards FullArtCardFace.swift
[66/83] Compiling ShaderCards MinimalCardFace.swift
[67/83] Compiling ShaderCards StandardCardFace.swift
[68/83] Compiling ShaderCards TrainerCardFace.swift
[69/83] Compiling ShaderCards CardLibrary.swift
[70/83] Compiling ShaderCards PremiumMaterialEditions.swift
[71/83] Compiling ShaderCards SpecialEditions.swift
[72/83] Compiling ShaderCards TradingCardHoloEditions.swift
[73/83] Compiling ShaderCards Card.swift
[74/83] Compiling ShaderCards CardArt.swift
[75/83] Compiling ShaderCards CardArtwork.swift
[76/83] Compiling ShaderCards CardFaceView.swift
[77/83] Compiling ShaderCards CardGalleryView.swift
[78/83] Compiling ShaderCards CardLayerFactory.swift
[79/83] Compiling ShaderCards CardStudioView.swift
[80/83] Compiling ShaderCards ExplodableCardView.swift
[81/85] Emitting module ShaderCardsDemo
[82/85] Compiling ShaderCardsDemo ShaderCardsDemoApp.swift
[82/85] Write Objects.LinkFileList
[83/85] Linking ShaderCardsDemo
[84/85] Applying ShaderCardsDemo
Build complete! (11.00s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ShaderKit",
  "name" : "ShaderKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "ShaderKit",
      "targets" : [
        "ShaderKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderKitUI",
      "targets" : [
        "ShaderKitUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderCards",
      "targets" : [
        "ShaderCards"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShaderCardsDemo",
      "targets" : [
        "ShaderCardsDemo"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ShaderKitUI",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKitUI",
      "path" : "Sources/ShaderKitUI",
      "product_memberships" : [
        "ShaderKitUI"
      ],
      "sources" : [
        "Audio/ToneGenerator.swift",
        "Components/JellyButton.swift",
        "Components/JellySwitch.swift",
        "Physics/SpringPhysics.swift",
        "ShaderKitUI.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ShaderKitTests",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKitTests",
      "path" : "Tests/ShaderKitTests",
      "sources" : [
        "ShaderKitTests.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ShaderKit",
      "module_type" : "SwiftTarget",
      "name" : "ShaderKit",
      "path" : "Sources/ShaderKit",
      "product_memberships" : [
        "ShaderKit",
        "ShaderKitUI",
        "ShaderCards",
        "ShaderCardsDemo"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/AmazingRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BasicGlareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BlendedHoloShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/BubbleShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/CodexLogoShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/CosmosHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/DiagonalHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/DiamondGridShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/EtchedFoilShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/FoilEffectsShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/FrozenShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/GlassShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/HalftonePastelShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/IntenseBlingShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/JellyButtonShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/JellySwitchShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/LightsaberShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/LiquidTechShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/MaskedFoilShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/PolishedAluminumShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/PremiumMaterialShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RadialStarShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RadiantHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RainbowRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/RegularHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ReverseHoloShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ShaderUtilities.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ShinyRareShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SnowfallShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SpiralRingsShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/StarburstShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/SubtleGradientShader.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/ThermostatShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/TradingCardHoloShaders.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ShaderKit/Shaders/WaterShader.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Containers/CardLayerExplodeContainer.swift",
        "Containers/ExplodableCard/CardLayer.swift",
        "Containers/ExplodableCard/CardLayerBuilder.swift",
        "Containers/ExplodableCard/ExplodableHolographicCard.swift",
        "Containers/ExplodableCard/ExplodedLayerView.swift",
        "Containers/HolographicCardContainer.swift",
        "Containers/HolographicInteractionMode.swift",
        "Containers/SimpleCardContent.swift",
        "Effects/ShaderContext.swift",
        "Effects/ShaderEffect.swift",
        "Effects/TradingCardHoloStyle.swift",
        "Modifiers/ShaderModifier.swift",
        "Modifiers/View+Shader.swift",
        "ShaderKit.swift",
        "Utilities/Spring.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ShaderCardsTests",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCardsTests",
      "path" : "Tests/ShaderCardsTests",
      "sources" : [
        "ShaderCardsTests.swift",
        "SnapshotRenderTests.swift"
      ],
      "target_dependencies" : [
        "ShaderCards"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ShaderCardsDemo",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCardsDemo",
      "path" : "Sources/ShaderCardsDemo",
      "product_memberships" : [
        "ShaderCardsDemo"
      ],
      "sources" : [
        "ShaderCardsDemoApp.swift"
      ],
      "target_dependencies" : [
        "ShaderCards"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "ShaderCards",
      "module_type" : "SwiftTarget",
      "name" : "ShaderCards",
      "path" : "Sources/ShaderCards",
      "product_memberships" : [
        "ShaderCards",
        "ShaderCardsDemo"
      ],
      "sources" : [
        "Art/ArtSceneSpec.swift",
        "Art/ArtworkSpecs.swift",
        "Art/ArtworkView.swift",
        "Art/Backdrops.swift",
        "Art/Figures/BirdFigure.swift",
        "Art/Figures/CatFigure.swift",
        "Art/Figures/DrakeFigure.swift",
        "Art/Figures/FishFigure.swift",
        "Art/Figures/FoxFigure.swift",
        "Art/Figures/GolemFigure.swift",
        "Art/Figures/JellyFigure.swift",
        "Art/Figures/MothFigure.swift",
        "Art/Figures/SerpentFigure.swift",
        "Art/Figures/TurtleFigure.swift",
        "Art/Figures/WispFigure.swift",
        "Art/Figures/WolfFigure.swift",
        "Art/ParticleField.swift",
        "Art/SceneRandom.swift",
        "Builder/CardBuilder.swift",
        "Components/ArtWindow.swift",
        "Components/AttackRow.swift",
        "Components/CardFooter.swift",
        "Components/CardHeader.swift",
        "Components/EnergyIcon.swift",
        "Components/RaritySymbolView.swift",
        "Design/CardMetrics.swift",
        "Design/CardTypography.swift",
        "Design/ElementPalette.swift",
        "Frames/EnergyCardFace.swift",
        "Frames/FullArtCardFace.swift",
        "Frames/MinimalCardFace.swift",
        "Frames/StandardCardFace.swift",
        "Frames/TrainerCardFace.swift",
        "Library/CardLibrary.swift",
        "Library/PremiumMaterialEditions.swift",
        "Library/SpecialEditions.swift",
        "Library/TradingCardHoloEditions.swift",
        "Model/Card.swift",
        "Model/CardArt.swift",
        "Model/CardArtwork.swift",
        "Model/CardAttack.swift",
        "Model/CardFinish.swift",
        "Model/CardLayout.swift",
        "Model/CardModel.swift",
        "Model/CardRarity.swift",
        "Model/CardStage.swift",
        "Model/ElementType.swift",
        "Model/PremiumCardFinishes.swift",
        "Model/TradingCardHoloFinishes.swift",
        "ShaderCards.swift",
        "Views/CardFaceView.swift",
        "Views/CardGalleryView.swift",
        "Views/CardLayerFactory.swift",
        "Views/CardStudioView.swift",
        "Views/ExplodableCardView.swift"
      ],
      "target_dependencies" : [
        "ShaderKit"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.