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 1.1.0 (48eb7d), with Swift 6.2 (beta) for macOS (SPM) on 22 Jun 2025 22:06:33 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: 1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/SwiftGraphs/Grape
 * tag               1.1.0      -> FETCH_HEAD
HEAD is now at 48eb7d8 Change base url
Cloned https://github.com/SwiftGraphs/Grape.git
Revision (git rev-parse @):
48eb7d8ab4ce549c6cdde106b5f7fa317421364c
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/SwiftGraphs/Grape.git at 1.1.0
========================================
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 CompositedForce.swift
[7/30] Compiling ForceSimulation EmptyForce.swift
[8/30] Compiling ForceSimulation KDTreeForce.swift
[9/32] Compiling ForceSimulation PositionForce.swift
[10/32] Compiling ForceSimulation RadialForce.swift
[11/32] Compiling ForceSimulation SealedForce2D.swift
[12/32] Compiling ForceSimulation EdgeID.swift
[13/32] Compiling ForceSimulation LinearCongruentialGenerator.swift
[14/32] Compiling ForceSimulation Kinetics.swift
[15/32] Compiling ForceSimulation Simulation.swift
[16/32] Compiling ForceSimulation KDTree.swift
[17/32] Compiling ForceSimulation KDTreeDelegate.swift
[18/32] Compiling ForceSimulation KDTreeNode.swift
[19/32] Compiling ForceSimulation SimulatableVector.swift
[20/32] Compiling ForceSimulation UnsafeArray.swift
[21/32] Compiling ForceSimulation AttributeDescriptor.swift
[22/32] Compiling ForceSimulation Disposable.swift
[23/32] Compiling ForceSimulation SealedForce3D.swift
[24/32] Compiling ForceSimulation BufferedKDTree.swift
[25/32] Compiling ForceSimulation KDBox.swift
[26/32] Compiling ForceSimulation LinkForce.swift
[27/32] Compiling ForceSimulation ManyBodyForce.swift
[28/32] Compiling ForceSimulation PackedForce.swift
[29/32] Compiling ForceSimulation ForceProtocol.swift
[30/32] Compiling ForceSimulation CenterForce.swift
[31/32] Compiling ForceSimulation CollideForce.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 _IdentifiableNever.swift
[39/81] Compiling Grape _OptionalGraphContent.swift
[40/81] Compiling Grape _PairedGraphContent.swift
[41/81] Compiling Grape ForceDescriptor.swift
[42/81] Compiling Grape GraphDragGesture.swift
[43/81] Compiling Grape AnyGraphContent.swift
[44/81] Compiling Grape GraphContent.swift
[45/81] Compiling Grape GraphContentBuilder.swift
[46/81] Compiling Grape LinkMark.swift
[47/81] Compiling Grape ModifiedGraphContent.swift
[48/81] Compiling Grape GraphMagnifyGesture.swift
[49/81] Compiling Grape GraphTapGesture.swift
[50/81] Compiling Grape AnyGraphContentModifier.swift
[51/81] Compiling Grape GrapeEffect.ForegroundStyle.swift
[52/81] Compiling Grape GrapeEffect.Label.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 GrapeEffect.Opacity.swift
[59/81] Compiling Grape GrapeEffect.Stroke.swift
[60/81] Compiling Grape GrapeEffect.Symbol.swift
[61/81] Compiling Grape GrapeEffect.SymbolSize.swift
[62/81] Compiling Grape GrapeEffect._LinkShape.swift
[63/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 |                 }
[64/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 |                 }
[65/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 |                 }
[66/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 |                 }
[67/81] Compiling Grape CoreGraphics+SIMD.swift
[68/81] Compiling Grape GraphProtocol.swift
[69/81] Compiling Grape KeyFrame.swift
[70/81] Compiling Grape LinkShape.swift
[71/81] Compiling Grape RasterizedViewStore.swift
[72/81] Compiling Grape GrapeEffect.swift
[73/81] Compiling Grape GraphContent+GraphContentModifiers.swift
[74/81] Compiling Grape GraphContentModifier.swift
[75/81] Compiling Grape GraphForegroundScale.swift
[76/81] Compiling Grape GraphProxy.swift
[77/81] Compiling Grape NodeMark.swift
[78/81] Compiling Grape Series.swift
[79/81] Compiling Grape _ArrayGraphContent.swift
[80/81] Compiling Grape _ConditionalGraphContent.swift
[81/81] Compiling Grape _EmptyGraphContent.swift
Build complete! (26.54s)
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.28s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.4 (3.75s)
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.28s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.86s)
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.