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 PoliceDataKit, reference main (b189fa), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 16:02:27 UTC.

Swift 6 data race errors: 21

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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

   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[87/100] Compiling PoliceDataKit CrimesEndpoint.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 |     }
30 |
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 |     }
37 |
38 |     func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 |     }
43 |
44 |     func crimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |         forCategory categoryID: CrimeCategory.ID,
46 |         inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 |     }
58 |
59 |     func setCrimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 |         _ crimes: [Crime],
61 |         forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 |     }
73 |
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
   |          `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[88/100] Compiling PoliceDataKit Crime.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 |     }
30 |
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 |     }
37 |
38 |     func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 |     }
43 |
44 |     func crimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |         forCategory categoryID: CrimeCategory.ID,
46 |         inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 |     }
58 |
59 |     func setCrimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 |         _ crimes: [Crime],
61 |         forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 |     }
73 |
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
   |          `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[89/100] Compiling PoliceDataKit CrimeCategory.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 |     }
30 |
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 |     }
37 |
38 |     func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 |     }
43 |
44 |     func crimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |         forCategory categoryID: CrimeCategory.ID,
46 |         inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 |     }
58 |
59 |     func setCrimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 |         _ crimes: [Crime],
61 |         forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 |     }
73 |
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
   |          `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[90/100] Compiling PoliceDataKit CrimeLocationType.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 |     }
30 |
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 |     }
37 |
38 |     func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 |     }
43 |
44 |     func crimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |         forCategory categoryID: CrimeCategory.ID,
46 |         inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 |     }
58 |
59 |     func setCrimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 |         _ crimes: [Crime],
61 |         forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 |     }
73 |
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
   |          `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[91/100] Compiling PoliceDataKit CrimeCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 |     }
30 |
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 |     }
37 |
38 |     func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 |     }
43 |
44 |     func crimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |         forCategory categoryID: CrimeCategory.ID,
46 |         inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 |     }
58 |
59 |     func setCrimesWithNoLocation(
   |          `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 |         _ crimes: [Crime],
61 |         forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 |     }
73 |
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
   |          `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 |     }
80 |
81 |     func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
   |          `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
 23 | /// A model representing a crime.
 24 | ///
 25 | public struct Crime: Identifiable, Equatable, Codable {
    |               `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
 26 |
 27 |     /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | ///
 27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 28 | public final class CrimeService {
    |                    `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
 29 |
 30 |     ///
    :
 33 |     /// Use this object to interface to crime services in your application.
 34 |     ///
 35 |     public static let shared = CrimeService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
   |               `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 |     /// The default crime category which includes all crimes.
28 |     public static let `default` = CrimeCategory(
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |         id: "all-crime",
30 |         name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 |     func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 |         let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 |     }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 |             date: date
53 |         )
54 |         let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
   |                                             |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                             `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 |         return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 |         )
70 |
71 |         await cacheStore.set(crimes, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 |     }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 |     func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
76 |         let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
   |                                                      |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                                                      `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 |         return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 |         let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 |         await cacheStore.set(crimeCategories, for: cacheKey)
   |                          |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
   |                          `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 |     }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:124:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 |             }
123 |
124 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 |                 do {
126 |                     let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
127 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
128 |                 } catch let error {
129 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:201:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
199 |             }
200 |
201 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
202 |                 do {
203 |                     let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
204 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
205 |                 } catch let error {
206 |                     let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:305:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
303 |             }
304 |
305 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
306 |                 do {
307 |                     let crimes = try await self.crimes(at: coordinate, date: date)
    |                                            `- note: closure captures non-Sendable 'self'
