The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Grape, reference main (bdfad7), with Swift 6.2 for macOS (SPM) on 22 Jun 2025 22:07:38 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/SwiftGraphs/Grape.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/SwiftGraphs/Grape
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at bdfad75 Merge pull request #71 from RobertoRiquelme/main
Cloned https://github.com/SwiftGraphs/Grape.git
Revision (git rev-parse @):
bdfad750d2a973af48159119eaf90530d0e30ea7
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/SwiftGraphs/Grape.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/SwiftGraphs/Grape.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/5] Write sources
[4/5] Write swift-version-1EA4D86E10B52AF.txt
[6/30] Compiling ForceSimulation PositionForce.swift
[7/30] Compiling ForceSimulation RadialForce.swift
[8/30] Compiling ForceSimulation SealedForce2D.swift
[9/32] Compiling ForceSimulation Kinetics.swift
[10/32] Compiling ForceSimulation Simulation.swift
[11/32] Compiling ForceSimulation AttributeDescriptor.swift
[12/32] Compiling ForceSimulation Disposable.swift
[13/32] Compiling ForceSimulation EdgeID.swift
[14/32] Compiling ForceSimulation LinearCongruentialGenerator.swift
[15/32] Compiling ForceSimulation CompositedForce.swift
[16/32] Compiling ForceSimulation EmptyForce.swift
[17/32] Compiling ForceSimulation KDTreeForce.swift
[18/32] Compiling ForceSimulation SimulatableVector.swift
[19/32] Compiling ForceSimulation UnsafeArray.swift
[20/32] Compiling ForceSimulation SealedForce3D.swift
[21/32] Compiling ForceSimulation BufferedKDTree.swift
[22/32] Compiling ForceSimulation KDBox.swift
[23/32] Compiling ForceSimulation LinkForce.swift
[24/32] Compiling ForceSimulation ManyBodyForce.swift
[25/32] Compiling ForceSimulation PackedForce.swift
[26/32] Compiling ForceSimulation ForceProtocol.swift
[27/32] Compiling ForceSimulation CenterForce.swift
[28/32] Compiling ForceSimulation CollideForce.swift
[29/32] Compiling ForceSimulation KDTree.swift
[30/32] Compiling ForceSimulation KDTreeDelegate.swift
[31/32] Compiling ForceSimulation KDTreeNode.swift
[32/32] Emitting module ForceSimulation
[33/77] Emitting module Grape
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:291:20: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
291 |             switch stateMixinRef.ticksOnAppear {
    |                    `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
292 |             case .iteration(let count):
293 |                 simulationContext.storage.tick(ticks: .iteration(count))
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:290:28: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
288 |     @inlinable
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
    |                            `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
291 |             switch stateMixinRef.ticksOnAppear {
292 |             case .iteration(let count):
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:317:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:316:39: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
314 |             guard let self else { return }
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
    |                                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:319:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
320 |             }
321 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:318:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
319 |                 self?.continuouslyTrackingRunning()
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:332:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:331:29: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
329 |             _ = self.stateMixinRef.modelTransform
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
    |                             `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:334:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
335 |             }
336 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:333:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
334 |                 self?.continuouslyTrackingTransform()
335 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:401:35: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
399 |             repeats: true
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
    |                                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:400:19: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
398 |             withTimeInterval: 1.0 / ticksPerSecond,
399 |             repeats: true
400 |         ) { [weak self] _ in
    |                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:403:33: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
    |                                 `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
404 |                 }
405 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:402:41: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
    |                                         `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
403 |                     capturedSelf?.tick()
404 |                 }
[34/81] Compiling Grape GraphRenderingContext.swift
[35/81] Compiling Grape GraphRenderingStates.swift
[36/81] Compiling Grape RenderOperation.swift
[37/81] Compiling Grape SimulationContext.swift
[38/81] Compiling Grape GrapeEffect.Opacity.swift
[39/81] Compiling Grape GrapeEffect.Stroke.swift
[40/81] Compiling Grape GrapeEffect.Symbol.swift
[41/81] Compiling Grape GrapeEffect.SymbolSize.swift
[42/81] Compiling Grape GrapeEffect._LinkShape.swift
[43/81] Compiling Grape CoreGraphics+SIMD.swift
[44/81] Compiling Grape GraphProtocol.swift
[45/81] Compiling Grape KeyFrame.swift
[46/81] Compiling Grape LinkShape.swift
[47/81] Compiling Grape RasterizedViewStore.swift
[48/81] Compiling Grape _IdentifiableNever.swift
[49/81] Compiling Grape _OptionalGraphContent.swift
[50/81] Compiling Grape _PairedGraphContent.swift
[51/81] Compiling Grape ForceDescriptor.swift
[52/81] Compiling Grape GraphDragGesture.swift
[53/81] Compiling Grape Transform.swift
[54/81] Compiling Grape View+CGImage.swift
[55/81] Compiling Grape ForceDirectedGraph+View.swift
[56/81] Compiling Grape ForceDirectedGraph.swift
[57/81] Compiling Grape ForceDirectedGraphModel+Observation.swift
[58/81] Compiling Grape ForceDirectedGraphModel.findNode.swift
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:291:20: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
291 |             switch stateMixinRef.ticksOnAppear {
    |                    `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
