The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of SpanGrid, reference 0.0.4 (a10ca3), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 15:48:14 UTC.

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sherlouk/SpanGrid.git
Reference: 0.0.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sherlouk/SpanGrid
 * tag               0.0.4      -> FETCH_HEAD
HEAD is now at a10ca3c Improve Project Compatibility (#7)
Cloned https://github.com/sherlouk/SpanGrid.git
Revision (git rev-parse @):
a10ca3c4e3bf3697523bf4fd0c0854d3923dcbcd
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sherlouk/SpanGrid.git at 0.0.4
Fetching https://github.com/pointfreeco/swift-snapshot-testing.git from cache
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/pointfreeco/swift-snapshot-testing.git from cache (0.63s)
Fetched https://github.com/apple/swift-log.git from cache (0.63s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.4.2 (1.21s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing.git
Computed https://github.com/pointfreeco/swift-snapshot-testing.git at 1.9.0 (0.58s)
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing.git
Working copy of https://github.com/pointfreeco/swift-snapshot-testing.git resolved at 1.9.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.4.2
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "spangrid",
      "name": "SpanGrid",
      "url": "https://github.com/sherlouk/SpanGrid.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SpanGrid",
      "dependencies": [
        {
          "identity": "swift-log",
          "name": "swift-log",
          "url": "https://github.com/apple/swift-log.git",
          "version": "1.6.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/sherlouk/SpanGrid.git
[1/698] Fetching spangrid
Fetched https://github.com/sherlouk/SpanGrid.git from cache (1.29s)
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/apple/swift-log.git from cache (0.53s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (1.01s)
Creating working copy for https://github.com/sherlouk/SpanGrid.git
Working copy of https://github.com/sherlouk/SpanGrid.git resolved at 0.0.4 (a10ca3c)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.3
warning: '.resolve-product-dependencies': dependency 'spangrid' is not used by any target
Found 1 product dependencies
  - swift-log
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/sherlouk/SpanGrid.git
https://github.com/sherlouk/SpanGrid.git
{
  "dependencies" : [
    {
      "identity" : "swift-snapshot-testing",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.9.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    }
  ],
  "manifest_display_name" : "SpanGrid",
  "name" : "SpanGrid",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "SpanGrid",
      "targets" : [
        "SpanGrid"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SpanGridTests",
      "module_type" : "SwiftTarget",
      "name" : "SpanGridTests",
      "path" : "Tests",
      "product_dependencies" : [
        "SnapshotTesting"
      ],
      "sources" : [
        "SpanGridDynamicColumnSizeStrategyTests.swift",
        "SpanGridExampleImageGenerator.swift",
        "SpanGridKeyboardNavigationTests.swift",
        "SpanGridPerformanceTests.swift",
        "SpanGridRowSizeStrategyTests.swift",
        "SpanGridSpanTests.swift",
        "SpanGridWidthListenerTests.swift"
      ],
      "target_dependencies" : [
        "SpanGrid"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SpanGrid",
      "module_type" : "SwiftTarget",
      "name" : "SpanGrid",
      "path" : "Sources",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SpanGrid"
      ],
      "sources" : [
        "Business Logic/SpanGridDynamicColumnSizeStrategy.swift",
        "Business Logic/SpanGridKeyboardNavigation.swift",
        "Business Logic/SpanGridRowHeightStorage.swift",
        "Business Logic/SpanGridSpanIndexCalculator.swift",
        "Models/SpanGridCellMetadata.swift",
        "Models/SpanGridColumnSizeStrategy.swift",
        "Models/SpanGridData.swift",
        "Models/SpanGridKeyboardNavigationOptions.swift",
        "Models/SpanGridLayoutSize.swift",
        "Models/SpanGridRowSizeStrategy.swift",
        "Models/SpanGridTraitCollection.swift",
        "SpanGridWidthListener/SpanGridWidthListener+iOS+tvOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener+macOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener+watchOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener.swift",
        "Views/SpanGrid.swift",
        "Views/SpanGridDetermineRowHeight.swift",
        "Views/SpanGridKeyboardNavigationShortcuts.swift",
        "Views/SpanGridSpanView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/7] Compiling Logging Locks.swift
[5/7] Compiling Logging Logging.swift
[6/7] Compiling Logging LogHandler.swift
[7/7] Emitting module Logging
[8/26] Compiling SpanGrid SpanGridDetermineRowHeight.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 |     static var defaultValue: [Int: CGFloat] = [:]
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 |     static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[9/26] Compiling SpanGrid SpanGridKeyboardNavigationShortcuts.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 |     static var defaultValue: [Int: CGFloat] = [:]
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 |     static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[10/26] Compiling SpanGrid SpanGridWidthListener+macOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
   |                                                      `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
   |             `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
   |         `- note: requirement 'logger' declared here
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
   |             `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
   |         `- note: requirement 'lastKnownSize' declared here
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
   |             `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 |         override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
   |         `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
[11/26] Compiling SpanGrid SpanGridWidthListener+watchOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
   |                                                      `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
   |             `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
   |         `- note: requirement 'logger' declared here
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
   |             `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
   |         `- note: requirement 'lastKnownSize' declared here
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
   |             `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 |         override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
   |         `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
[12/27] Compiling SpanGrid SpanGridWidthListener.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:50:69: warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 |     }
26 |
27 |     func processNewSize(_ size: CGSize) {
   |          `- note: add '@MainActor' to make instance method 'processNewSize' part of global actor 'MainActor'
28 |         defer {
29 |             // No matter how we exit this function, lastKnownSize should be updated.
   :
48 |         }
49 |
50 |         NotificationCenter.default.post(name: SpanGridWidthListener.getPublisher().name, object: nil)
   |                                                                     `- warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
51 |         logger.trace("Triggered notification.", metadata: metadata)
52 |     }
   :
54 |
55 | extension SpanGridWidthListener {
56 |     static func getPublisher() -> NotificationCenter.Publisher {
   |                 |- note: calls to static method 'getPublisher()' from outside of its actor context are implicitly asynchronous
   |                 `- note: main actor isolation inferred from conformance to protocol 'NSViewControllerRepresentable'
57 |         NotificationCenter.default.publisher(for: Notification.Name(rawValue: "SpanGrid.SceneWidthChanged"))
58 |     }
[13/27] Compiling SpanGrid SpanGrid.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:50:69: warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 |     }
26 |
27 |     func processNewSize(_ size: CGSize) {
   |          `- note: add '@MainActor' to make instance method 'processNewSize' part of global actor 'MainActor'
28 |         defer {
29 |             // No matter how we exit this function, lastKnownSize should be updated.
   :
48 |         }
49 |
50 |         NotificationCenter.default.post(name: SpanGridWidthListener.getPublisher().name, object: nil)
   |                                                                     `- warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
51 |         logger.trace("Triggered notification.", metadata: metadata)
52 |     }
   :
54 |
55 | extension SpanGridWidthListener {
56 |     static func getPublisher() -> NotificationCenter.Publisher {
   |                 |- note: calls to static method 'getPublisher()' from outside of its actor context are implicitly asynchronous
   |                 `- note: main actor isolation inferred from conformance to protocol 'NSViewControllerRepresentable'
57 |         NotificationCenter.default.publisher(for: Notification.Name(rawValue: "SpanGrid.SceneWidthChanged"))
58 |     }
[14/27] Compiling SpanGrid SpanGridLayoutSize.swift
[15/27] Compiling SpanGrid SpanGridRowSizeStrategy.swift
[16/27] Compiling SpanGrid SpanGridCellMetadata.swift
[17/27] Compiling SpanGrid SpanGridColumnSizeStrategy.swift
[18/27] Compiling SpanGrid SpanGridData.swift
[19/27] Compiling SpanGrid SpanGridKeyboardNavigationOptions.swift
[20/27] Compiling SpanGrid SpanGridRowHeightStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:38:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 36 |
 37 |         var temporaryCache = [Int: Int]()
 38 |         temporaryCache.reserveCapacity(grid.data.count)
    |                                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 39 |
 40 |         var reverseCache = [Int: Int]()
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:42:43: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 40 |         var reverseCache = [Int: Int]()
 41 |         // reverseCache size will always be <= grid.data.count
 42 |         reverseCache.reserveCapacity(grid.data.count)
    |                                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 43 |
 44 |         var lastPartial = 0
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:47:40: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 45 |         var lastCellIndex = 0
 46 |
 47 |         let totalSpanIndex: Int = grid.data.reduce(0) { partialResult, gridData in
    |                                        `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 48 |             // Populate any gaps in the reverse lookup cache.
 49 |             // This is appropriate where the last cell had a span of more than 1.
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:65:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 63 |         }
 64 |
 65 |         temporaryCache[grid.data.count] = totalSpanIndex
    |                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 66 |         reverseCache[totalSpanIndex] = grid.data.count
 67 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:66:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 64 |
 65 |         temporaryCache[grid.data.count] = totalSpanIndex
 66 |         reverseCache[totalSpanIndex] = grid.data.count
    |                                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 67 |
 68 |         cache = temporaryCache
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:102:21: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |     }
 82 |
 83 |     func getSpanIndex(forItemWithOffset offset: Int, columnCount: Int) -> Int {
    |          `- note: add '@MainActor' to make instance method 'getSpanIndex(forItemWithOffset:columnCount:)' part of global actor 'MainActor'
 84 |         if columnCount == 1 {
 85 |             // Optimisation: In a single column grid there can never be a difference between item offset and span index.
    :
100 |         logger.warning("Cache was missed, calculating on the fly.")
101 |
102 |         return grid.data.prefix(offset).reduce(0) { partialResult, gridData in
    |                     `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 |             accumulateSpanIndex(partialResult: partialResult, gridData: gridData, columnCount: columnCount)
104 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
[21/27] Compiling SpanGrid SpanGridSpanIndexCalculator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:38:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 36 |
 37 |         var temporaryCache = [Int: Int]()
 38 |         temporaryCache.reserveCapacity(grid.data.count)
    |                                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 39 |
 40 |         var reverseCache = [Int: Int]()
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:42:43: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 40 |         var reverseCache = [Int: Int]()
 41 |         // reverseCache size will always be <= grid.data.count
 42 |         reverseCache.reserveCapacity(grid.data.count)
    |                                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 43 |
 44 |         var lastPartial = 0
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:47:40: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 45 |         var lastCellIndex = 0
 46 |
 47 |         let totalSpanIndex: Int = grid.data.reduce(0) { partialResult, gridData in
    |                                        `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 48 |             // Populate any gaps in the reverse lookup cache.
 49 |             // This is appropriate where the last cell had a span of more than 1.
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:65:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 63 |         }
 64 |
 65 |         temporaryCache[grid.data.count] = totalSpanIndex
    |                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 66 |         reverseCache[totalSpanIndex] = grid.data.count
 67 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:66:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 20 |     var reverseLookup: [Int: Int] = [:]
 21 |
 22 |     func precalculateSpanIndex(columnCount: Int) {
    |          `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
 23 |         guard cache.isEmpty || columnCount != lastColumnCount else {
 24 |             return
    :
 64 |
 65 |         temporaryCache[grid.data.count] = totalSpanIndex
 66 |         reverseCache[totalSpanIndex] = grid.data.count
    |                                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 67 |
 68 |         cache = temporaryCache
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:102:21: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |     }
 82 |
 83 |     func getSpanIndex(forItemWithOffset offset: Int, columnCount: Int) -> Int {
    |          `- note: add '@MainActor' to make instance method 'getSpanIndex(forItemWithOffset:columnCount:)' part of global actor 'MainActor'
 84 |         if columnCount == 1 {
 85 |             // Optimisation: In a single column grid there can never be a difference between item offset and span index.
    :
100 |         logger.warning("Cache was missed, calculating on the fly.")
101 |
102 |         return grid.data.prefix(offset).reduce(0) { partialResult, gridData in
    |                     `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 |             accumulateSpanIndex(partialResult: partialResult, gridData: gridData, columnCount: columnCount)
104 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
[22/27] Compiling SpanGrid SpanGridDynamicColumnSizeStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:23:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 15 |     private var currentSpanIndex: Int = 0
 16 |
 17 |     func setCurrentItem(newValue: Int) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'setCurrentItem(newValue:)' part of global actor 'MainActor'
 18 |         guard let grid = grid else {
 19 |             logger.error("Lost grid reference, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
    :
 21 |         }
 22 |
 23 |         guard (0 ..< grid.data.count).contains(newValue) else {
    |                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 24 |             logger.info("Value out of bounds, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
 25 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:61:33: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 59 |             let currentItem = strongSelf.currentItem ?? 0
 60 |             var mutableSpanIndex = strongSelf.currentSpanIndex
 61 |             let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
    |                                 `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 62 |
 63 |             let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:63:42: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 61 |             let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
 62 |
 63 |             let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
    |                                          `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |             let spanIndexOffset = mutableSpanIndex - originalSpanIndex
 65 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:66:35: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |             let spanIndexOffset = mutableSpanIndex - originalSpanIndex
 65 |
 66 |             let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(
    |                                   `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 67 |                 spanSize: spanSize,
 68 |                 columnCount: columnCount,
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:98:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 96 |             }
 97 |
 98 |             guard let newItem = grid.spanIndexCalculator.reverseLookup[mutableSpanIndex] else {
    |                                      `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 99 |                 strongSelf.logger.error("Unknown span index, ignoring. Input: '\(mutableSpanIndex)'.")
100 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:110:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
    |                               `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
112 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:115:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
113 |         }
114 |
115 |         guard (0 ..< grid.data.count).contains(item) else {
    |                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
116 |             logger.trace("Span index places item out of bounds, ignoring. Input: '\(spanIndex)=\(item)'.")
117 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:120:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
118 |         }
119 |
120 |         let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
    |                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
121 |
122 |         let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:122:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
120 |         let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
121 |
122 |         let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
    |                                      `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
123 |         let spanIndexOffset = spanIndex - originalSpanIndex
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:125:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
123 |         let spanIndexOffset = spanIndex - originalSpanIndex
124 |
125 |         let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(spanSize: spanSize, columnCount: columnCount, spanIndex: originalSpanIndex)
    |                               `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
126 |
127 |         if spanIndexOffset < spanPrefix {
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
[23/27] Compiling SpanGrid SpanGridKeyboardNavigation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:23:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 15 |     private var currentSpanIndex: Int = 0
 16 |
 17 |     func setCurrentItem(newValue: Int) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'setCurrentItem(newValue:)' part of global actor 'MainActor'
 18 |         guard let grid = grid else {
 19 |             logger.error("Lost grid reference, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
    :
 21 |         }
 22 |
 23 |         guard (0 ..< grid.data.count).contains(newValue) else {
    |                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 24 |             logger.info("Value out of bounds, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
 25 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:61:33: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 59 |             let currentItem = strongSelf.currentItem ?? 0
 60 |             var mutableSpanIndex = strongSelf.currentSpanIndex
 61 |             let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
    |                                 `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 62 |
 63 |             let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:63:42: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 61 |             let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
 62 |
 63 |             let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
    |                                          `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |             let spanIndexOffset = mutableSpanIndex - originalSpanIndex
 65 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:66:35: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |             let spanIndexOffset = mutableSpanIndex - originalSpanIndex
 65 |
 66 |             let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(
    |                                   `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 67 |                 spanSize: spanSize,
 68 |                 columnCount: columnCount,
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:98:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 96 |             }
 97 |
 98 |             guard let newItem = grid.spanIndexCalculator.reverseLookup[mutableSpanIndex] else {
    |                                      `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 99 |                 strongSelf.logger.error("Unknown span index, ignoring. Input: '\(mutableSpanIndex)'.")
100 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:110:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
    |                               `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
112 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:115:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
113 |         }
114 |
115 |         guard (0 ..< grid.data.count).contains(item) else {
    |                           `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
116 |             logger.trace("Span index places item out of bounds, ignoring. Input: '\(spanIndex)=\(item)'.")
117 |             return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:120:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
118 |         }
119 |
120 |         let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
    |                             `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
121 |
122 |         let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
 20 |
 21 |     /// An array containing all of the data for the grid.
 22 |     let data: [SpanGridData<Data>]
    |         `- note: property declared here
 23 |
 24 |     /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:122:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
120 |         let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
121 |
122 |         let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
    |                                      `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
123 |         let spanIndexOffset = spanIndex - originalSpanIndex
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:125:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |     }
108 |
109 |     func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
    |          `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 |         guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 |             logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
    :
123 |         let spanIndexOffset = spanIndex - originalSpanIndex
124 |
125 |         let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(spanSize: spanSize, columnCount: columnCount, spanIndex: originalSpanIndex)
    |                               `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
126 |
127 |         if spanIndexOffset < spanPrefix {
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
 36 |     /// Calculates the span index for each item in the grid.
 37 |     /// The "span index" is the sum of the column spans of all items before it.
 38 |     let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
    |         `- note: property declared here
 39 |
 40 |     /// Stores information about whether keyboard navigation is enabled, where supported.
[24/27] Emitting module SpanGrid
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
   |                                                      `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
   |             `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
   |         `- note: requirement 'logger' declared here
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 |     internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
   |             `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
   |         `- note: requirement 'lastKnownSize' declared here
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 |         let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 |         var lastKnownSize: CGSize?
15 |         let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
   |             `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 |         override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 |     var logger: Logger { get }
14 |     var lastKnownSize: CGSize? { get set }
15 |     var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
   |         `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 |     static var defaultValue: [Int: CGFloat] = [:]
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 |     static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[25/27] Compiling SpanGrid SpanGridTraitCollection.swift
[26/27] Compiling SpanGrid SpanGridWidthListener+iOS+tvOS.swift
[27/27] Compiling SpanGrid SpanGridSpanView.swift
Build complete! (11.63s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-snapshot-testing",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.9.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    }
  ],
  "manifest_display_name" : "SpanGrid",
  "name" : "SpanGrid",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "SpanGrid",
      "targets" : [
        "SpanGrid"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SpanGridTests",
      "module_type" : "SwiftTarget",
      "name" : "SpanGridTests",
      "path" : "Tests",
      "product_dependencies" : [
        "SnapshotTesting"
      ],
      "sources" : [
        "SpanGridDynamicColumnSizeStrategyTests.swift",
        "SpanGridExampleImageGenerator.swift",
        "SpanGridKeyboardNavigationTests.swift",
        "SpanGridPerformanceTests.swift",
        "SpanGridRowSizeStrategyTests.swift",
        "SpanGridSpanTests.swift",
        "SpanGridWidthListenerTests.swift"
      ],
      "target_dependencies" : [
        "SpanGrid"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SpanGrid",
      "module_type" : "SwiftTarget",
      "name" : "SpanGrid",
      "path" : "Sources",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SpanGrid"
      ],
      "sources" : [
        "Business Logic/SpanGridDynamicColumnSizeStrategy.swift",
        "Business Logic/SpanGridKeyboardNavigation.swift",
        "Business Logic/SpanGridRowHeightStorage.swift",
        "Business Logic/SpanGridSpanIndexCalculator.swift",
        "Models/SpanGridCellMetadata.swift",
        "Models/SpanGridColumnSizeStrategy.swift",
        "Models/SpanGridData.swift",
        "Models/SpanGridKeyboardNavigationOptions.swift",
        "Models/SpanGridLayoutSize.swift",
        "Models/SpanGridRowSizeStrategy.swift",
        "Models/SpanGridTraitCollection.swift",
        "SpanGridWidthListener/SpanGridWidthListener+iOS+tvOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener+macOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener+watchOS.swift",
        "SpanGridWidthListener/SpanGridWidthListener.swift",
        "Views/SpanGrid.swift",
        "Views/SpanGridDetermineRowHeight.swift",
        "Views/SpanGridKeyboardNavigationShortcuts.swift",
        "Views/SpanGridSpanView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.