308 |                     promise(.success(crimes))
    |                     `- note: closure captures non-Sendable 'promise'
309 |                 } catch let error {
310 |                     let crimeError = Self.mapToCrimeError(error)
[92/100] Compiling PoliceDataKit StopAndSearchDefaultCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[93/100] Compiling PoliceDataKit StopAndSearchesEndpoint.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[94/100] Compiling PoliceDataKit Gender.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[95/100] Compiling PoliceDataKit StopAndSearch.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[96/100] Compiling PoliceDataKit StopAndSearchType.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[97/100] Compiling PoliceDataKit StopAndSearchCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[98/100] Compiling PoliceDataKit StopAndSearchError.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[99/100] Compiling PoliceDataKit StopAndSearchService.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
[100/100] Compiling PoliceDataKit resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | ///
 31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
 32 | public final class StopAndSearchService {
    |                    `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
 33 |
 34 |     ///
    :
 37 |     /// Use this object to interface to stop and search services in your application.
 38 |     ///
 39 |     public static let shared = StopAndSearchService()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 |     static let apiClient: some APIClient = PoliceDataAPIClient(
   |                |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         baseURL: policeDataBaseURL,
32 |         urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |             }
128 |
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
132 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
133 |                 } catch let error {
134 |                     let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:200:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
198 |             }
199 |
200 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 |                 do {
202 |                     let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
    |                                                     `- note: closure captures non-Sendable 'self'
203 |                     promise(.success(stopAndSearches))
    |                     `- note: closure captures non-Sendable 'promise'
204 |                 } catch let error {
205 |                     let outcomeError = Self.mapToStopAndSearchError(error)
Build complete! (18.81s)
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "PoliceDataKit",
  "name" : "PoliceDataKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "PoliceDataKit",
      "targets" : [
        "PoliceDataKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PoliceDataKitTests",
      "module_type" : "SwiftTarget",
      "name" : "PoliceDataKitTests",
      "path" : "Tests/PoliceDataKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/case-history.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/contact-details-none.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/contact-details.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/coordinate-invalid.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/coordinate.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime-category.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime-location-types.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/data-set.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/engagement-method-empty-url.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/engagement-method.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/link-no-description.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/link.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/location-invalid-coordinate.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/location.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-empty-force-url.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-html-in-name.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-invalid-population.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-invalid-coordinates.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-null-coordinates.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-null-type.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-policing-team.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority-html.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority-no-action.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-reference.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-category.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-crime.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-status.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-force-reference.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-force.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-officer-nulls.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-officer.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/stop-and-search.json",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Availability/AvailabilityServiceTests.swift",
        "Availability/Cache/AvailabilityDefaultCacheTests.swift",
        "Availability/Cache/CachingKeys/AvailableDataSetsCachingKeyTests.swift",
        "Availability/Endpoints/AvailabilityEndpointTests.swift",
        "Availability/Mocks/AvailabilityMockCache.swift",
        "Availability/Models/DataSetTests.swift",
        "Cache/CacheItemTests.swift",
        "Cache/InMemoryCacheTests.swift",
        "Crimes/Cache/CachingKey/CrimeCategoriesCachingKeyTests.swift",
        "Crimes/Cache/CachingKey/CrimesForStreetCachingKeyTests.swift",
        "Crimes/Cache/CachingKey/CrimesWithNoLocationForCategoryInPoliceForceCachingKeyTests.swift",
        "Crimes/Cache/CrimeDefaultCacheTests.swift",
        "Crimes/CrimeServiceTests.swift",
        "Crimes/Endpoints/CrimesEndpointTests.swift",
        "Crimes/Mocks/CrimeMockCache.swift",
        "Crimes/Models/CrimeCategoryTests.swift",
        "Crimes/Models/CrimeLocationTypeTests.swift",
        "Crimes/Models/CrimeTests.swift",
        "Extensions/DateFormatter+PoliceDataAPITests.swift",
        "Extensions/JSONDecoderDateDecodingStrategy+PoliceDataAPITests.swift",
        "Extensions/StringHTMLTests.swift",
        "Extensions/URL+QueryItemTests.swift",
        "General/Models/ContactDetailsTests.swift",
        "General/Models/GenderTests.swift",
        "General/Models/LocationTests.swift",
        "General/Models/MKCoordinateRegionContainsCoordinateTests.swift",
        "General/Models/PoliceOfficerTests.swift",
        "Helpers/Data+LoadFromFile.swift",
        "Helpers/JSONDecoder+DecodeFromFile.swift",
        "Helpers/MockError.swift",
        "Helpers/URLProtocolMock.swift",
        "Helpers/URLSessionConfiguration+Mock.swift",
        "Helpers/XCTestCase+URLProtocolMock.swift",
        "Mocks/Cache/MockCache.swift",
        "Mocks/Client/MockAPIClient.swift",
        "Mocks/CoreLocation/CLLocationCoordinate2D+Mocks.swift",
        "Mocks/MapKit/MKCoordinateRegion+Mocks.swift",
        "Mocks/Models/CaseHistory+Mocks.swift",
        "Mocks/Models/ContactDetails+Mocks.swift",
        "Mocks/Models/Crime+Mocks.swift",
        "Mocks/Models/CrimeCategory+Mocks.swift",
        "Mocks/Models/CrimeLocationType+Mocks.swift",
        "Mocks/Models/DataSet+Mocks.swift",
        "Mocks/Models/EngagementMethod+Mocks.swift",
        "Mocks/Models/Link+Mocks.swift",
        "Mocks/Models/Location+Mocks.swift",
        "Mocks/Models/Neighbourhood+Mocks.swift",
        "Mocks/Models/NeighbourhoodLocation+Mocks.swift",
        "Mocks/Models/NeighbourhoodPolicingTeam+Mocks.swift",
        "Mocks/Models/NeighbourhoodPriority+Mocks.swift",
        "Mocks/Models/NeighbourhoodReference+Mocks.swift",
        "Mocks/Models/Outcome+Mocks.swift",
        "Mocks/Models/OutcomeCategory+Mocks.swift",
        "Mocks/Models/OutcomeCrime+Mocks.swift",
        "Mocks/Models/OutcomeStatus+Mocks.swift",
        "Mocks/Models/PoliceForce+Mocks.swift",
        "Mocks/Models/PoliceForceReference+Mocks.swift",
        "Mocks/Models/PoliceOfficer+Mocks.swift",
        "Mocks/Models/StopAndSearch+Mocks.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodBoundaryCachingKeyTests.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodCachingKeyTests.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodPoliceOfficersCachingKeyTests.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodPrioritiesCachingKeyTests.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodsInPoliceForceCachingKeyTests.swift",
        "Neighbourhoods/Cache/NeighbourhoodDefaultCacheTests.swift",
        "Neighbourhoods/Endpoints/NeighbourhoodsEndpointTests.swift",
        "Neighbourhoods/Mocks/NeighbourhoodMockCache.swift",
        "Neighbourhoods/Models/LinkTests.swift",
        "Neighbourhoods/Models/NeighbourhoodLocationTests.swift",
        "Neighbourhoods/Models/NeighbourhoodPolicingTeamTests.swift",
        "Neighbourhoods/Models/NeighbourhoodPriorityTests.swift",
        "Neighbourhoods/Models/NeighbourhoodReferenceTests.swift",
        "Neighbourhoods/Models/NeighbourhoodTests.swift",
        "Neighbourhoods/NeighbourhoodServiceTests.swift",
        "Networking/JSONSerialiserTests.swift",
        "Networking/MockURLProtocol.swift",
        "Networking/PoliceDataAPIClientTests.swift",
        "Outcomes/Cache/CachingKeys/OutcomesAtStreetLevelForStreetCachingKeyTests.swift",
        "Outcomes/Cache/CachingKeys/OutcomesForCrimeCachingKeyTests.swift",
        "Outcomes/Cache/OutcomeDefaultCacheTests.swift",
        "Outcomes/Endpoints/OutcomesEndpointTests.swift",
        "Outcomes/Mocks/OutcomeMockCache.swift",
        "Outcomes/Models/CaseHistoryTests.swift",
        "Outcomes/Models/OutcomeCategoryTests.swift",
        "Outcomes/Models/OutcomeCrimeTests.swift",
        "Outcomes/Models/OutcomeStatusDataModelTests.swift",
        "Outcomes/Models/OutcomeTests.swift",
        "Outcomes/OutcomeServiceTests.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForceCachingKeyTests.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForceSeniorOfficersCachingKeyTests.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForcesCachingKeyTests.swift",
        "PoliceForces/Cache/PoliceForceDefaultCacheTests.swift",
        "PoliceForces/Endpoints/PoliceForcesEndpointTests.swift",
        "PoliceForces/Mocks/PoliceForceMockCache.swift",
        "PoliceForces/Models/EngagementMethodTests.swift",
        "PoliceForces/Models/PoliceForceReferenceTests.swift",
        "PoliceForces/Models/PoliceForceTests.swift",
        "PoliceForces/PoliceForceServiceTests.swift",
        "StopsAndSearches/Cache/CachingKeys/StopAndSearchesAtLocationCachingKeyTests.swift",
        "StopsAndSearches/Cache/CachingKeys/StopAndSearchesForPoliceForceCachingKeyTests.swift",
        "StopsAndSearches/Cache/CachingKeys/StopAndSearchesWithNoLocationCachingKeyTests.swift",
        "StopsAndSearches/Cache/StopAndSearchDefaultCacheTests.swift",
        "StopsAndSearches/Endpoints/StopAndSearchesEndpointTests.swift",
        "StopsAndSearches/Mocks/StopAndSearchMockCache.swift",
        "StopsAndSearches/Models/StopAndSearchTests.swift",
        "StopsAndSearches/Models/StopAndSearchTypeTests.swift",
        "StopsAndSearches/StopAndSearchServiceTests.swift"
      ],
      "target_dependencies" : [
        "PoliceDataKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PoliceDataKit",
      "module_type" : "SwiftTarget",
      "name" : "PoliceDataKit",
      "path" : "Sources/PoliceDataKit",
      "product_memberships" : [
        "PoliceDataKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Resources/en.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "en"
            }
          }
        }
      ],
      "sources" : [
        "Availability/AvailabilityError.swift",
        "Availability/AvailabilityService.swift",
        "Availability/Cache/AvailabilityDefaultCache.swift",
        "Availability/Cache/CachingKeys/AvailableDataSetsCachingKey.swift",
        "Availability/Endpoints/AvailabilityEndpoint.swift",
        "Availability/Models/DataSet.swift",
        "Availability/Protocols/AvailabilityCache.swift",
        "Cache/CacheItem.swift",
        "Cache/InMemoryCache.swift",
        "Crimes/Cache/CachingKeys/CrimeCategoriesCachingKey.swift",
        "Crimes/Cache/CachingKeys/CrimesForStreetCachingKey.swift",
        "Crimes/Cache/CachingKeys/CrimesWithNoLocationForCategoryInPoliceForceCachingKey.swift",
        "Crimes/Cache/CrimeDefaultCache.swift",
        "Crimes/CrimeError.swift",
        "Crimes/CrimeService.swift",
        "Crimes/Endpoints/CrimesEndpoint.swift",
        "Crimes/Models/Crime.swift",
        "Crimes/Models/CrimeCategory.swift",
        "Crimes/Models/CrimeLocationType.swift",
        "Crimes/Protocols/CrimeCache.swift",
        "Extensions/DateFormatter+PoliceDataAPI.swift",
        "Extensions/JSONDecoder+PoliceDataAPI.swift",
        "Extensions/JSONDecoderDateDecodingStrategy+PoliceDataAPI.swift",
        "Extensions/String+HTML.swift",
        "Extensions/URL+QueryItem.swift",
        "General/Models/CLLocationCoordinate2D+Codable.swift",
        "General/Models/CLLocationCoordinate2D+CustomStringConvertible.swift",
        "General/Models/CLLocationCoordinate2D+Equatable.swift",
        "General/Models/ContactDetails.swift",
        "General/Models/Location.swift",
        "General/Models/MKCoordinateRegion+ContainsCLLocationCoordinate2D.swift",
        "General/Models/MKCoordinateRegion+Regions.swift",
        "General/Models/PoliceOfficer.swift",
        "General/Models/Street.swift",
        "General/Protocols/APIClient.swift",
        "General/Protocols/Cache.swift",
        "General/Protocols/CachingKey.swift",
        "General/Protocols/Endpoint.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodBoundaryCachingKey.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodCachingKey.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodPoliceOfficersCachingKey.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodPrioritiesCachingKey.swift",
        "Neighbourhoods/Cache/CachingKeys/NeighbourhoodsInPoliceForceCachingKey.swift",
        "Neighbourhoods/Cache/NeighbourhoodDefaultCache.swift",
        "Neighbourhoods/Endpoints/NeighbourhoodsEndpoint.swift",
        "Neighbourhoods/Models/Link.swift",
        "Neighbourhoods/Models/Neighbourhood.swift",
        "Neighbourhoods/Models/NeighbourhoodLocation.swift",
        "Neighbourhoods/Models/NeighbourhoodPolicingTeam.swift",
        "Neighbourhoods/Models/NeighbourhoodPriority.swift",
        "Neighbourhoods/Models/NeighbourhoodReference.swift",
        "Neighbourhoods/NeighbourhoodError.swift",
        "Neighbourhoods/NeighbourhoodService.swift",
        "Neighbourhoods/Protocols/NeighbourhoodCache.swift",
        "Networking/JSONSerialiser.swift",
        "Networking/PoliceDataAPIClient.swift",
        "Networking/Serialiser.swift",
        "Outcomes/Cache/CachingKeys/OutcomesAtStreetLevelForStreetCachingKey.swift",
        "Outcomes/Cache/CachingKeys/OutcomesForCrimeCachingKey.swift",
        "Outcomes/Cache/OutcomeDefaultCache.swift",
        "Outcomes/Endpoints/OutcomesEndpoint.swift",
        "Outcomes/Models/CaseHistory.swift",
        "Outcomes/Models/CaseHistoryCrime.swift",
        "Outcomes/Models/CaseHistoryOutcome.swift",
        "Outcomes/Models/Outcome.swift",
        "Outcomes/Models/OutcomeCategory.swift",
        "Outcomes/Models/OutcomeCrime.swift",
        "Outcomes/Models/OutcomeStatus.swift",
        "Outcomes/OutcomeError.swift",
        "Outcomes/OutcomeService.swift",
        "Outcomes/Protocols/OutcomeCache.swift",
        "PoliceDataKitFactory.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForceCachingKey.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForceSeniorOfficersCachingKey.swift",
        "PoliceForces/Cache/CachingKeys/PoliceForcesCachingKey.swift",
        "PoliceForces/Cache/PoliceForceDefaultCache.swift",
        "PoliceForces/Endpoints/PoliceForcesEndpoint.swift",
        "PoliceForces/Models/EngagementMethod.swift",
        "PoliceForces/Models/PoliceForce.swift",
        "PoliceForces/Models/PoliceForceReference.swift",
        "PoliceForces/PoliceForceError.swift",
        "PoliceForces/PoliceForceService.swift",
        "PoliceForces/Protocols/PoliceForceCache.swift",
        "StopAndSearches/Cache/CachingKeys/StopAndSearchesAtLocationCachingKey.swift",
        "StopAndSearches/Cache/CachingKeys/StopAndSearchesForPoliceForceCachingKey.swift",
        "StopAndSearches/Cache/CachingKeys/StopAndSearchesWithNoLocationCachingKey.swift",
        "StopAndSearches/Cache/StopAndSearchDefaultCache.swift",
        "StopAndSearches/Endpoints/StopAndSearchesEndpoint.swift",
        "StopAndSearches/Models/Gender.swift",
        "StopAndSearches/Models/StopAndSearch.swift",
        "StopAndSearches/Models/StopAndSearchType.swift",
        "StopAndSearches/Protocols/StopAndSearchCache.swift",
        "StopAndSearches/StopAndSearchError.swift",
        "StopAndSearches/StopAndSearchService.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "IntegrationTests",
      "module_type" : "SwiftTarget",
      "name" : "IntegrationTests",
      "path" : "Tests/IntegrationTests",
      "sources" : [
        "AvailabilityIntegrationTests.swift",
        "CrimeIntegrationTests.swift",
        "Helpers/Date+ISO8601.swift",
        "NeighbourhoodIntegrationTests.swift",
        "OutcomeIntegrationTests.swift",
        "PoliceForceIntegrationTests.swift",
        "StopAndSearchIntegrationTests.swift"
      ],
      "target_dependencies" : [
        "PoliceDataKit"
      ],
      "type" : "test"
    }
  ],
  "tools_version" : "5.9"
}
Done.