292 |             case .iteration(let count):
293 |                 simulationContext.storage.tick(ticks: .iteration(count))
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:290:28: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
288 |     @inlinable
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
    |                            `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
291 |             switch stateMixinRef.ticksOnAppear {
292 |             case .iteration(let count):
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:317:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:316:39: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
314 |             guard let self else { return }
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
    |                                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:319:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
320 |             }
321 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:318:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
319 |                 self?.continuouslyTrackingRunning()
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:332:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:331:29: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
329 |             _ = self.stateMixinRef.modelTransform
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
    |                             `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:334:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
335 |             }
336 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:333:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
334 |                 self?.continuouslyTrackingTransform()
335 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:401:35: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
399 |             repeats: true
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
    |                                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:400:19: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
398 |             withTimeInterval: 1.0 / ticksPerSecond,
399 |             repeats: true
400 |         ) { [weak self] _ in
    |                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:403:33: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
    |                                 `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
404 |                 }
405 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:402:41: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
    |                                         `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
403 |                     capturedSelf?.tick()
404 |                 }
[59/81] Compiling Grape ForceDirectedGraphModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:291:20: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
291 |             switch stateMixinRef.ticksOnAppear {
    |                    `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
292 |             case .iteration(let count):
293 |                 simulationContext.storage.tick(ticks: .iteration(count))
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:290:28: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
288 |     @inlinable
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
    |                            `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
291 |             switch stateMixinRef.ticksOnAppear {
292 |             case .iteration(let count):
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:317:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:316:39: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
314 |             guard let self else { return }
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
    |                                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:319:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
320 |             }
321 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:318:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
319 |                 self?.continuouslyTrackingRunning()
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:332:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:331:29: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
329 |             _ = self.stateMixinRef.modelTransform
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
    |                             `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:334:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
335 |             }
336 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:333:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
334 |                 self?.continuouslyTrackingTransform()
335 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:401:35: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
399 |             repeats: true
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
    |                                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:400:19: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
398 |             withTimeInterval: 1.0 / ticksPerSecond,
399 |             repeats: true
400 |         ) { [weak self] _ in
    |                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:403:33: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
    |                                 `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
404 |                 }
405 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:402:41: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
    |                                         `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
403 |                     capturedSelf?.tick()
404 |                 }
[60/81] Compiling Grape ForceDirectedGraphState.swift
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:291:20: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
291 |             switch stateMixinRef.ticksOnAppear {
    |                    `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
292 |             case .iteration(let count):
293 |                 simulationContext.storage.tick(ticks: .iteration(count))
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:290:28: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
288 |     @inlinable
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
    |                            `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
291 |             switch stateMixinRef.ticksOnAppear {
292 |             case .iteration(let count):
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:317:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:316:39: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
314 |             guard let self else { return }
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
    |                                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:319:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
320 |             }
321 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:318:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
319 |                 self?.continuouslyTrackingRunning()
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:332:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:331:29: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
329 |             _ = self.stateMixinRef.modelTransform
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
    |                             `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:334:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
335 |             }
336 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:333:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
334 |                 self?.continuouslyTrackingTransform()
335 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:401:35: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
399 |             repeats: true
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
    |                                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:400:19: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
