The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Grape, reference main (bdfad7), with Swift 6.2 (beta) 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.