398 |             withTimeInterval: 1.0 / ticksPerSecond,
399 |             repeats: true
400 |         ) { [weak self] _ in
    |                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:403:33: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
    |                                 `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
404 |                 }
405 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:402:41: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
    |                                         `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
403 |                     capturedSelf?.tick()
404 |                 }
[61/81] Compiling Grape GraphLayoutInputs.swift
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:291:20: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
291 |             switch stateMixinRef.ticksOnAppear {
    |                    `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
292 |             case .iteration(let count):
293 |                 simulationContext.storage.tick(ticks: .iteration(count))
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:290:28: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
288 |     @inlinable
289 |     func trackStateMixin() {
290 |         Task { @MainActor [self] in
    |                            `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
291 |             switch stateMixinRef.ticksOnAppear {
292 |             case .iteration(let count):
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:317:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:316:39: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
314 |             guard let self else { return }
315 |             self.updateModelRunningState(isRunning: self.stateMixinRef.isRunning)
316 |         } onChange: { @Sendable [weak self] in
    |                                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:319:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
319 |                 self?.continuouslyTrackingRunning()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
320 |             }
321 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:318:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
316 |         } onChange: { @Sendable [weak self] in
317 |             guard let self else { return }
318 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
319 |                 self?.continuouslyTrackingRunning()
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:332:23: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
    |                       `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:331:29: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
329 |             _ = self.stateMixinRef.modelTransform
330 |             // stateMixinRef.access(keyPath: \.modelTransform)
331 |         } onChange: { [weak self] in
    |                             `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:334:21: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
334 |                 self?.continuouslyTrackingTransform()
    |                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
335 |             }
336 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:333:37: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
331 |         } onChange: { [weak self] in
332 |             guard let self else { return }
333 |             Task { @MainActor [weak self] in
    |                                     `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
334 |                 self?.continuouslyTrackingTransform()
335 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:401:35: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
399 |             repeats: true
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
    |                                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:400:19: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
398 |             withTimeInterval: 1.0 / ticksPerSecond,
399 |             repeats: true
400 |         ) { [weak self] _ in
    |                   `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:403:33: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
403 |                     capturedSelf?.tick()
    |                                 `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
404 |                 }
405 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Grape/Views/ForceDirectedGraphModel.swift:402:41: warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
400 |         ) { [weak self] _ in
401 |             if let capturedSelf = self {
402 |                 Task { @MainActor [weak capturedSelf] in
    |                                         `- warning: capture of non-sendable type 'NodeID.Type' in an isolated closure; this is an error in the Swift 6 language mode
403 |                     capturedSelf?.tick()
404 |                 }
[62/81] Compiling Grape GraphMagnifyGesture.swift
[63/81] Compiling Grape GraphTapGesture.swift
[64/81] Compiling Grape AnyGraphContentModifier.swift
[65/81] Compiling Grape GrapeEffect.ForegroundStyle.swift
[66/81] Compiling Grape GrapeEffect.Label.swift
[67/81] Compiling Grape NodeMark.swift
[68/81] Compiling Grape Series.swift
[69/81] Compiling Grape _ArrayGraphContent.swift
[70/81] Compiling Grape _ConditionalGraphContent.swift
[71/81] Compiling Grape _EmptyGraphContent.swift
[72/81] Compiling Grape AnyGraphContent.swift
[73/81] Compiling Grape GraphContent.swift
[74/81] Compiling Grape GraphContentBuilder.swift
[75/81] Compiling Grape LinkMark.swift
[76/81] Compiling Grape ModifiedGraphContent.swift
[77/81] Compiling Grape GrapeEffect.swift
[78/81] Compiling Grape GraphContent+GraphContentModifiers.swift
[79/81] Compiling Grape GraphContentModifier.swift
[80/81] Compiling Grape GraphForegroundScale.swift
[81/81] Compiling Grape GraphProxy.swift
Build complete! (25.69s)
Fetching https://github.com/apple/swift-docc-plugin
[1/2082] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (1.09s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.4 (3.48s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3415] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.11s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.65s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.4
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.3",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Grape",
  "name" : "Grape",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "ForceSimulation",
      "targets" : [
        "ForceSimulation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Grape",
      "targets" : [
        "Grape"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "KDTreeTests",
      "module_type" : "SwiftTarget",
      "name" : "KDTreeTests",
      "path" : "Tests/KDTreeTests",
      "sources" : [
        "BufferedKDTreeTests.swift",
        "KDTreeTests.swift"
      ],
      "target_dependencies" : [
        "ForceSimulation"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GrapeTests",
      "module_type" : "SwiftTarget",
      "name" : "GrapeTests",
      "path" : "Tests/GrapeTests",
      "sources" : [
        "ContentBuilderTests.swift",
        "GraphContentBuilderTests.swift"
      ],
      "target_dependencies" : [
        "Grape"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Grape",
      "module_type" : "SwiftTarget",
      "name" : "Grape",
      "path" : "Sources/Grape",
      "product_memberships" : [
        "Grape"
      ],
      "sources" : [
        "Contents/AnyGraphContent.swift",
        "Contents/GraphContent.swift",
        "Contents/GraphContentBuilder.swift",
        "Contents/LinkMark.swift",
        "Contents/ModifiedGraphContent.swift",
        "Contents/NodeMark.swift",
        "Contents/Series.swift",
        "Contents/_ArrayGraphContent.swift",
        "Contents/_ConditionalGraphContent.swift",
        "Contents/_EmptyGraphContent.swift",
        "Contents/_IdentifiableNever.swift",
        "Contents/_OptionalGraphContent.swift",
        "Contents/_PairedGraphContent.swift",
        "Descriptors/ForceDescriptor.swift",
        "Gestures/GraphDragGesture.swift",
        "Gestures/GraphMagnifyGesture.swift",
        "Gestures/GraphTapGesture.swift",
        "Modifiers/AnyGraphContentModifier.swift",
        "Modifiers/Effects/GrapeEffect.ForegroundStyle.swift",
        "Modifiers/Effects/GrapeEffect.Label.swift",
        "Modifiers/Effects/GrapeEffect.Opacity.swift",
        "Modifiers/Effects/GrapeEffect.Stroke.swift",
        "Modifiers/Effects/GrapeEffect.Symbol.swift",
        "Modifiers/Effects/GrapeEffect.SymbolSize.swift",
        "Modifiers/Effects/GrapeEffect._LinkShape.swift",
        "Modifiers/Effects/GrapeEffect.swift",
        "Modifiers/GraphContent+GraphContentModifiers.swift",
        "Modifiers/GraphContentModifier.swift",
        "Modifiers/GraphForegroundScale.swift",
        "Modifiers/GraphProxy.swift",
        "Utils/CoreGraphics+SIMD.swift",
        "Utils/GraphProtocol.swift",
        "Utils/KeyFrame.swift",
        "Utils/LinkShape.swift",
        "Utils/RasterizedViewStore.swift",
        "Utils/Transform.swift",
        "Utils/View+CGImage.swift",
        "Views/ForceDirectedGraph+View.swift",
        "Views/ForceDirectedGraph.swift",
        "Views/ForceDirectedGraphModel+Observation.swift",
        "Views/ForceDirectedGraphModel.findNode.swift",
        "Views/ForceDirectedGraphModel.swift",
        "Views/ForceDirectedGraphState.swift",
        "Views/GraphLayoutInputs.swift",
        "Views/GraphRenderingContext.swift",
        "Views/GraphRenderingStates.swift",
        "Views/RenderOperation.swift",
        "Views/SimulationContext.swift"
      ],
      "target_dependencies" : [
        "ForceSimulation"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ForceSimulationTests",
      "module_type" : "SwiftTarget",
      "name" : "ForceSimulationTests",
      "path" : "Tests/ForceSimulationTests",
      "sources" : [
        "ForceTests.swift",
        "GKTreeCompareTest.swift",
        "MiserableData.swift",
        "MiserableGraphTest.swift"
      ],
      "target_dependencies" : [
        "ForceSimulation"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ForceSimulation",
      "module_type" : "SwiftTarget",
      "name" : "ForceSimulation",
      "path" : "Sources/ForceSimulation",
      "product_memberships" : [
        "ForceSimulation",
        "Grape"
      ],
      "sources" : [
        "ForceProtocol.swift",
        "Forces/CenterForce.swift",
        "Forces/CollideForce.swift",
        "Forces/CompositedForce.swift",
        "Forces/EmptyForce.swift",
        "Forces/KDTreeForce.swift",
        "Forces/LinkForce.swift",
        "Forces/ManyBodyForce.swift",
        "Forces/PackedForce.swift",
        "Forces/PositionForce.swift",
        "Forces/RadialForce.swift",
        "Forces/SealedForce2D.swift",
        "Forces/SealedForce3D.swift",
        "KDTree/BufferedKDTree.swift",
        "KDTree/KDBox.swift",
        "KDTree/KDTree.swift",
        "KDTree/KDTreeDelegate.swift",
        "KDTree/KDTreeNode.swift",
        "Kinetics.swift",
        "Simulation.swift",
        "Utils/AttributeDescriptor.swift",
        "Utils/Disposable.swift",
        "Utils/EdgeID.swift",
        "Utils/LinearCongruentialGenerator.swift",
        "Utils/SimulatableVector.swift",
        "Utils/UnsafeArray.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.