field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

commit 8b04aa206ac105ca393a0b0a8481470f1c93bcd6
parent f670f54ca0391a975238f329a59e518d4625c69a
Author: triesap <tyson@radroots.org>
Date:   Mon, 10 Aug 2026 20:58:52 +0000

feat: integrate native add operations

Diffstat:
MCargo.lock | 36++++++++++++++++++------------------
MCargo.toml | 2+-
MPackage.resolved | 2+-
MPackage.swift | 2+-
MRadroots.xcodeproj/project.pbxproj | 2+-
MRadroots.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2+-
MRadroots/App/RadrootsAppModel.swift | 551++++++++++++++++++++++++++++++++++++++++---------------------------------------
MRadroots/Runtime/RadrootsAddMediaCoordinator.swift | 520+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
MRadroots/Runtime/RadrootsGeneratedRuntimeBackend.swift | 2085++++++++++++++++++++++++++++++++++++++++++-------------------------------------
MRadroots/Runtime/RadrootsLifecycleCoordinator.swift | 705+++++++++++++++++++++++++++++++++++++++++--------------------------------------
MRadroots/Runtime/RadrootsRuntimeClient.swift | 2072+++++++++++++++++++++++++++++++++++++++++--------------------------------------
MRadroots/Runtime/RadrootsRuntimeModels.swift | 1356+++++++++++++++++++++++++++++++++++++++++--------------------------------------
MRadroots/State/RadrootsAddStore.swift | 1241+++++++++++++++++++++++++++++++++++++++++--------------------------------------
MRadroots/Views/RadrootsAddView.swift | 728++++++++++++++++++++++++++++++++++++++++---------------------------------------
MRadroots/Views/RadrootsSupportingViews.swift | 758++++++++++++++++++++++++++++++++++++++++---------------------------------------
MRadroots/Views/RadrootsTodayView.swift | 647++++++++++++++++++++++++++++++++++++++++---------------------------------------
MRadrootsFFI/api/RadrootsKitBindings.symbols.json | 2+-
MRadrootsFFI/provenance.json | 8++++----
MRadrootsFFI/source.lock | 16++++++++--------
MRadrootsTests/RadrootsAddStoreTests.swift | 1601++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
MRadrootsTests/RadrootsLifecycleTests.swift | 302++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mproject.yml | 2+-
Mradroots.lib.source-lock.v1.toml | 6+++---
23 files changed, 6735 insertions(+), 5911 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -1654,7 +1654,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "radroots_blossom" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "mediatype", "serde", @@ -1666,7 +1666,7 @@ dependencies = [ [[package]] name = "radroots_core" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "rust_decimal", "serde", @@ -1675,7 +1675,7 @@ dependencies = [ [[package]] name = "radroots_event" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "hex", "jiff-tzdb", @@ -1693,7 +1693,7 @@ dependencies = [ [[package]] name = "radroots_event_codec" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "hex", "radroots_blossom", @@ -1710,7 +1710,7 @@ dependencies = [ [[package]] name = "radroots_identity" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "k256", "serde", @@ -1727,7 +1727,7 @@ dependencies = [ [[package]] name = "radroots_mobile_core" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "chrono", "hex", @@ -1754,7 +1754,7 @@ dependencies = [ [[package]] name = "radroots_mobile_ffi" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "async-trait", "hex", @@ -1776,7 +1776,7 @@ dependencies = [ [[package]] name = "radroots_nostr" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "base64", "nostr", @@ -1792,7 +1792,7 @@ dependencies = [ [[package]] name = "radroots_protocol" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "serde", ] @@ -1800,7 +1800,7 @@ dependencies = [ [[package]] name = "radroots_sdk" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "radroots_blossom", "radroots_core", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "radroots_secrets" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "chacha20poly1305", "sha2", @@ -1836,7 +1836,7 @@ dependencies = [ [[package]] name = "radroots_signing" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "hex", "radroots_event", @@ -1850,7 +1850,7 @@ dependencies = [ [[package]] name = "radroots_storage" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "radroots_event", "radroots_event_codec", @@ -1864,7 +1864,7 @@ dependencies = [ [[package]] name = "radroots_storage_sqlite" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "fs2", "radroots_event", @@ -1881,7 +1881,7 @@ dependencies = [ [[package]] name = "radroots_sync" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "radroots_event", "radroots_event_codec", @@ -1896,7 +1896,7 @@ dependencies = [ [[package]] name = "radroots_trade" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "hex", "radroots_core", @@ -1910,7 +1910,7 @@ dependencies = [ [[package]] name = "radroots_transport" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "radroots_event", "radroots_identity", @@ -1922,7 +1922,7 @@ dependencies = [ [[package]] name = "radroots_transport_nostr" version = "0.1.0-alpha" -source = "git+https://github.com/radrootslabs/lib?rev=828c462255b52a3d9bbfe8ef90b7bc38395bedfa#828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +source = "git+https://github.com/radrootslabs/lib?rev=18973e0aa62ae809b0495d5812b0c5ac8c7774ff#18973e0aa62ae809b0495d5812b0c5ac8c7774ff" dependencies = [ "async-wsocket", "futures", diff --git a/Cargo.toml b/Cargo.toml @@ -23,4 +23,4 @@ todo = "deny" unimplemented = "deny" [workspace.dependencies] -radroots_mobile_ffi = { git = "https://github.com/radrootslabs/lib", rev = "828c462255b52a3d9bbfe8ef90b7bc38395bedfa", version = "=0.1.0-alpha" } +radroots_mobile_ffi = { git = "https://github.com/radrootslabs/lib", rev = "18973e0aa62ae809b0495d5812b0c5ac8c7774ff", version = "=0.1.0-alpha" } diff --git a/Package.resolved b/Package.resolved @@ -6,7 +6,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/radrootslabs/apple_kit.git", "state" : { - "revision" : "bd8242d04357adb1d37bf519458a866caf92cd3d" + "revision" : "dc770ec0b94a9b7ab245dba7ab8d5e46f65c109e" } }, { diff --git a/Package.swift b/Package.swift @@ -13,7 +13,7 @@ let package = Package( dependencies: [ .package( url: "https://github.com/radrootslabs/apple_kit.git", - revision: "bd8242d04357adb1d37bf519458a866caf92cd3d" + revision: "dc770ec0b94a9b7ab245dba7ab8d5e46f65c109e" ), ], targets: [ diff --git a/Radroots.xcodeproj/project.pbxproj b/Radroots.xcodeproj/project.pbxproj @@ -647,7 +647,7 @@ repositoryURL = "https://github.com/radrootslabs/apple_kit.git"; requirement = { kind = revision; - revision = bd8242d04357adb1d37bf519458a866caf92cd3d; + revision = dc770ec0b94a9b7ab245dba7ab8d5e46f65c109e; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/Radroots.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Radroots.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,7 +6,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/radrootslabs/apple_kit.git", "state" : { - "revision" : "bd8242d04357adb1d37bf519458a866caf92cd3d" + "revision" : "dc770ec0b94a9b7ab245dba7ab8d5e46f65c109e" } }, { diff --git a/Radroots/App/RadrootsAppModel.swift b/Radroots/App/RadrootsAppModel.swift @@ -3,309 +3,322 @@ import RadrootsKit @MainActor final class RadrootsAppModel: ObservableObject { - typealias Phase = RadrootsSessionPhase + typealias Phase = RadrootsSessionPhase - @Published private(set) var phase: Phase = .starting - private(set) var todayStore: RadrootsTodayStore? - private(set) var addStore: RadrootsAddStore? - private(set) var searchStore: RadrootsSearchStore? - private(set) var meStore: RadrootsMeStore? - let diagnosticsStore: RadrootsDiagnosticsStore + @Published private(set) var phase: Phase = .starting + private(set) var todayStore: RadrootsTodayStore? + private(set) var addStore: RadrootsAddStore? + private(set) var searchStore: RadrootsSearchStore? + private(set) var meStore: RadrootsMeStore? + let diagnosticsStore: RadrootsDiagnosticsStore - private let sessionStore: RadrootsSessionStore? - private let bootstrapFailure: RadrootsRuntimeFailure? - private let lifecycleCoordinator: RadrootsLifecycleCoordinator - private var generation: UInt64 = 0 - private var lifecycleRegistered = false - private var sessionOperationsInFlight = 0 - private var resumePending = false - private let isShellUITest: Bool + private let sessionStore: RadrootsSessionStore? + private let bootstrapFailure: RadrootsRuntimeFailure? + private let lifecycleCoordinator: RadrootsLifecycleCoordinator + private var generation: UInt64 = 0 + private var lifecycleRegistered = false + private var sessionOperationsInFlight = 0 + private var resumePending = false + private let isShellUITest: Bool - init( - sessionStore: RadrootsSessionStore? = nil, - runtimeClient: RadrootsRuntimeClient? = nil, - lifecycleCoordinator requestedLifecycleCoordinator: RadrootsLifecycleCoordinator? = nil - ) { - let lifecycleCoordinator = - requestedLifecycleCoordinator - ?? Bundle.main.bundleIdentifier.flatMap { - try? RadrootsLifecycleCoordinator.production(bundleIdentifier: $0) - } - ?? RadrootsLifecycleCoordinator.disabled() - self.lifecycleCoordinator = lifecycleCoordinator - diagnosticsStore = RadrootsDiagnosticsStore(coordinator: lifecycleCoordinator) - #if DEBUG - if ProcessInfo.processInfo.environment["RADROOTS_IOS_UI_TEST_SHELL"] == "1" { - self.sessionStore = nil - todayStore = nil - addStore = nil - searchStore = nil - meStore = nil - bootstrapFailure = nil - isShellUITest = true - phase = .running(.shellUITest) - return - } - #endif - isShellUITest = false - if let sessionStore { - self.sessionStore = sessionStore - todayStore = runtimeClient.map { RadrootsTodayStore(runtimeClient: $0) } - addStore = runtimeClient.map { RadrootsAddStore(runtimeClient: $0) } - searchStore = runtimeClient.map { RadrootsSearchStore(runtimeClient: $0) } - meStore = runtimeClient.map { RadrootsMeStore(runtimeClient: $0) } - bootstrapFailure = nil - } else { - do { - let runtimeClient = runtimeClient ?? .production() - let sessionStore = try RadrootsSessionStore.production( - runtimeClient: runtimeClient - ) - let mediaCoordinator = try Self.productionMediaCoordinator() - self.sessionStore = sessionStore - todayStore = RadrootsTodayStore(runtimeClient: runtimeClient) - addStore = RadrootsAddStore( - runtimeClient: runtimeClient, - media: mediaCoordinator - ) - searchStore = RadrootsSearchStore(runtimeClient: runtimeClient) - meStore = RadrootsMeStore(runtimeClient: runtimeClient) - bootstrapFailure = nil - } catch let error as LocalizedError { - self.sessionStore = nil - todayStore = nil - addStore = nil - searchStore = nil - meStore = nil - bootstrapFailure = .local( - operation: "app.bootstrap", - code: "ios.app.configuration_invalid", - safeMessage: error.errorDescription ?? "Radroots configuration is invalid." - ) - } catch { - self.sessionStore = nil - todayStore = nil - addStore = nil - searchStore = nil - meStore = nil - bootstrapFailure = .local( - operation: "app.bootstrap", - code: "ios.app.configuration_invalid", - safeMessage: "Radroots configuration is invalid." - ) - } - } + init( + sessionStore: RadrootsSessionStore? = nil, + runtimeClient: RadrootsRuntimeClient? = nil, + lifecycleCoordinator requestedLifecycleCoordinator: RadrootsLifecycleCoordinator? = nil + ) { + let productionServices = Bundle.main.bundleIdentifier.flatMap { + try? RadrootsLifecycleCoordinator.productionServices(bundleIdentifier: $0) } - - func start() async { - await ensureLifecycleRegistration() - await lifecycleCoordinator.record("ios.lifecycle.start_requested") - await run(name: "start", showsStarting: true) { store in await store.start() } + let lifecycleCoordinator = + requestedLifecycleCoordinator + ?? productionServices?.coordinator + ?? RadrootsLifecycleCoordinator.disabled() + let backgroundTransfer = + requestedLifecycleCoordinator == nil + ? productionServices?.backgroundTransfer : nil + self.lifecycleCoordinator = lifecycleCoordinator + diagnosticsStore = RadrootsDiagnosticsStore(coordinator: lifecycleCoordinator) + #if DEBUG + if ProcessInfo.processInfo.environment["RADROOTS_IOS_UI_TEST_SHELL"] == "1" { + self.sessionStore = nil + todayStore = nil + addStore = nil + searchStore = nil + meStore = nil + bootstrapFailure = nil + isShellUITest = true + phase = .running(.shellUITest) + return + } + #endif + isShellUITest = false + if let sessionStore { + self.sessionStore = sessionStore + todayStore = runtimeClient.map { RadrootsTodayStore(runtimeClient: $0) } + addStore = runtimeClient.map { RadrootsAddStore(runtimeClient: $0) } + searchStore = runtimeClient.map { RadrootsSearchStore(runtimeClient: $0) } + meStore = runtimeClient.map { RadrootsMeStore(runtimeClient: $0) } + bootstrapFailure = nil + } else { + do { + let runtimeClient = runtimeClient ?? .production() + let sessionStore = try RadrootsSessionStore.production( + runtimeClient: runtimeClient + ) + let mediaCoordinator = try Self.productionMediaCoordinator( + transfer: backgroundTransfer + ) + self.sessionStore = sessionStore + todayStore = RadrootsTodayStore(runtimeClient: runtimeClient) + addStore = RadrootsAddStore( + runtimeClient: runtimeClient, + media: mediaCoordinator + ) + searchStore = RadrootsSearchStore(runtimeClient: runtimeClient) + meStore = RadrootsMeStore(runtimeClient: runtimeClient) + bootstrapFailure = nil + } catch let error as LocalizedError { + self.sessionStore = nil + todayStore = nil + addStore = nil + searchStore = nil + meStore = nil + bootstrapFailure = .local( + operation: "app.bootstrap", + code: "ios.app.configuration_invalid", + safeMessage: error.errorDescription ?? "Radroots configuration is invalid." + ) + } catch { + self.sessionStore = nil + todayStore = nil + addStore = nil + searchStore = nil + meStore = nil + bootstrapFailure = .local( + operation: "app.bootstrap", + code: "ios.app.configuration_invalid", + safeMessage: "Radroots configuration is invalid." + ) + } } + } - func retry() async { - await start() - } + func start() async { + await ensureLifecycleRegistration() + await lifecycleCoordinator.record("ios.lifecycle.start_requested") + await run(name: "start", showsStarting: true) { store in await store.start() } + } - func createIdentity() async { - await run(name: "identity_create", showsStarting: true) { store in - await store.createIdentity() - } - } + func retry() async { + await start() + } - func unlockIdentity() async { - await run(name: "identity_unlock", showsStarting: true) { store in - await store.unlockIdentity() - } + func createIdentity() async { + await run(name: "identity_create", showsStarting: true) { store in + await store.createIdentity() } + } - func recoverIdentity() async { - await run(name: "identity_recover", showsStarting: true) { store in - await store.recoverIdentity() - } + func unlockIdentity() async { + await run(name: "identity_unlock", showsStarting: true) { store in + await store.unlockIdentity() } + } - func applyConfigurationReconfiguration() async { - await run(name: "configuration_reconfigure", showsStarting: true) { store in - await store.applyConfigurationReconfiguration() - } + func recoverIdentity() async { + await run(name: "identity_recover", showsStarting: true) { store in + await store.recoverIdentity() } + } - func stop() async { - stopPresentationWork() - await run(name: "stop") { store in await store.stop() } + func applyConfigurationReconfiguration() async { + await run(name: "configuration_reconfigure", showsStarting: true) { store in + await store.applyConfigurationReconfiguration() } + } - func resume() async { - await ensureLifecycleRegistration() - guard sessionOperationsInFlight == 0 else { - resumePending = true - await lifecycleCoordinator.record("ios.lifecycle.resume_coalesced") - return - } - resumePending = false - if case .running = phase { - await todayStore?.start() - await addStore?.start() - await lifecycleCoordinator.record("ios.lifecycle.active") - } else { - await start() - } - } + func stop() async { + stopPresentationWork() + await run(name: "stop") { store in await store.stop() } + } - func suspend() async { - generation &+= 1 - resumePending = false - todayStore?.stop() - addStore?.suspend() - searchStore?.stop() - meStore?.stop() - await sessionStore?.suspend() - await lifecycleCoordinator.record("ios.lifecycle.background") + func resume() async { + await ensureLifecycleRegistration() + guard sessionOperationsInFlight == 0 else { + resumePending = true + await lifecycleCoordinator.record("ios.lifecycle.resume_coalesced") + return } - - func updateProtectedDataAvailability(_ available: Bool) async { - await sessionStore?.updateProtectedDataAvailability(available) - await lifecycleCoordinator.record( - available - ? "ios.lifecycle.protected_data_available" - : "ios.lifecycle.protected_data_unavailable" - ) - if available { - await start() - } else { - await stop() - await start() - } + resumePending = false + if case .running = phase { + await todayStore?.start() + await addStore?.start() + await lifecycleCoordinator.record("ios.lifecycle.active") + } else { + await start() } + } - func shutdown() async { - await lifecycleCoordinator.record("ios.lifecycle.shutdown_requested", level: .notice) - await stop() - await RadrootsBackgroundEventRouter.shared.detachAndCompletePending() - } + func suspend() async { + generation &+= 1 + resumePending = false + todayStore?.stop() + addStore?.suspend() + searchStore?.stop() + meStore?.stop() + await sessionStore?.suspend() + await lifecycleCoordinator.record("ios.lifecycle.background") + } - private func run( - name: String, - showsStarting: Bool = false, - _ operation: @escaping @Sendable (RadrootsSessionStore) async -> Phase - ) async { - guard !isShellUITest else { return } - sessionOperationsInFlight += 1 - generation &+= 1 - let requestedGeneration = generation - if showsStarting { - phase = .starting - } - guard let sessionStore else { - phase = .failed( - bootstrapFailure - ?? .local( - operation: "app.bootstrap", - code: "ios.app.bootstrap_failed", - safeMessage: "Radroots could not start." - ) - ) - await lifecycleCoordinator.record( - "ios.lifecycle.operation_failed", - level: .error, - fields: ["operation": name, "code": "bootstrap_failed"] - ) - await finishSessionOperation() - return - } - let result = await operation(sessionStore) - guard generation == requestedGeneration else { - await finishSessionOperation() - return - } - if case let .running(snapshot) = result { - todayStore?.configure(snapshot: snapshot) - addStore?.configure(snapshot: snapshot) - } - phase = result - await lifecycleCoordinator.record( - "ios.lifecycle.operation_completed", - level: Self.isFailure(result) ? .warning : .info, - fields: ["operation": name, "phase": Self.phaseCode(result)] - ) - await finishSessionOperation() + func updateProtectedDataAvailability(_ available: Bool) async { + await sessionStore?.updateProtectedDataAvailability(available) + await lifecycleCoordinator.record( + available + ? "ios.lifecycle.protected_data_available" + : "ios.lifecycle.protected_data_unavailable" + ) + if available { + await start() + } else { + await stop() + await start() } + } - private func finishSessionOperation() async { - sessionOperationsInFlight -= 1 - guard sessionOperationsInFlight == 0, resumePending else { return } - resumePending = false - await resume() - } + func shutdown() async { + await lifecycleCoordinator.record("ios.lifecycle.shutdown_requested", level: .notice) + await stop() + await RadrootsBackgroundEventRouter.shared.detachAndCompletePending() + } - private func ensureLifecycleRegistration() async { - guard !lifecycleRegistered else { return } - lifecycleRegistered = true - await lifecycleCoordinator.attachBackgroundEvents() - await RadrootsLifecycleBridge.shared.register { @Sendable [weak self] in - await self?.shutdown() - } + private func run( + name: String, + showsStarting: Bool = false, + _ operation: @escaping @Sendable (RadrootsSessionStore) async -> Phase + ) async { + guard !isShellUITest else { return } + sessionOperationsInFlight += 1 + generation &+= 1 + let requestedGeneration = generation + if showsStarting { + phase = .starting + } + guard let sessionStore else { + phase = .failed( + bootstrapFailure + ?? .local( + operation: "app.bootstrap", + code: "ios.app.bootstrap_failed", + safeMessage: "Radroots could not start." + ) + ) + await lifecycleCoordinator.record( + "ios.lifecycle.operation_failed", + level: .error, + fields: ["operation": name, "code": "bootstrap_failed"] + ) + await finishSessionOperation() + return + } + let result = await operation(sessionStore) + guard generation == requestedGeneration else { + await finishSessionOperation() + return + } + if case .running(let snapshot) = result { + todayStore?.configure(snapshot: snapshot) + addStore?.configure(snapshot: snapshot) } + phase = result + await lifecycleCoordinator.record( + "ios.lifecycle.operation_completed", + level: Self.isFailure(result) ? .warning : .info, + fields: ["operation": name, "phase": Self.phaseCode(result)] + ) + await finishSessionOperation() + } - private func stopPresentationWork() { - todayStore?.stop() - addStore?.stop() - searchStore?.stop() - meStore?.stop() + private func finishSessionOperation() async { + sessionOperationsInFlight -= 1 + guard sessionOperationsInFlight == 0, resumePending else { return } + resumePending = false + await resume() + } + + private func ensureLifecycleRegistration() async { + guard !lifecycleRegistered else { return } + lifecycleRegistered = true + await lifecycleCoordinator.attachBackgroundEvents() + await RadrootsLifecycleBridge.shared.register { @Sendable [weak self] in + await self?.shutdown() } + } + + private func stopPresentationWork() { + todayStore?.stop() + addStore?.stop() + searchStore?.stop() + meStore?.stop() + } - private static func isFailure(_ phase: Phase) -> Bool { - if case .failed = phase { - return true - } - return false + private static func isFailure(_ phase: Phase) -> Bool { + if case .failed = phase { + return true } + return false + } - private static func phaseCode(_ phase: Phase) -> String { - switch phase { - case .starting: "starting" - case .identityRequired: "identity_required" - case .identityLocked: "identity_locked" - case .protectedDataUnavailable: "protected_data_unavailable" - case .recoveryRequired: "recovery_required" - case .corruptIdentity: "corrupt_identity" - case .configurationReconfigurationRequired: "configuration_reconfiguration_required" - case .running: "running" - case .stopped: "stopped" - case .failed: "failed" - } + private static func phaseCode(_ phase: Phase) -> String { + switch phase { + case .starting: "starting" + case .identityRequired: "identity_required" + case .identityLocked: "identity_locked" + case .protectedDataUnavailable: "protected_data_unavailable" + case .recoveryRequired: "recovery_required" + case .corruptIdentity: "corrupt_identity" + case .configurationReconfigurationRequired: "configuration_reconfiguration_required" + case .running: "running" + case .stopped: "stopped" + case .failed: "failed" } + } - private static func productionMediaCoordinator( - bundle: Bundle = .main - ) throws -> RadrootsAddMediaCoordinator { - guard let bundleIdentifier = bundle.bundleIdentifier else { - throw RadrootsConfigurationError.missing("bundle_identifier") - } - return try RadrootsAddMediaCoordinator.production(bundleIdentifier: bundleIdentifier) + private static func productionMediaCoordinator( + bundle: Bundle = .main, + transfer: (any RadrootsBackgroundTransfer)? + ) throws -> RadrootsAddMediaCoordinator { + guard let bundleIdentifier = bundle.bundleIdentifier else { + throw RadrootsConfigurationError.missing("bundle_identifier") + } + guard let transfer else { + throw RadrootsConfigurationError.missing("background_transfer") } + return try RadrootsAddMediaCoordinator.production( + bundleIdentifier: bundleIdentifier, + transfer: transfer + ) + } } #if DEBUG - fileprivate extension RadrootsRuntimeSnapshot { - static let shellUITest = RadrootsRuntimeSnapshot( - identity: RadrootsRuntimeIdentity( - publicKeyHex: String(repeating: "ab", count: 32), - hostSignerConfigured: true - ), - relay: RadrootsRelayStatus( - profile: "simulator", - state: "configured", - readAvailability: "unobserved", - writeAvailability: "unobserved", - relays: [] - ), - blossomConfiguration: nil, - blossomEvidence: nil, - crateName: "radroots_mobile_ffi", - crateVersion: "0.1.0-alpha", - isClosed: false - ) - } + extension RadrootsRuntimeSnapshot { + fileprivate static let shellUITest = RadrootsRuntimeSnapshot( + identity: RadrootsRuntimeIdentity( + publicKeyHex: String(repeating: "ab", count: 32), + hostSignerConfigured: true + ), + relay: RadrootsRelayStatus( + profile: "simulator", + state: "configured", + readAvailability: "unobserved", + writeAvailability: "unobserved", + relays: [] + ), + blossomConfiguration: nil, + blossomEvidence: nil, + crateName: "radroots_mobile_ffi", + crateVersion: "0.1.0-alpha", + isClosed: false + ) + } #endif diff --git a/Radroots/Runtime/RadrootsAddMediaCoordinator.swift b/Radroots/Runtime/RadrootsAddMediaCoordinator.swift @@ -2,225 +2,375 @@ import Foundation import RadrootsKit struct RadrootsAddMediaSupport: Sendable, Equatable { - let library: Bool - let camera: Bool + let library: Bool + let camera: Bool - static let unavailable = Self(library: false, camera: false) + static let unavailable = Self(library: false, camera: false) +} + +struct RadrootsAddBackgroundUploadReceipt: Sendable, Equatable { + let identifier: String + let statusCode: UInt16 + let mediaType: String? + let contentEncoding: String? + let body: Data } protocol RadrootsAddMediaHandling: Sendable { - func support() async throws -> RadrootsAddMediaSupport - func importImages(limit: Int) async throws -> [RadrootsPreparedMedia] - func captureImage() async throws -> RadrootsPreparedMedia - func open(_ media: [RadrootsPreparedMedia]) async throws -> RadrootsOpenedMedia + func support() async throws -> RadrootsAddMediaSupport + func importImages(limit: Int) async throws -> [RadrootsPreparedMedia] + func captureImage() async throws -> RadrootsPreparedMedia + func open(_ media: [RadrootsPreparedMedia]) async throws -> RadrootsOpenedMedia + func uploadInBackground( + job: RadrootsNativeUploadJob, + media: RadrootsPreparedMedia + ) async throws -> RadrootsAddBackgroundUploadReceipt + func settleBackgroundUpload(identifier: String, accepted: Bool) async throws +} + +extension RadrootsAddMediaHandling { + func uploadInBackground( + job _: RadrootsNativeUploadJob, + media _: RadrootsPreparedMedia + ) async throws -> RadrootsAddBackgroundUploadReceipt { + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: "ios.add.background_transfer_unavailable", + safeMessage: "Background photo upload is unavailable on this device." + ) + } + + func settleBackgroundUpload(identifier _: String, accepted _: Bool) async throws {} } final class RadrootsOpenedMedia: @unchecked Sendable { - let handles: [RadrootsPreparedMediaHandle] - private var files: [FileHandle] + let handles: [RadrootsPreparedMediaHandle] + private var files: [FileHandle] - init(handles: [RadrootsPreparedMediaHandle], files: [FileHandle]) { - self.handles = handles - self.files = files - } + init(handles: [RadrootsPreparedMediaHandle], files: [FileHandle]) { + self.handles = handles + self.files = files + } - deinit { - close() - } + deinit { + close() + } - func close() { - let active = files - files.removeAll() - for file in active { - try? file.close() - } + func close() { + let active = files + files.removeAll() + for file in active { + try? file.close() } + } } actor RadrootsAddMediaCoordinator: RadrootsAddMediaHandling { - private let roots: RadrootsAppleFileRoots - private let picker: any RadrootsMediaPicker - private let preparer: RadrootsAppleMediaPreparer - - init( - roots: RadrootsAppleFileRoots, - picker: any RadrootsMediaPicker, - preparer: RadrootsAppleMediaPreparer - ) { - self.roots = roots - self.picker = picker - self.preparer = preparer - } + private let roots: RadrootsAppleFileRoots + private let picker: any RadrootsMediaPicker + private let preparer: RadrootsAppleMediaPreparer + private let transfer: any RadrootsBackgroundTransfer - static func production(bundleIdentifier: String) throws -> Self { - let roots = try RadrootsAppleFileRoots.appContainer(appIdentifier: bundleIdentifier) - let fileAccess = RadrootsAppleFileAccess(roots: roots) - let picker: any RadrootsMediaPicker - #if DEBUG - if let mediaFile = try RadrootsRemoteQualificationEnvironment.current()?.mediaFile { - picker = RadrootsRemoteQualificationMediaPicker( - roots: roots, - file: mediaFile - ) - } else { - picker = RadrootsAppleMediaPicker(fileAccess: fileAccess) - } - #else - picker = RadrootsAppleMediaPicker(fileAccess: fileAccess) - #endif - return Self( - roots: roots, - picker: picker, - preparer: RadrootsAppleMediaPreparer(roots: roots) + init( + roots: RadrootsAppleFileRoots, + picker: any RadrootsMediaPicker, + preparer: RadrootsAppleMediaPreparer, + transfer: any RadrootsBackgroundTransfer + ) { + self.roots = roots + self.picker = picker + self.preparer = preparer + self.transfer = transfer + } + + static func production( + bundleIdentifier: String, + transfer: any RadrootsBackgroundTransfer + ) throws -> Self { + let roots = try RadrootsAppleFileRoots.appContainer(appIdentifier: bundleIdentifier) + let fileAccess = RadrootsAppleFileAccess(roots: roots) + let picker: any RadrootsMediaPicker + #if DEBUG + if let mediaFile = try RadrootsRemoteQualificationEnvironment.current()?.mediaFile { + picker = RadrootsRemoteQualificationMediaPicker( + roots: roots, + file: mediaFile ) + } else { + picker = RadrootsAppleMediaPicker(fileAccess: fileAccess) + } + #else + picker = RadrootsAppleMediaPicker(fileAccess: fileAccess) + #endif + return Self( + roots: roots, + picker: picker, + preparer: RadrootsAppleMediaPreparer(roots: roots), + transfer: transfer + ) + } + + func support() async throws -> RadrootsAddMediaSupport { + let value = try await picker.currentSupport() + return RadrootsAddMediaSupport( + library: value.importAvailable && value.supportedImportKinds.contains(.image), + camera: value.cameraCaptureAvailable && value.supportedCaptureKinds.contains(.image) + ) + } + + func importImages(limit: Int) async throws -> [RadrootsPreparedMedia] { + let result = try await picker.importMedia( + RadrootsMediaImportRequest( + allowedMediaKinds: [.image], + selectionLimit: min(max(limit, 1), 20), + destinationScope: .cache + ) + ) + var prepared: [RadrootsPreparedMedia] = [] + for asset in result.items { + try await prepared.append(prepare(asset)) } + return prepared + } - func support() async throws -> RadrootsAddMediaSupport { - let value = try await picker.currentSupport() - return RadrootsAddMediaSupport( - library: value.importAvailable && value.supportedImportKinds.contains(.image), - camera: value.cameraCaptureAvailable && value.supportedCaptureKinds.contains(.image) + func captureImage() async throws -> RadrootsPreparedMedia { + let result = try await picker.captureMedia( + RadrootsMediaCaptureRequest(mediaKind: .image, destinationScope: .cache) + ) + return try await prepare(result.item) + } + + func open(_ media: [RadrootsPreparedMedia]) throws -> RadrootsOpenedMedia { + var files: [FileHandle] = [] + var handles: [RadrootsPreparedMediaHandle] = [] + do { + for item in media { + guard item.opaqueReference == "media:\(item.sha256)", + item.mediaType == "image/png", + let byteSize = Int(exactly: item.byteSize) + else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.open", + code: "ios.add.media_reference_invalid", + safeMessage: "A prepared photo is no longer available." + ) + } + let blob = try RadrootsStagedBlobReference( + blobID: item.sha256, + sizeBytes: byteSize, + mediaType: item.mediaType, + filenameHint: "\(item.sha256).png" ) + let file = try FileHandle(forReadingFrom: roots.stagedBlobURL(for: blob)) + files.append(file) + handles.append( + RadrootsPreparedMediaHandle( + media: item, + fileDescriptor: UInt64(file.fileDescriptor) + ) + ) + } + return RadrootsOpenedMedia(handles: handles, files: files) + } catch { + for file in files { + try? file.close() + } + throw error } + } - func importImages(limit: Int) async throws -> [RadrootsPreparedMedia] { - let result = try await picker.importMedia( - RadrootsMediaImportRequest( - allowedMediaKinds: [.image], - selectionLimit: min(max(limit, 1), 20), - destinationScope: .cache + func uploadInBackground( + job: RadrootsNativeUploadJob, + media: RadrootsPreparedMedia + ) async throws -> RadrootsAddBackgroundUploadReceipt { + guard job.expectedSHA256 == media.sha256, + job.mediaType == media.mediaType, + job.byteSize == media.byteSize, + let byteSize = Int(exactly: media.byteSize), + let remoteURL = URL(string: job.remoteURL) + else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: "ios.add.background_upload_mismatch", + safeMessage: "The prepared photo no longer matches the authorized upload." + ) + } + let identifier = try Self.transferIdentifier(job: job) + let prepared = try RadrootsApplePreparedImage( + file: RadrootsStagedBlobReference( + blobID: media.sha256, + sizeBytes: byteSize, + mediaType: media.mediaType, + filenameHint: "\(media.sha256).png" + ), + sha256: media.sha256, + width: media.width, + height: media.height + ) + let request = try await preparer.blossomUploadRequest( + preparedImage: prepared, + remoteURL: remoteURL, + authorization: job.authorizationHeader, + networkPolicy: remoteURL.scheme?.lowercased() == "https" + ? .publicHTTPS : .simulatorLoopbackHTTP, + identifier: identifier + ) + _ = try await transfer.enqueue(request) + return try await withTaskCancellationHandler { + while true { + try Task.checkCancellation() + guard let snapshot = try await transfer.snapshot(for: identifier) else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: "ios.add.background_upload_missing", + safeMessage: "The background photo upload could not be recovered." + ) + } + switch snapshot.state { + case .awaitingVerification: + guard let response = snapshot.response, + let statusCode = UInt16(exactly: response.statusCode), + let body = response.body + else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: "ios.add.background_response_invalid", + safeMessage: "The photo service returned an invalid response." ) - ) - var prepared: [RadrootsPreparedMedia] = [] - for asset in result.items { - try await prepared.append(prepare(asset)) + } + return RadrootsAddBackgroundUploadReceipt( + identifier: identifier.rawValue, + statusCode: statusCode, + mediaType: response.mediaType, + contentEncoding: response.contentEncoding, + body: body + ) + case .failed, .interrupted, .cancelled, .expired: + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: snapshot.errorMessage ?? "ios.add.background_upload_failed", + safeMessage: "The background photo upload did not complete." + ) + case .completed: + throw RadrootsRuntimeFailure.local( + operation: "add.media.background", + code: "ios.add.background_upload_already_settled", + safeMessage: "The background photo upload was already settled." + ) + case .queued, .running: + try await Task.sleep(for: .milliseconds(100)) } - return prepared + } + } onCancel: { + Task { + try? await self.transfer.cancel(identifier) + } } + } - func captureImage() async throws -> RadrootsPreparedMedia { - let result = try await picker.captureMedia( - RadrootsMediaCaptureRequest(mediaKind: .image, destinationScope: .cache) - ) - return try await prepare(result.item) + func settleBackgroundUpload(identifier: String, accepted: Bool) async throws { + do { + let value = try RadrootsBackgroundTransferIdentifier(identifier) + try await transfer.settle( + value, + verification: accepted + ? .accepted + : .rejected(code: "background_transfer_rust_verification_failed") + ) + } catch { + throw RadrootsRuntimeFailure.local( + operation: "add.media.background.settle", + code: "ios.add.background_settlement_failed", + safeMessage: "The verified photo transfer could not be finalized." + ) } + } - func open(_ media: [RadrootsPreparedMedia]) throws -> RadrootsOpenedMedia { - var files: [FileHandle] = [] - var handles: [RadrootsPreparedMediaHandle] = [] - do { - for item in media { - guard item.opaqueReference == "media:\(item.sha256)", - item.mediaType == "image/png", - let byteSize = Int(exactly: item.byteSize) - else { - throw RadrootsRuntimeFailure.local( - operation: "add.media.open", - code: "ios.add.media_reference_invalid", - safeMessage: "A prepared photo is no longer available." - ) - } - let blob = try RadrootsStagedBlobReference( - blobID: item.sha256, - sizeBytes: byteSize, - mediaType: item.mediaType, - filenameHint: "\(item.sha256).png" - ) - let file = try FileHandle(forReadingFrom: roots.stagedBlobURL(for: blob)) - files.append(file) - handles.append( - RadrootsPreparedMediaHandle( - media: item, - fileDescriptor: UInt64(file.fileDescriptor) - ) - ) - } - return RadrootsOpenedMedia(handles: handles, files: files) - } catch { - for file in files { - try? file.close() - } - throw error - } - } + private func prepare(_ asset: RadrootsMediaAsset) async throws -> RadrootsPreparedMedia { + let prepared = try await preparer.prepareImage( + RadrootsAppleImagePreparationRequest(source: .file(asset.file)) + ) + return RadrootsPreparedMedia( + opaqueReference: "media:\(prepared.sha256)", + remoteURL: nil, + sha256: prepared.sha256, + mediaType: "image/png", + byteSize: UInt64(prepared.file.sizeBytes), + width: prepared.width, + height: prepared.height, + alt: "Farm photo", + preparedAtUnixSeconds: UInt64(Date().timeIntervalSince1970) + ) + } - private func prepare(_ asset: RadrootsMediaAsset) async throws -> RadrootsPreparedMedia { - let prepared = try await preparer.prepareImage( - RadrootsAppleImagePreparationRequest(source: .file(asset.file)) - ) - return RadrootsPreparedMedia( - opaqueReference: "media:\(prepared.sha256)", - remoteURL: nil, - sha256: prepared.sha256, - mediaType: "image/png", - byteSize: UInt64(prepared.file.sizeBytes), - width: prepared.width, - height: prepared.height, - alt: "Farm photo", - preparedAtUnixSeconds: UInt64(Date().timeIntervalSince1970) - ) - } + private static func transferIdentifier( + job: RadrootsNativeUploadJob + ) throws -> RadrootsBackgroundTransferIdentifier { + try RadrootsBackgroundTransferIdentifier( + "radroots.add.\(job.draft.id).\(job.draft.revision).\(job.operationID)" + ) + } } #if DEBUG - private actor RadrootsRemoteQualificationMediaPicker: RadrootsMediaPicker { - private let roots: RadrootsAppleFileRoots - private let file: RadrootsFileReference + private actor RadrootsRemoteQualificationMediaPicker: RadrootsMediaPicker { + private let roots: RadrootsAppleFileRoots + private let file: RadrootsFileReference - init(roots: RadrootsAppleFileRoots, file: RadrootsFileReference) { - self.roots = roots - self.file = file - } + init(roots: RadrootsAppleFileRoots, file: RadrootsFileReference) { + self.roots = roots + self.file = file + } - func currentSupport() async throws -> RadrootsMediaPickerSupport { - try RadrootsMediaPickerSupport( - importAvailable: true, - cameraCaptureAvailable: false, - supportedImportKinds: [.image], - supportedCaptureKinds: [], - multipleSelectionSupported: false - ) - } + func currentSupport() async throws -> RadrootsMediaPickerSupport { + try RadrootsMediaPickerSupport( + importAvailable: true, + cameraCaptureAvailable: false, + supportedImportKinds: [.image], + supportedCaptureKinds: [], + multipleSelectionSupported: false + ) + } - func importMedia( - _ request: RadrootsMediaImportRequest - ) async throws -> RadrootsMediaImportResult { - guard request.allowedMediaKinds == [.image], request.selectionLimit >= 1 else { - throw RadrootsCaptureIntakeError.invalidRequest( - "remote qualification accepts one image" - ) - } - let url = try roots.resolvedURL(for: file) - let values = try url.resourceValues( - forKeys: [.fileSizeKey, .isRegularFileKey, .isSymbolicLinkKey] - ) - guard values.isRegularFile == true, - values.isSymbolicLink != true, - let size = values.fileSize, - (1 ... 40 * 1024 * 1024).contains(size) - else { - throw RadrootsCaptureIntakeError.unavailable( - "remote qualification image is unavailable" - ) - } - let asset = try RadrootsMediaAsset( - source: .libraryImport, - kind: .image, - file: file, - mediaType: "image/png", - suggestedFilename: "input.png", - sizeBytes: UInt64(size), - capturedAt: Date() - ) - return try RadrootsMediaImportResult(items: [asset]) - } + func importMedia( + _ request: RadrootsMediaImportRequest + ) async throws -> RadrootsMediaImportResult { + guard request.allowedMediaKinds == [.image], request.selectionLimit >= 1 else { + throw RadrootsCaptureIntakeError.invalidRequest( + "remote qualification accepts one image" + ) + } + let url = try roots.resolvedURL(for: file) + let values = try url.resourceValues( + forKeys: [.fileSizeKey, .isRegularFileKey, .isSymbolicLinkKey] + ) + guard values.isRegularFile == true, + values.isSymbolicLink != true, + let size = values.fileSize, + (1...40 * 1024 * 1024).contains(size) + else { + throw RadrootsCaptureIntakeError.unavailable( + "remote qualification image is unavailable" + ) + } + let asset = try RadrootsMediaAsset( + source: .libraryImport, + kind: .image, + file: file, + mediaType: "image/png", + suggestedFilename: "input.png", + sizeBytes: UInt64(size), + capturedAt: Date() + ) + return try RadrootsMediaImportResult(items: [asset]) + } - func captureMedia( - _: RadrootsMediaCaptureRequest - ) async throws -> RadrootsMediaCaptureResult { - throw RadrootsCaptureIntakeError.unavailable( - "camera capture is outside remote qualification" - ) - } + func captureMedia( + _: RadrootsMediaCaptureRequest + ) async throws -> RadrootsMediaCaptureResult { + throw RadrootsCaptureIntakeError.unavailable( + "camera capture is outside remote qualification" + ) } + } #endif diff --git a/Radroots/Runtime/RadrootsGeneratedRuntimeBackend.swift b/Radroots/Runtime/RadrootsGeneratedRuntimeBackend.swift @@ -2,1103 +2,1246 @@ import Foundation import RadrootsKitBindings private final class RadrootsGeneratedHostSigner: RadrootsHostSigner, @unchecked Sendable { - private let signer: any RadrootsRuntimeSigner - - init(signer: any RadrootsRuntimeSigner) { - self.signer = signer - } - - func signerStatus() async -> SignerStatusRecord { - await SignerStatusRecord( - schemaVersion: 1, - availability: signer.availability().generatedValue - ) - } - - func sign(request: HostSigningRequest) async -> HostSigningResult { - let purpose = request.purpose.appValue - let outcome = await signer.sign( - RadrootsRuntimeSigningRequest( - operationID: request.operationId, - signerRequestID: request.signerRequestId, - publicKeyHex: request.publicKey, - purpose: purpose, - deadlineUnixMilliseconds: request.deadlineUnixMs, - digest: request.eventIdDigest - ) + private let signer: any RadrootsRuntimeSigner + + init(signer: any RadrootsRuntimeSigner) { + self.signer = signer + } + + func signerStatus() async -> SignerStatusRecord { + await SignerStatusRecord( + schemaVersion: 1, + availability: signer.availability().generatedValue + ) + } + + func sign(request: HostSigningRequest) async -> HostSigningResult { + let purpose = request.purpose.appValue + let outcome = await signer.sign( + RadrootsRuntimeSigningRequest( + operationID: request.operationId, + signerRequestID: request.signerRequestId, + publicKeyHex: request.publicKey, + purpose: purpose, + deadlineUnixMilliseconds: request.deadlineUnixMs, + digest: request.eventIdDigest + ) + ) + #if DEBUG + if request.purpose == .blossomUpload, + let signatureHex = outcome.signatureHex + { + try? RadrootsRemoteQualificationEvidence.recordBlossomAuthorization( + request: request, + signatureHex: signatureHex ) - #if DEBUG - if request.purpose == .blossomUpload, - let signatureHex = outcome.signatureHex - { - try? RadrootsRemoteQualificationEvidence.recordBlossomAuthorization( - request: request, - signatureHex: signatureHex - ) - } - #endif - return HostSigningResult( - schemaVersion: 1, - outcome: outcome.generatedOutcome, - operationId: request.operationId, - signerRequestId: request.signerRequestId, - publicKey: request.publicKey, - purpose: request.purpose, - signatureHex: outcome.signatureHex, - completedAtUnixMs: UInt64(Date().timeIntervalSince1970 * 1000) - ) - } + } + #endif + return HostSigningResult( + schemaVersion: 1, + outcome: outcome.generatedOutcome, + operationId: request.operationId, + signerRequestId: request.signerRequestId, + publicKey: request.publicKey, + purpose: request.purpose, + signatureHex: outcome.signatureHex, + completedAtUnixMs: UInt64(Date().timeIntervalSince1970 * 1000) + ) + } } private final class RadrootsGeneratedRuntimeObserver: RadrootsRuntimeObserver, @unchecked Sendable { - private let continuation: AsyncStream<RadrootsRuntimeChange>.Continuation - - init(continuation: AsyncStream<RadrootsRuntimeChange>.Continuation) { - self.continuation = continuation - } - - func onChange(change: FfiRuntimeChangeRecord) { - continuation.yield( - RadrootsRuntimeChange( - schemaVersion: change.schemaVersion, - generation: change.generation, - kind: change.kind.appValue, - entityID: change.entityId - ) - ) - } - - func finish() { - continuation.finish() - } + private let continuation: AsyncStream<RadrootsRuntimeChange>.Continuation + + init(continuation: AsyncStream<RadrootsRuntimeChange>.Continuation) { + self.continuation = continuation + } + + func onChange(change: FfiRuntimeChangeRecord) { + continuation.yield( + RadrootsRuntimeChange( + schemaVersion: change.schemaVersion, + generation: change.generation, + kind: change.kind.appValue, + entityID: change.entityId + ) + ) + } + + func finish() { + continuation.finish() + } } private actor RadrootsGeneratedSubscriptionToken: RadrootsRuntimeSubscriptionToken { - private var handle: FfiSubscriptionHandle? - private var observer: RadrootsGeneratedRuntimeObserver? - private var deliveryTask: Task<Void, Never>? - - init( - handle: FfiSubscriptionHandle, - observer: RadrootsGeneratedRuntimeObserver, - deliveryTask: Task<Void, Never> - ) { - self.handle = handle - self.observer = observer - self.deliveryTask = deliveryTask - } - - func cancel() async { - guard let handle else { return } - self.handle = nil - observer?.finish() - observer = nil - handle.unsubscribe() - deliveryTask?.cancel() - await deliveryTask?.value - deliveryTask = nil - } + private var handle: FfiSubscriptionHandle? + private var observer: RadrootsGeneratedRuntimeObserver? + private var deliveryTask: Task<Void, Never>? + + init( + handle: FfiSubscriptionHandle, + observer: RadrootsGeneratedRuntimeObserver, + deliveryTask: Task<Void, Never> + ) { + self.handle = handle + self.observer = observer + self.deliveryTask = deliveryTask + } + + func cancel() async { + guard let handle else { return } + self.handle = nil + observer?.finish() + observer = nil + handle.unsubscribe() + deliveryTask?.cancel() + await deliveryTask?.value + deliveryTask = nil + } } private final class RadrootsGeneratedRuntimeBackend: RadrootsRuntimeBackend, @unchecked Sendable { - private let runtime: RadrootsRuntime - - init(runtime: RadrootsRuntime) { - self.runtime = runtime - } - - func snapshot() async throws -> RadrootsRuntimeSnapshot { - do { - let identity = try runtime.identityStatus() - let relay = try runtime.sdkRelayStatus() - let blossomConfiguration = try runtime.sdkBlossomConfiguration() - let blossomEvidence = try runtime.sdkBlossomEvidence() - let info = runtime.info() - return RadrootsRuntimeSnapshot( - identity: RadrootsRuntimeIdentity( - publicKeyHex: identity.publicKey, - hostSignerConfigured: identity.hostSignerConfigured - ), - relay: relay.map { report in - RadrootsRelayStatus( - profile: report.profile, - state: report.state, - readAvailability: report.readAvailability, - writeAvailability: report.writeAvailability, - relays: report.relays.map { relay in - RadrootsRelayEndpointStatus( - url: relay.relayUrl, - access: relay.access, - readState: relay.readState, - writeState: relay.writeState, - readLastAttemptUnixMilliseconds: relay.readLastAttemptUnixMs, - writeLastAttemptUnixMilliseconds: relay.writeLastAttemptUnixMs, - readNextAttemptUnixMilliseconds: relay.readNextAttemptUnixMs, - writeNextAttemptUnixMilliseconds: relay.writeNextAttemptUnixMs - ) - } - ) - }, - blossomConfiguration: blossomConfiguration?.appValue, - blossomEvidence: blossomEvidence?.appValue, - crateName: info.sdk.crateName, - crateVersion: info.sdk.crateVersion, - isClosed: info.sdkClosed - ) - } catch { - throw Self.failure(from: error) - } - } - - func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage { - do { - let page = try await runtime.phase1TodayPage( - context: request.context.generatedValue, - limit: request.limit, - asOfUnixS: request.asOfUnixSeconds, - cursor: request.cursor - ) - return page.appValue - } catch { - throw Self.failure(from: error) - } - } - - func refreshToday( - context: RadrootsLocalNetwork, - nowUnixSeconds: UInt64, - update: RadrootsTodayProjectionUpdate - ) async throws -> RadrootsTodayRefreshReceipt { - do { - let receipt = try await runtime.phase1SyncToday( - context: context.generatedValue, - nowUnixS: nowUnixSeconds, - update: update.generatedValue - ) - switch receipt.relayState { - case .complete: - return receipt.projection.appValue - case .partial: - throw RadrootsRuntimeFailure( - schemaVersion: 1, - code: "today_relay_partial", - category: "relay", - retryable: true, - recoveryActions: ["retry"], - operationID: "runtime.today.refresh", - capabilityID: "nostr_source", - safeMessage: "Today refreshed from only part of the local network." - ) - case .offline: - throw RadrootsRuntimeFailure( - schemaVersion: 1, - code: "today_relay_offline", - category: "relay", - retryable: true, - recoveryActions: ["retry"], - operationID: "runtime.today.refresh", - capabilityID: "nostr_source", - safeMessage: "Today is showing saved posts because the local network is offline." - ) + private let runtime: RadrootsRuntime + + init(runtime: RadrootsRuntime) { + self.runtime = runtime + } + + func snapshot() async throws -> RadrootsRuntimeSnapshot { + do { + let identity = try runtime.identityStatus() + let relay = try runtime.sdkRelayStatus() + let blossomConfiguration = try runtime.sdkBlossomConfiguration() + let blossomEvidence = try runtime.sdkBlossomEvidence() + let info = runtime.info() + return RadrootsRuntimeSnapshot( + identity: RadrootsRuntimeIdentity( + publicKeyHex: identity.publicKey, + hostSignerConfigured: identity.hostSignerConfigured + ), + relay: relay.map { report in + RadrootsRelayStatus( + profile: report.profile, + state: report.state, + readAvailability: report.readAvailability, + writeAvailability: report.writeAvailability, + relays: report.relays.map { relay in + RadrootsRelayEndpointStatus( + url: relay.relayUrl, + access: relay.access.appValue, + readState: relay.readState, + writeState: relay.writeState, + readLastAttemptUnixMilliseconds: relay.readLastAttemptUnixMs, + writeLastAttemptUnixMilliseconds: relay.writeLastAttemptUnixMs, + readNextAttemptUnixMilliseconds: relay.readNextAttemptUnixMs, + writeNextAttemptUnixMilliseconds: relay.writeNextAttemptUnixMs + ) } - } catch { - throw Self.failure(from: error) - } - } - - func search( - context: RadrootsLocalNetwork, - query: String, - limit: UInt16, - asOfUnixSeconds: UInt64 - ) async throws -> [RadrootsSearchResult] { - do { - return try await runtime.phase1Search( - context: context.generatedValue, - query: query, - limit: limit, - asOfUnixS: asOfUnixSeconds - ).map(\.appValue) - } catch { - throw Self.failure(from: error) - } - } - - func me( - context: RadrootsLocalNetwork, - asOfUnixSeconds: UInt64 - ) async throws -> RadrootsMeSnapshot { - do { - return try await runtime.phase1Me( - context: context.generatedValue, - asOfUnixS: asOfUnixSeconds - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func addSchemas() async throws -> [RadrootsAddSchema] { - runtime.phase1AddSchemas().map(\.appValue) - } - - func saveAddIntent( - input: RadrootsAddRuntimeInput, - existingDraftID: String?, - expectedRevision: UInt64? - ) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1SaveAddIntent( - input: input.generatedValue, - existingDraftId: existingDraftID, - expectedRevision: expectedRevision - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func saveRetractionDraft( - id: String, - input: RadrootsRetractionDraftInput, - authoredAtUnixSeconds: UInt64, - persistedAtUnixMilliseconds: UInt64 - ) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1SaveRetractionDraft( - draftId: id, - input: input.generatedValue, - authoredAtUnixS: authoredAtUnixSeconds, - persistedAtUnixMs: persistedAtUnixMilliseconds - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func draftStatus(id: String) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1DraftStatus(draftId: id).appValue - } catch { - throw Self.failure(from: error) - } - } - - func draftHeads(limit: UInt16) async throws -> [RadrootsDraftStatus] { - do { - return try await runtime.phase1DraftHeads(limit: limit).map(\.appValue) - } catch { - throw Self.failure(from: error) - } - } - - func queueAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1QueueAddIntent( - draftId: id, - expectedRevision: expectedRevision - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1RecoverAddIntent(draftId: id).appValue - } catch { - throw Self.failure(from: error) - } - } - - func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1UploadAddMediaIntent(input: input.generatedValue).appValue - } catch { - throw Self.failure(from: error) - } - } - - func probeBlossom() async throws -> RadrootsBlossomEvidence { - do { - return try await runtime.probeBlossom().appValue - } catch { - throw Self.failure(from: error) - } - } - - func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1AdvanceDraft( - draftId: id, - expectedRevision: expectedRevision - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func cancelAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus { - do { - return try await runtime.phase1CancelAddIntent( - draftId: id, - expectedRevision: expectedRevision - ).appValue - } catch { - throw Self.failure(from: error) - } - } - - func subscribe( - bufferCapacity: Int, - receive: @escaping @Sendable (RadrootsRuntimeChange) async -> Void - ) async throws -> any RadrootsRuntimeSubscriptionToken { - let pair = AsyncStream.makeStream( - of: RadrootsRuntimeChange.self, - bufferingPolicy: .bufferingNewest(bufferCapacity) + ) + }, + blossomConfiguration: blossomConfiguration?.appValue, + blossomEvidence: blossomEvidence?.appValue, + crateName: info.sdk.crateName, + crateVersion: info.sdk.crateVersion, + isClosed: info.sdkClosed + ) + } catch { + throw Self.failure(from: error) + } + } + + func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage { + do { + let page = try await runtime.phase1TodayPage( + context: request.context.generatedValue, + limit: request.limit, + asOfUnixS: request.asOfUnixSeconds, + cursor: request.cursor + ) + return page.appValue + } catch { + throw Self.failure(from: error) + } + } + + func refreshToday( + context: RadrootsLocalNetwork, + nowUnixSeconds: UInt64, + update: RadrootsTodayProjectionUpdate + ) async throws -> RadrootsTodayRefreshReceipt { + do { + let receipt = try await runtime.phase1SyncToday( + context: context.generatedValue, + nowUnixS: nowUnixSeconds, + update: update.generatedValue + ) + switch receipt.relayState { + case .complete: + return receipt.projection.appValue + case .partial: + throw RadrootsRuntimeFailure( + schemaVersion: 1, + code: "today_relay_partial", + category: "relay", + retryable: true, + recoveryActions: ["retry"], + operationID: "runtime.today.refresh", + capabilityID: "nostr_source", + safeMessage: "Today refreshed from only part of the local network." ) - do { - let observer = RadrootsGeneratedRuntimeObserver(continuation: pair.continuation) - let handle = try runtime.subscribeChanges(observer: observer) - let deliveryTask = Task { - for await change in pair.stream { - guard !Task.isCancelled else { break } - await receive(change) - } - } - return RadrootsGeneratedSubscriptionToken( - handle: handle, - observer: observer, - deliveryTask: deliveryTask - ) - } catch { - pair.continuation.finish() - throw Self.failure(from: error) + case .offline: + throw RadrootsRuntimeFailure( + schemaVersion: 1, + code: "today_relay_offline", + category: "relay", + retryable: true, + recoveryActions: ["retry"], + operationID: "runtime.today.refresh", + capabilityID: "nostr_source", + safeMessage: "Today is showing saved posts because the local network is offline." + ) + } + } catch { + throw Self.failure(from: error) + } + } + + func search( + context: RadrootsLocalNetwork, + query: String, + limit: UInt16, + asOfUnixSeconds: UInt64 + ) async throws -> [RadrootsSearchResult] { + do { + return try await runtime.phase1Search( + context: context.generatedValue, + query: query, + limit: limit, + asOfUnixS: asOfUnixSeconds + ).map(\.appValue) + } catch { + throw Self.failure(from: error) + } + } + + func me( + context: RadrootsLocalNetwork, + asOfUnixSeconds: UInt64 + ) async throws -> RadrootsMeSnapshot { + do { + return try await runtime.phase1Me( + context: context.generatedValue, + asOfUnixS: asOfUnixSeconds + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func addSchemas() async throws -> [RadrootsAddSchema] { + runtime.phase1AddSchemas().map(\.appValue) + } + + func saveAddIntent( + input: RadrootsAddRuntimeInput, + existingDraftID: String?, + expectedRevision: UInt64? + ) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1SaveAddIntent( + input: input.generatedValue, + existingDraftId: existingDraftID, + expectedRevision: expectedRevision + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func saveRetractionDraft( + id: String, + input: RadrootsRetractionDraftInput, + authoredAtUnixSeconds: UInt64, + persistedAtUnixMilliseconds: UInt64 + ) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1SaveRetractionDraft( + draftId: id, + input: input.generatedValue, + authoredAtUnixS: authoredAtUnixSeconds, + persistedAtUnixMs: persistedAtUnixMilliseconds + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func saveRevisionIntent( + target: RadrootsRevisionTarget, + replacement: RadrootsAddRuntimeInput + ) async throws -> RadrootsRevisionStatus { + do { + return try await runtime.phase1SaveRevisionIntent( + input: FfiRevisionInputRecord( + schemaVersion: 1, + cardId: target.cardID, + sourceEventId: target.sourceEventID, + sourceAddress: target.sourceAddress, + authorPublicKey: target.authorPublicKey, + replacement: replacement.generatedValue + ) + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func revisionStatus(operationID: String) async throws -> RadrootsRevisionStatus { + do { + return try await runtime.phase1RevisionStatus(operationId: operationID).appValue + } catch { + throw Self.failure(from: error) + } + } + + func advanceRevision(operationID: String) async throws -> RadrootsRevisionStatus { + do { + return try await runtime.phase1AdvanceRevision(operationId: operationID).appValue + } catch { + throw Self.failure(from: error) + } + } + + func cancelRevision(operationID: String) async throws -> RadrootsRevisionStatus { + do { + return try await runtime.phase1CancelRevision(operationId: operationID).appValue + } catch { + throw Self.failure(from: error) + } + } + + func draftStatus(id: String) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1DraftStatus(draftId: id).appValue + } catch { + throw Self.failure(from: error) + } + } + + func draftHeads(limit: UInt16) async throws -> [RadrootsDraftStatus] { + do { + return try await runtime.phase1DraftHeads(limit: limit).map(\.appValue) + } catch { + throw Self.failure(from: error) + } + } + + func queueAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1QueueAddIntent( + draftId: id, + expectedRevision: expectedRevision + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1RecoverAddIntent(draftId: id).appValue + } catch { + throw Self.failure(from: error) + } + } + + func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus + { + do { + return try await runtime.phase1UploadAddMediaIntent(input: input.generatedValue).appValue + } catch { + throw Self.failure(from: error) + } + } + + func prepareAddMediaBackground( + input: RadrootsBlossomUploadIntent + ) async throws -> RadrootsNativeUploadJob { + do { + return try await runtime.phase1PrepareAddMediaBackground( + input: input.generatedValue + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func completeAddMediaBackground( + input: RadrootsNativeUploadCompletion + ) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1CompleteAddMediaBackground( + input: input.generatedValue + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func probeBlossom() async throws -> RadrootsBlossomEvidence { + do { + return try await runtime.probeBlossom().appValue + } catch { + throw Self.failure(from: error) + } + } + + func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1AdvanceDraft( + draftId: id, + expectedRevision: expectedRevision + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func cancelAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus { + do { + return try await runtime.phase1CancelAddIntent( + draftId: id, + expectedRevision: expectedRevision + ).appValue + } catch { + throw Self.failure(from: error) + } + } + + func subscribe( + bufferCapacity: Int, + receive: @escaping @Sendable (RadrootsRuntimeChange) async -> Void + ) async throws -> any RadrootsRuntimeSubscriptionToken { + let pair = AsyncStream.makeStream( + of: RadrootsRuntimeChange.self, + bufferingPolicy: .bufferingNewest(bufferCapacity) + ) + do { + let observer = RadrootsGeneratedRuntimeObserver(continuation: pair.continuation) + let handle = try runtime.subscribeChanges(observer: observer) + let deliveryTask = Task { + for await change in pair.stream { + guard !Task.isCancelled else { break } + await receive(change) } + } + return RadrootsGeneratedSubscriptionToken( + handle: handle, + observer: observer, + deliveryTask: deliveryTask + ) + } catch { + pair.continuation.finish() + throw Self.failure(from: error) + } + } + + func shutdown() async throws -> RadrootsRuntimeShutdownReceipt { + do { + let receipt = try await runtime.shutdown() + return RadrootsRuntimeShutdownReceipt( + state: receipt.state, + alreadyClosed: receipt.alreadyClosed + ) + } catch { + throw Self.failure(from: error) + } + } + + static func start( + configuration: RadrootsRuntimeLaunchConfiguration + ) async throws -> RadrootsRuntimeBackendStart { + var createdRuntime: RadrootsRuntime? + do { + let runtime = try await RadrootsRuntime.withHostSigner( + applicationSupportDirectory: configuration.applicationSupportDirectory, + publicKeyHex: configuration.publicKeyHex, + sourceGenerationHex: configuration.sourceGenerationHex, + sourceGenerationCreatedAtUnixMs: configuration.sourceGenerationCreatedAtUnixMilliseconds, + protectedData: configuration.protectedData.generatedValue, + hostSigner: RadrootsGeneratedHostSigner(signer: configuration.signer) + ) + createdRuntime = runtime + runtime.setAppInfoPlatform( + platform: "iOS", + bundleId: configuration.app.bundleIdentifier, + version: configuration.app.version, + buildNumber: configuration.app.buildNumber, + buildSha: configuration.app.buildSHA + ) + + switch configuration.networkProfile { + case .publicNetwork: + try runtime.configurePublicRelays(writableRelays: configuration.writableRelays) + case .simulator: + try runtime.configureSimulatorRelays(loopbackRelays: configuration.writableRelays) + case .device: + try runtime.configureDeviceRelays(writableRelays: configuration.writableRelays) + } + if let blossom = configuration.blossom { + try runtime.configureBlossom( + hostKind: blossom.hostKind.generatedValue, + endpointAuthority: blossom.endpointAuthority.generatedValue, + primaryOrigin: blossom.primaryOrigin, + fallbackOrigins: blossom.fallbackOrigins + ) + } + + let backend = RadrootsGeneratedRuntimeBackend(runtime: runtime) + return try await RadrootsRuntimeBackendStart( + backend: backend, + snapshot: backend.snapshot() + ) + } catch { + if let createdRuntime { + _ = try? await createdRuntime.shutdown() + } + throw Self.failure(from: error) + } + } + + private static func failure(from error: Error) -> RadrootsRuntimeFailure { + if case RadrootsAppError.Failure(let report) = error { + return RadrootsRuntimeFailure( + schemaVersion: report.schemaVersion, + code: report.code, + category: report.category, + retryable: report.retryable, + recoveryActions: report.recoveryActions, + operationID: report.operationId, + capabilityID: report.capabilityId, + safeMessage: report.safeMessage + ) + } + if let failure = error as? RadrootsRuntimeFailure { + return failure + } + return .local( + operation: "generated.runtime", + code: "ios.generated_runtime.unexpected", + safeMessage: "The Radroots runtime could not complete the operation." + ) + } +} + +extension RadrootsRuntimeSignerAvailability { + fileprivate var generatedValue: SignerAvailabilityRecord { + switch self { + case .ready: .ready + case .busy: .busy + case .locked: .locked + case .unavailable: .unavailable } + } +} - func shutdown() async throws -> RadrootsRuntimeShutdownReceipt { - do { - let receipt = try await runtime.shutdown() - return RadrootsRuntimeShutdownReceipt( - state: receipt.state, - alreadyClosed: receipt.alreadyClosed - ) - } catch { - throw Self.failure(from: error) - } +extension HostSigningPurpose { + fileprivate var appValue: RadrootsRuntimeSigningPurpose { + switch self { + case .nostrEvent: .nostrEvent + case .blossomUpload: .blossomUpload } + } +} - static func start( - configuration: RadrootsRuntimeLaunchConfiguration - ) async throws -> RadrootsRuntimeBackendStart { - var createdRuntime: RadrootsRuntime? - do { - let runtime = try await RadrootsRuntime.withHostSigner( - applicationSupportDirectory: configuration.applicationSupportDirectory, - publicKeyHex: configuration.publicKeyHex, - sourceGenerationHex: configuration.sourceGenerationHex, - sourceGenerationCreatedAtUnixMs: configuration.sourceGenerationCreatedAtUnixMilliseconds, - protectedData: configuration.protectedData.generatedValue, - hostSigner: RadrootsGeneratedHostSigner(signer: configuration.signer) - ) - createdRuntime = runtime - runtime.setAppInfoPlatform( - platform: "iOS", - bundleId: configuration.app.bundleIdentifier, - version: configuration.app.version, - buildNumber: configuration.app.buildNumber, - buildSha: configuration.app.buildSHA - ) - - switch configuration.networkProfile { - case .publicNetwork: - try runtime.configurePublicRelays(writableRelays: configuration.writableRelays) - case .simulator: - try runtime.configureSimulatorRelays(loopbackRelays: configuration.writableRelays) - case .device: - try runtime.configureDeviceRelays(writableRelays: configuration.writableRelays) - } - if let blossom = configuration.blossom { - try runtime.configureBlossom( - hostKind: blossom.hostKind.generatedValue, - endpointAuthority: blossom.endpointAuthority.generatedValue, - primaryOrigin: blossom.primaryOrigin, - fallbackOrigins: blossom.fallbackOrigins - ) - } +extension RadrootsRuntimeSigningOutcome { + fileprivate var generatedOutcome: HostSigningOutcome { + switch self { + case .signed: .signed + case .locked: .locked + case .cancelled: .cancelled + case .rejected: .rejected + case .timedOut: .timedOut + case .unavailable: .unavailable + case .invalidated: .invalidated + case .failed: .failed + } + } + + fileprivate var signatureHex: String? { + if case .signed(let signatureHex) = self { + return signatureHex + } + return nil + } +} - let backend = RadrootsGeneratedRuntimeBackend(runtime: runtime) - return try await RadrootsRuntimeBackendStart( - backend: backend, - snapshot: backend.snapshot() - ) - } catch { - if let createdRuntime { - _ = try? await createdRuntime.shutdown() - } - throw Self.failure(from: error) - } +extension RadrootsRuntimeClient { + static func production() -> RadrootsRuntimeClient { + RadrootsRuntimeClient { configuration in + try await RadrootsGeneratedRuntimeBackend.start(configuration: configuration) } + } +} - private static func failure(from error: Error) -> RadrootsRuntimeFailure { - if case let RadrootsAppError.Failure(report) = error { - return RadrootsRuntimeFailure( - schemaVersion: report.schemaVersion, - code: report.code, - category: report.category, - retryable: report.retryable, - recoveryActions: report.recoveryActions, - operationID: report.operationId, - capabilityID: report.capabilityId, - safeMessage: report.safeMessage - ) - } - if let failure = error as? RadrootsRuntimeFailure { - return failure - } - return .local( - operation: "generated.runtime", - code: "ios.generated_runtime.unexpected", - safeMessage: "The Radroots runtime could not complete the operation." - ) +extension RadrootsProtectedDataState { + fileprivate var generatedValue: ProtectedDataAvailability { + switch self { + case .available: .available + case .unavailable: .unavailable } + } } -private extension RadrootsRuntimeSignerAvailability { - var generatedValue: SignerAvailabilityRecord { - switch self { - case .ready: .ready - case .busy: .busy - case .locked: .locked - case .unavailable: .unavailable - } +extension RadrootsBlossomHostKind { + fileprivate var generatedValue: FfiBlossomHostKind { + switch self { + case .native: .native + case .simulator: .simulator + case .physicalDevice: .physicalDevice } + } } -private extension HostSigningPurpose { - var appValue: RadrootsRuntimeSigningPurpose { - switch self { - case .nostrEvent: .nostrEvent - case .blossomUpload: .blossomUpload - } +extension RadrootsBlossomEndpointAuthority { + fileprivate var generatedValue: FfiBlossomEndpointAuthority { + switch self { + case .publicWebPKI: .publicWebPki + case .loopbackDevelopment: .loopbackDevelopment + case .privateNetworkDevelopment: .privateNetworkDevelopment } + } } -private extension RadrootsRuntimeSigningOutcome { - var generatedOutcome: HostSigningOutcome { - switch self { - case .signed: .signed - case .locked: .locked - case .cancelled: .cancelled - case .rejected: .rejected - case .timedOut: .timedOut - case .unavailable: .unavailable - case .invalidated: .invalidated - case .failed: .failed - } - } +extension FfiBlossomConfigurationRecord { + fileprivate var appValue: RadrootsBlossomConfigurationStatus { + RadrootsBlossomConfigurationStatus( + schemaVersion: schemaVersion, + hostKind: hostKind, + endpointAuthority: endpointAuthority, + primaryOrigin: primaryOrigin, + fallbackOrigins: fallbackOrigins, + configFingerprint: configFingerprint + ) + } +} - var signatureHex: String? { - if case let .signed(signatureHex) = self { - return signatureHex - } - return nil - } +extension FfiBlossomEvidenceRecord { + fileprivate var appValue: RadrootsBlossomEvidence { + RadrootsBlossomEvidence( + schemaVersion: schemaVersion, + origin: origin, + configFingerprint: configFingerprint, + state: state, + lastSuccessfulState: lastSuccessfulState, + transportSecurity: transportSecurity, + observedAtUnixMilliseconds: observedAtUnixMs, + httpStatus: httpStatus, + errorCode: errorCode, + serverErrorCode: serverErrorCode, + errorPhase: errorPhase, + retryable: retryable, + possibleOrphan: possibleOrphan, + attempts: attempts + ) + } } -extension RadrootsRuntimeClient { - static func production() -> RadrootsRuntimeClient { - RadrootsRuntimeClient { configuration in - try await RadrootsGeneratedRuntimeBackend.start(configuration: configuration) - } - } +extension FfiRuntimeChangeKind { + fileprivate var appValue: RadrootsRuntimeChangeKind { + switch self { + case .initial: .initial + case .identity: .identity + case .settings: .settings + case .profile: .profile + case .today: .today + case .drafts: .drafts + case .relay: .relay + case .media: .media + case .lifecycle: .lifecycle + } + } } -private extension RadrootsProtectedDataState { - var generatedValue: ProtectedDataAvailability { - switch self { - case .available: .available - case .unavailable: .unavailable - } - } +extension RadrootsLocalNetwork { + fileprivate var generatedValue: FfiLocalNetworkRecord { + FfiLocalNetworkRecord( + schemaVersion: schemaVersion, + id: id, + label: label, + relayUrls: relayURLs, + locality: locality, + followedAuthors: followedAuthors, + generation: generation + ) + } } -private extension RadrootsBlossomHostKind { - var generatedValue: FfiBlossomHostKind { - switch self { - case .native: .native - case .simulator: .simulator - case .physicalDevice: .physicalDevice - } +extension RadrootsTodayProjectionUpdate { + fileprivate var generatedValue: FfiTodayProjectionUpdate { + switch self { + case .incremental: .incremental + case .rebuild: .rebuild } + } } -private extension RadrootsBlossomEndpointAuthority { - var generatedValue: FfiBlossomEndpointAuthority { - switch self { - case .publicWebPKI: .publicWebPki - case .loopbackDevelopment: .loopbackDevelopment - case .privateNetworkDevelopment: .privateNetworkDevelopment - } - } +extension FfiTodayRefreshRecord { + fileprivate var appValue: RadrootsTodayRefreshReceipt { + RadrootsTodayRefreshReceipt( + update: update.appValue, + sourceEvents: sourceEvents, + visibleCards: visibleCards, + profiles: profiles, + threadEntries: threadEntries, + contentGeneration: contentGeneration, + changed: changed + ) + } } -private extension FfiBlossomConfigurationRecord { - var appValue: RadrootsBlossomConfigurationStatus { - RadrootsBlossomConfigurationStatus( - schemaVersion: schemaVersion, - hostKind: hostKind, - endpointAuthority: endpointAuthority, - primaryOrigin: primaryOrigin, - fallbackOrigins: fallbackOrigins, - configFingerprint: configFingerprint - ) +extension FfiTodayProjectionUpdate { + fileprivate var appValue: RadrootsTodayProjectionUpdate { + switch self { + case .incremental: .incremental + case .rebuild: .rebuild } + } } -private extension FfiBlossomEvidenceRecord { - var appValue: RadrootsBlossomEvidence { - RadrootsBlossomEvidence( - schemaVersion: schemaVersion, - origin: origin, - configFingerprint: configFingerprint, - state: state, - lastSuccessfulState: lastSuccessfulState, - transportSecurity: transportSecurity, - observedAtUnixMilliseconds: observedAtUnixMs, - httpStatus: httpStatus, - errorCode: errorCode, - serverErrorCode: serverErrorCode, - errorPhase: errorPhase, - retryable: retryable, - possibleOrphan: possibleOrphan, - attempts: attempts - ) - } +extension FfiTodayPageRecord { + fileprivate var appValue: RadrootsTodayPage { + RadrootsTodayPage( + asOfUnixSeconds: asOfUnixS, + items: items.map(\.appValue), + nextCursor: nextCursor + ) + } } -private extension FfiRuntimeChangeKind { - var appValue: RadrootsRuntimeChangeKind { - switch self { - case .initial: .initial - case .identity: .identity - case .settings: .settings - case .profile: .profile - case .today: .today - case .drafts: .drafts - case .relay: .relay - case .media: .media - case .lifecycle: .lifecycle - } - } +extension FfiTodayCardRecord { + fileprivate var appValue: RadrootsTodayCard { + RadrootsTodayCard( + id: cardId, + type: cardType.appValue, + sourceEventID: sourceEventId, + sourceAddress: sourceAddress, + authorPublicKey: authorPublicKey, + contractID: contractId, + title: title, + content: content, + authoredAtUnixSeconds: authoredAtUnixS, + effectiveAtUnixSeconds: effectiveAtUnixS, + eventStartUnixSeconds: eventStartUnixS, + eventEndUnixSeconds: eventEndUnixS, + location: location, + priceAmount: priceAmount, + priceCurrency: priceCurrency, + priceUnit: priceUnit, + quantity: quantity, + foodSummary: foodSummary, + foodPublishedAtUnixSeconds: foodPublishedAtUnixS, + foodStatus: foodStatus, + contextRank: contextRank, + inclusionReason: inclusionReason, + media: media.map(\.appValue), + lifecycle: lifecycle.appValue, + rankDigest: rankDigest, + authorProfile: authorProfile?.appValue, + thread: thread.map(\.appValue), + localOperationID: localOperationId, + localOperationState: localOperationState + ) + } } -private extension RadrootsLocalNetwork { - var generatedValue: FfiLocalNetworkRecord { - FfiLocalNetworkRecord( - schemaVersion: schemaVersion, - id: id, - label: label, - relayUrls: relayURLs, - locality: locality, - followedAuthors: followedAuthors, - generation: generation - ) +extension FfiTodayCardType { + fileprivate var appValue: RadrootsTodayCardType { + switch self { + case .update: .update + case .photoUpdate: .photoUpdate + case .ask: .ask + case .event: .event + case .foodAvailability: .foodAvailability } + } } -private extension RadrootsTodayProjectionUpdate { - var generatedValue: FfiTodayProjectionUpdate { - switch self { - case .incremental: .incremental - case .rebuild: .rebuild - } - } +extension FfiMediaReferenceRecord { + fileprivate var appValue: RadrootsMediaReference { + RadrootsMediaReference( + url: url, + sha256: sha256, + mediaType: mediaType, + width: width, + height: height, + byteSize: byteSize, + alt: alt, + verification: verification.appValue + ) + } } -private extension FfiTodayRefreshRecord { - var appValue: RadrootsTodayRefreshReceipt { - RadrootsTodayRefreshReceipt( - update: update.appValue, - sourceEvents: sourceEvents, - visibleCards: visibleCards, - profiles: profiles, - threadEntries: threadEntries, - contentGeneration: contentGeneration, - changed: changed - ) +extension FfiMediaVerificationState { + fileprivate var appValue: RadrootsMediaVerificationState { + switch self { + case .pending: .pending + case .verified: .verified + case .failed: .failed + case .unavailable: .unavailable } + } } -private extension FfiTodayProjectionUpdate { - var appValue: RadrootsTodayProjectionUpdate { - switch self { - case .incremental: .incremental - case .rebuild: .rebuild - } - } +extension FfiProfileRecord { + fileprivate var appValue: RadrootsProfileSummary { + RadrootsProfileSummary( + authorPublicKey: authorPublicKey, + name: name, + displayName: displayName, + about: about, + picture: picture?.appValue, + banner: banner?.appValue, + nip05: nip05, + website: website, + lightningAddress: lightningAddress + ) + } } -private extension FfiTodayPageRecord { - var appValue: RadrootsTodayPage { - RadrootsTodayPage( - asOfUnixSeconds: asOfUnixS, - items: items.map(\.appValue), - nextCursor: nextCursor - ) - } +extension FfiSearchResultRecord { + fileprivate var appValue: RadrootsSearchResult { + RadrootsSearchResult( + type: resultType.appValue, + id: stableId, + card: card?.appValue, + profile: profile?.appValue + ) + } } -private extension FfiTodayCardRecord { - var appValue: RadrootsTodayCard { - RadrootsTodayCard( - id: cardId, - type: cardType.appValue, - sourceEventID: sourceEventId, - sourceAddress: sourceAddress, - authorPublicKey: authorPublicKey, - contractID: contractId, - title: title, - content: content, - authoredAtUnixSeconds: authoredAtUnixS, - effectiveAtUnixSeconds: effectiveAtUnixS, - eventStartUnixSeconds: eventStartUnixS, - eventEndUnixSeconds: eventEndUnixS, - location: location, - priceAmount: priceAmount, - priceCurrency: priceCurrency, - priceUnit: priceUnit, - quantity: quantity, - foodSummary: foodSummary, - foodPublishedAtUnixSeconds: foodPublishedAtUnixS, - foodStatus: foodStatus, - contextRank: contextRank, - inclusionReason: inclusionReason, - media: media.map(\.appValue), - lifecycle: lifecycle.appValue, - rankDigest: rankDigest, - authorProfile: authorProfile?.appValue, - thread: thread.map(\.appValue), - localOperationID: localOperationId, - localOperationState: localOperationState - ) +extension FfiSearchResultType { + fileprivate var appValue: RadrootsSearchResultType { + switch self { + case .card: .card + case .profile: .profile } + } } -private extension FfiTodayCardType { - var appValue: RadrootsTodayCardType { - switch self { - case .update: .update - case .photoUpdate: .photoUpdate - case .ask: .ask - case .event: .event - case .foodAvailability: .foodAvailability - } - } +extension FfiMeRecord { + fileprivate var appValue: RadrootsMeSnapshot { + RadrootsMeSnapshot( + publicKey: publicKey, + profile: profile?.appValue, + cards: cards.map(\.appValue) + ) + } } -private extension FfiMediaReferenceRecord { - var appValue: RadrootsMediaReference { - RadrootsMediaReference( - url: url, - sha256: sha256, - mediaType: mediaType, - width: width, - height: height, - byteSize: byteSize, - alt: alt, - verification: verification.appValue - ) - } +extension FfiThreadEntryRecord { + fileprivate var appValue: RadrootsThreadEntry { + RadrootsThreadEntry( + id: eventId, + authorPublicKey: authorPublicKey, + content: content, + authoredAtUnixSeconds: authoredAtUnixS, + type: profile.appValue, + root: root, + parentEventID: parentEventId, + authorProfile: authorProfile?.appValue + ) + } } -private extension FfiMediaVerificationState { - var appValue: RadrootsMediaVerificationState { - switch self { - case .pending: .pending - case .verified: .verified - case .failed: .failed - case .unavailable: .unavailable - } +extension FfiThreadProfile { + fileprivate var appValue: RadrootsThreadEntryType { + switch self { + case .profile: .profile + case .reply: .reply + case .comment: .comment + case .deletion: .deletion } + } } -private extension FfiProfileRecord { - var appValue: RadrootsProfileSummary { - RadrootsProfileSummary( - authorPublicKey: authorPublicKey, - name: name, - displayName: displayName, - about: about, - picture: picture?.appValue, - banner: banner?.appValue, - nip05: nip05, - website: website, - lightningAddress: lightningAddress - ) +extension FfiCardLifecycleState { + fileprivate var appValue: RadrootsCardLifecycleState { + switch self { + case .active: .active + case .sold: .sold + case .past: .past } + } } -private extension FfiSearchResultRecord { - var appValue: RadrootsSearchResult { - RadrootsSearchResult( - type: resultType.appValue, - id: stableId, - card: card?.appValue, - profile: profile?.appValue - ) - } +extension FfiAddSchemaRecord { + fileprivate var appValue: RadrootsAddSchema { + RadrootsAddSchema( + schemaVersion: schemaVersion, + commandType: commandType.appValue, + label: label, + fields: fields.map(\.appValue) + ) + } } -private extension FfiSearchResultType { - var appValue: RadrootsSearchResultType { - switch self { - case .card: .card - case .profile: .profile - } - } +extension FfiAddFieldRecord { + fileprivate var appValue: RadrootsAddField { + RadrootsAddField( + schemaVersion: schemaVersion, + id: id, + label: label, + kind: kind.appValue, + required: required, + choices: choices, + maxBytes: maxBytes, + maxItems: maxItems + ) + } } -private extension FfiMeRecord { - var appValue: RadrootsMeSnapshot { - RadrootsMeSnapshot( - publicKey: publicKey, - profile: profile?.appValue, - cards: cards.map(\.appValue) - ) - } +extension FfiAddFieldKind { + fileprivate var appValue: RadrootsAddFieldKind { + switch self { + case .text: .text + case .multilineText: .multilineText + case .date: .date + case .dateTime: .dateTime + case .decimal: .decimal + case .choice: .choice + case .location: .location + case .media: .media + } + } } -private extension FfiThreadEntryRecord { - var appValue: RadrootsThreadEntry { - RadrootsThreadEntry( - id: eventId, - authorPublicKey: authorPublicKey, - content: content, - authoredAtUnixSeconds: authoredAtUnixS, - type: profile.appValue, - root: root, - parentEventID: parentEventId, - authorProfile: authorProfile?.appValue - ) +extension FfiAddCommandType { + fileprivate var appValue: RadrootsAddCommandType { + switch self { + case .createUpdate: .createUpdate + case .createPhotoUpdate: .createPhotoUpdate + case .createAsk: .createAsk + case .createEvent: .createEvent + case .createFoodAvailability: .createFoodAvailability } + } } -private extension FfiThreadProfile { - var appValue: RadrootsThreadEntryType { - switch self { - case .profile: .profile - case .reply: .reply - case .comment: .comment - case .deletion: .deletion - } +extension RadrootsAddCommandType { + fileprivate var generatedValue: FfiAddCommandType { + switch self { + case .createUpdate: .createUpdate + case .createPhotoUpdate: .createPhotoUpdate + case .createAsk: .createAsk + case .createEvent: .createEvent + case .createFoodAvailability: .createFoodAvailability } + } } -private extension FfiCardLifecycleState { - var appValue: RadrootsCardLifecycleState { - switch self { - case .active: .active - case .sold: .sold - case .past: .past - } +extension FfiEventTimingKind { + fileprivate var appValue: RadrootsEventTiming { + switch self { + case .allDay: .allDay + case .timed: .timed } + } } -private extension FfiAddSchemaRecord { - var appValue: RadrootsAddSchema { - RadrootsAddSchema( - schemaVersion: schemaVersion, - commandType: commandType.appValue, - label: label, - fields: fields.map(\.appValue) - ) +extension RadrootsEventTiming { + fileprivate var generatedValue: FfiEventTimingKind { + switch self { + case .allDay: .allDay + case .timed: .timed } + } } -private extension FfiAddFieldRecord { - var appValue: RadrootsAddField { - RadrootsAddField( - schemaVersion: schemaVersion, - id: id, - label: label, - kind: kind.appValue, - required: required, - choices: choices, - maxBytes: maxBytes - ) - } +extension RadrootsAddRuntimeInput { + fileprivate var generatedValue: FfiAddDraftInput { + FfiAddDraftInput( + schemaVersion: 1, + commandType: form.commandType.generatedValue, + content: form.content, + identifier: form.identifier, + title: form.title, + summary: form.summary, + location: form.location, + eventTiming: form.eventTiming?.generatedValue, + eventStartDate: form.eventStartDate, + eventEndDate: form.eventEndDate, + eventStartUnixS: form.eventStartUnixSeconds, + eventEndUnixS: form.eventEndUnixSeconds, + eventTimezone: form.eventTimezone, + priceAmount: form.priceAmount, + currency: form.currency, + unit: form.unit, + quantity: form.quantity, + foodPublishedAtUnixS: form.foodPublishedAtUnixSeconds, + foodStatus: form.foodStatus, + media: media.map(\.generatedValue) + ) + } } -private extension FfiAddFieldKind { - var appValue: RadrootsAddFieldKind { - switch self { - case .text: .text - case .multilineText: .multilineText - case .date: .date - case .dateTime: .dateTime - case .decimal: .decimal - case .choice: .choice - case .location: .location - case .media: .media - } - } +extension RadrootsPreparedMediaHandle { + fileprivate var generatedValue: FfiPreparedMediaInput { + FfiPreparedMediaInput( + schemaVersion: 1, + opaqueReference: media.opaqueReference, + fileDescriptor: fileDescriptor, + sha256: media.sha256, + mediaType: media.mediaType, + byteSize: media.byteSize, + width: media.width, + height: media.height, + alt: media.alt, + preparedAtUnixS: media.preparedAtUnixSeconds + ) + } } -private extension FfiAddCommandType { - var appValue: RadrootsAddCommandType { - switch self { - case .createUpdate: .createUpdate - case .createPhotoUpdate: .createPhotoUpdate - case .createAsk: .createAsk - case .createEvent: .createEvent - case .createFoodAvailability: .createFoodAvailability - } - } +extension FfiDraftFormMediaRecord { + fileprivate var appValue: RadrootsPreparedMedia { + RadrootsPreparedMedia( + opaqueReference: opaqueReference, + remoteURL: url, + sha256: sha256, + mediaType: mediaType, + byteSize: byteSize, + width: width, + height: height, + alt: alt, + preparedAtUnixSeconds: preparedAtUnixS + ) + } } -private extension RadrootsAddCommandType { - var generatedValue: FfiAddCommandType { - switch self { - case .createUpdate: .createUpdate - case .createPhotoUpdate: .createPhotoUpdate - case .createAsk: .createAsk - case .createEvent: .createEvent - case .createFoodAvailability: .createFoodAvailability - } - } +extension FfiDraftFormRecord { + fileprivate var appValue: RadrootsAddForm { + RadrootsAddForm( + commandType: commandType.appValue, + content: content, + identifier: identifier, + title: title, + summary: summary, + location: location, + eventTiming: eventTiming?.appValue, + eventStartDate: eventStartDate, + eventEndDate: eventEndDate, + eventStartUnixSeconds: eventStartUnixS, + eventEndUnixSeconds: eventEndUnixS, + eventTimezone: eventTimezone, + priceAmount: priceAmount, + currency: currency, + unit: unit, + quantity: quantity, + foodPublishedAtUnixSeconds: foodPublishedAtUnixS, + foodStatus: foodStatus, + media: media.map(\.appValue) + ) + } } -private extension FfiEventTimingKind { - var appValue: RadrootsEventTiming { - switch self { - case .allDay: .allDay - case .timed: .timed - } - } +extension FfiDraftStatusRecord { + fileprivate var appValue: RadrootsDraftStatus { + RadrootsDraftStatus( + id: draftId, + revision: revision, + authorPublicKey: authorPublicKey, + kind: kind.appValue, + commandType: commandType.appValue, + form: form?.appValue, + state: state.appValue, + cardID: cardId, + operationID: operationId, + createdAtUnixMilliseconds: createdAtUnixMs, + updatedAtUnixMilliseconds: updatedAtUnixMs, + media: media.map(\.appValue), + settlement: settlement?.appValue, + isRevision: isRevision + ) + } } -private extension RadrootsEventTiming { - var generatedValue: FfiEventTimingKind { - switch self { - case .allDay: .allDay - case .timed: .timed - } - } +extension FfiRevisionStatusRecord { + fileprivate var appValue: RadrootsRevisionStatus { + RadrootsRevisionStatus( + operationID: operationId, + replacement: replacement.appValue, + retraction: retraction?.appValue, + policy: policy.appValue, + phase: phase.appValue + ) + } } -private extension RadrootsAddRuntimeInput { - var generatedValue: FfiAddDraftInput { - FfiAddDraftInput( - schemaVersion: 1, - commandType: form.commandType.generatedValue, - content: form.content, - identifier: form.identifier, - title: form.title, - summary: form.summary, - location: form.location, - eventTiming: form.eventTiming?.generatedValue, - eventStartDate: form.eventStartDate, - eventEndDate: form.eventEndDate, - eventStartUnixS: form.eventStartUnixSeconds, - eventEndUnixS: form.eventEndUnixSeconds, - eventTimezone: form.eventTimezone, - priceAmount: form.priceAmount, - currency: form.currency, - unit: form.unit, - quantity: form.quantity, - foodPublishedAtUnixS: form.foodPublishedAtUnixSeconds, - foodStatus: form.foodStatus, - media: media.map(\.generatedValue) - ) +extension FfiRevisionPolicy { + fileprivate var appValue: RadrootsRevisionPolicy { + switch self { + case .replaceThenRetract: .replaceThenRetract + case .addressableReplacement: .addressableReplacement } + } } -private extension RadrootsPreparedMediaHandle { - var generatedValue: FfiPreparedMediaInput { - FfiPreparedMediaInput( - schemaVersion: 1, - opaqueReference: media.opaqueReference, - fileDescriptor: fileDescriptor, - sha256: media.sha256, - mediaType: media.mediaType, - byteSize: media.byteSize, - width: media.width, - height: media.height, - alt: media.alt, - preparedAtUnixS: media.preparedAtUnixSeconds - ) - } +extension FfiRevisionPhase { + fileprivate var appValue: RadrootsRevisionPhase { + switch self { + case .replacementPending: .replacementPending + case .replacementFailed: .replacementFailed + case .retractionPending: .retractionPending + case .complete: .complete + case .partialEffect: .partialEffect + case .cancelled: .cancelled + } + } } -private extension FfiDraftFormMediaRecord { - var appValue: RadrootsPreparedMedia { - RadrootsPreparedMedia( - opaqueReference: opaqueReference, - remoteURL: url, - sha256: sha256, - mediaType: mediaType, - byteSize: byteSize, - width: width, - height: height, - alt: alt, - preparedAtUnixSeconds: preparedAtUnixS - ) +extension FfiRelayAccessRecord { + fileprivate var appValue: RadrootsRelayAccess { + switch self { + case .readOnly: .readOnly + case .readWrite: .readWrite } + } } -private extension FfiDraftFormRecord { - var appValue: RadrootsAddForm { - RadrootsAddForm( - commandType: commandType.appValue, - content: content, - identifier: identifier, - title: title, - summary: summary, - location: location, - eventTiming: eventTiming?.appValue, - eventStartDate: eventStartDate, - eventEndDate: eventEndDate, - eventStartUnixSeconds: eventStartUnixS, - eventEndUnixSeconds: eventEndUnixS, - eventTimezone: eventTimezone, - priceAmount: priceAmount, - currency: currency, - unit: unit, - quantity: quantity, - foodPublishedAtUnixSeconds: foodPublishedAtUnixS, - foodStatus: foodStatus, - media: media.map(\.appValue) - ) +extension FfiDraftKind { + fileprivate var appValue: RadrootsDraftKind { + switch self { + case .add: .add + case .retraction: .retraction } + } } -private extension FfiDraftStatusRecord { - var appValue: RadrootsDraftStatus { - RadrootsDraftStatus( - id: draftId, - revision: revision, - authorPublicKey: authorPublicKey, - kind: kind.appValue, - commandType: commandType.appValue, - form: form?.appValue, - state: state.appValue, - cardID: cardId, - operationID: operationId, - createdAtUnixMilliseconds: createdAtUnixMs, - updatedAtUnixMilliseconds: updatedAtUnixMs, - media: media.map(\.appValue), - settlement: settlement?.appValue - ) - } +extension FfiOutboxState { + fileprivate var appValue: RadrootsOutboxState { + switch self { + case .draft: .draft + case .mediaPreparing: .mediaPreparing + case .mediaUploading: .mediaUploading + case .readyToSign: .readyToSign + case .signing: .signing + case .signed: .signed + case .queued: .queued + case .delivering: .delivering + case .partiallyDelivered: .partiallyDelivered + case .retryable: .retryable + case .terminal: .terminal + case .cancelled: .cancelled + case .complete: .complete + } + } } -private extension FfiDraftKind { - var appValue: RadrootsDraftKind { - switch self { - case .add: .add - case .retraction: .retraction - } - } +extension FfiDraftMediaRecord { + fileprivate var appValue: RadrootsDraftMediaStatus { + RadrootsDraftMediaStatus( + url: url, + stage: stage.appValue, + uploadAttempts: uploadAttempts, + verifiedAtUnixMilliseconds: verifiedAtUnixMs, + possibleOrphan: possibleOrphan, + orphanReasonCode: orphanReasonCode, + orphanRecordedAtUnixMilliseconds: orphanRecordedAtUnixMs + ) + } } -private extension FfiOutboxState { - var appValue: RadrootsOutboxState { - switch self { - case .draft: .draft - case .mediaPreparing: .mediaPreparing - case .mediaUploading: .mediaUploading - case .readyToSign: .readyToSign - case .signing: .signing - case .signed: .signed - case .queued: .queued - case .delivering: .delivering - case .partiallyDelivered: .partiallyDelivered - case .retryable: .retryable - case .terminal: .terminal - case .cancelled: .cancelled - case .complete: .complete - } - } +extension FfiMediaStage { + fileprivate var appValue: RadrootsDraftMediaStage { + switch self { + case .pending: .pending + case .preparing: .preparing + case .uploading: .uploading + case .verified: .verified + case .failed: .failed + case .orphaned: .orphaned + } + } } -private extension FfiDraftMediaRecord { - var appValue: RadrootsDraftMediaStatus { - RadrootsDraftMediaStatus( - url: url, - stage: stage.appValue, - uploadAttempts: uploadAttempts, - verifiedAtUnixMilliseconds: verifiedAtUnixMs, - possibleOrphan: possibleOrphan, - orphanReasonCode: orphanReasonCode, - orphanRecordedAtUnixMilliseconds: orphanRecordedAtUnixMs - ) - } +extension FfiOperationSettlementRecord { + fileprivate var appValue: RadrootsOperationSettlement { + RadrootsOperationSettlement( + artifacts: artifacts, + signed: signed, + admitted: admitted, + pending: pending, + retryable: retryable, + indeterminate: indeterminate, + failedTerminal: failedTerminal, + cancelled: cancelled, + deliveryPlans: deliveryPlans, + deliverySatisfied: deliverySatisfied, + deliveryPending: deliveryPending, + deliveryRetryable: deliveryRetryable, + deliveryExhausted: deliveryExhausted, + deliveryFailedTerminal: deliveryFailedTerminal, + deliveryCancelled: deliveryCancelled + ) + } } -private extension FfiMediaStage { - var appValue: RadrootsDraftMediaStage { - switch self { - case .pending: .pending - case .preparing: .preparing - case .uploading: .uploading - case .verified: .verified - case .failed: .failed - case .orphaned: .orphaned - } - } +extension RadrootsRetractionDraftInput { + fileprivate var generatedValue: FfiRetractionDraftInput { + FfiRetractionDraftInput( + schemaVersion: 1, + commandType: commandType.generatedValue, + targetCardId: targetCardID, + targetEventId: targetEventID, + targetKind: targetKind, + targetAddress: targetAddress, + reason: reason + ) + } } -private extension FfiOperationSettlementRecord { - var appValue: RadrootsOperationSettlement { - RadrootsOperationSettlement( - artifacts: artifacts, - signed: signed, - admitted: admitted, - pending: pending, - retryable: retryable, - indeterminate: indeterminate, - failedTerminal: failedTerminal, - cancelled: cancelled, - deliveryPlans: deliveryPlans, - deliverySatisfied: deliverySatisfied, - deliveryPending: deliveryPending, - deliveryRetryable: deliveryRetryable, - deliveryExhausted: deliveryExhausted, - deliveryFailedTerminal: deliveryFailedTerminal, - deliveryCancelled: deliveryCancelled - ) - } +extension RadrootsBlossomUploadIntent { + fileprivate var generatedValue: FfiBlossomUploadIntent { + FfiBlossomUploadIntent( + schemaVersion: 1, + draftId: draftID, + expectedRevision: expectedRevision, + media: media.generatedValue + ) + } } -private extension RadrootsRetractionDraftInput { - var generatedValue: FfiRetractionDraftInput { - FfiRetractionDraftInput( - schemaVersion: 1, - commandType: commandType.generatedValue, - targetCardId: targetCardID, - targetEventId: targetEventID, - targetKind: targetKind, - targetAddress: targetAddress, - reason: reason - ) - } +extension FfiNativeUploadJobRecord { + fileprivate var appValue: RadrootsNativeUploadJob { + RadrootsNativeUploadJob( + operationID: operationId, + draft: draft.appValue, + remoteURL: remoteUrl, + authorizationHeader: authorizationHeader, + expectedSHA256: expectedSha256, + mediaType: mediaType, + byteSize: byteSize + ) + } } -private extension RadrootsBlossomUploadIntent { - var generatedValue: FfiBlossomUploadIntent { - FfiBlossomUploadIntent( - schemaVersion: 1, - draftId: draftID, - expectedRevision: expectedRevision, - media: media.generatedValue - ) - } +extension RadrootsNativeUploadCompletion { + fileprivate var generatedValue: FfiNativeUploadCompletionInput { + FfiNativeUploadCompletionInput( + schemaVersion: 1, + draftId: draftID, + expectedRevision: expectedRevision, + media: media.generatedValue, + statusCode: statusCode, + responseMediaType: responseMediaType, + responseContentEncoding: responseContentEncoding, + responseBody: responseBody + ) + } } diff --git a/Radroots/Runtime/RadrootsLifecycleCoordinator.swift b/Radroots/Runtime/RadrootsLifecycleCoordinator.swift @@ -3,390 +3,413 @@ import Foundation import RadrootsKit final class RadrootsCompletionOnce: @unchecked Sendable { - private let lock = NSLock() - private var completion: (() -> Void)? - - init(_ completion: @escaping () -> Void) { - self.completion = completion - } - - func complete() { - let action = lock.withLock { - let action = completion - completion = nil - return action - } - action?() + private let lock = NSLock() + private var completion: (() -> Void)? + + init(_ completion: @escaping () -> Void) { + self.completion = completion + } + + func complete() { + let action = lock.withLock { + let action = completion + completion = nil + return action } + action?() + } } actor RadrootsBackgroundEventRouter { - typealias Handler = @Sendable ( - _ identifier: String, - _ completion: @escaping @Sendable () -> Void + typealias Handler = + @Sendable ( + _ identifier: String, + _ completion: @escaping @Sendable () -> Void ) async -> Void - static let shared = RadrootsBackgroundEventRouter() - private static let maximumPendingEvents = 8 - private static let pendingTimeoutNanoseconds: UInt64 = 15_000_000_000 - - private struct PendingEvent: Sendable { - let token: UUID - let identifier: String - let completion: RadrootsCompletionOnce - let timeout: Task<Void, Never> + static let shared = RadrootsBackgroundEventRouter() + private static let maximumPendingEvents = 8 + private static let pendingTimeoutNanoseconds: UInt64 = 15_000_000_000 + + private struct PendingEvent: Sendable { + let token: UUID + let identifier: String + let completion: RadrootsCompletionOnce + let timeout: Task<Void, Never> + } + + private var expectedIdentifier: String? + private var handler: Handler? + private var pending: [PendingEvent] = [] + + func attach(identifier: String, handler: @escaping Handler) async { + expectedIdentifier = identifier + self.handler = handler + let events = pending + pending.removeAll(keepingCapacity: true) + for event in events { + event.timeout.cancel() + guard event.identifier == identifier else { + event.completion.complete() + continue + } + await handler(event.identifier) { + event.completion.complete() + } } + } - private var expectedIdentifier: String? - private var handler: Handler? - private var pending: [PendingEvent] = [] - - func attach(identifier: String, handler: @escaping Handler) async { - expectedIdentifier = identifier - self.handler = handler - let events = pending - pending.removeAll(keepingCapacity: true) - for event in events { - event.timeout.cancel() - guard event.identifier == identifier else { - event.completion.complete() - continue - } - await handler(event.identifier) { - event.completion.complete() - } - } + func handle(identifier: String, completion: RadrootsCompletionOnce) async { + if let expectedIdentifier, identifier != expectedIdentifier { + completion.complete() + return } - - func handle(identifier: String, completion: RadrootsCompletionOnce) async { - if let expectedIdentifier, identifier != expectedIdentifier { - completion.complete() - return - } - if let handler { - await handler(identifier) { - completion.complete() - } - return - } - - while pending.count >= Self.maximumPendingEvents { - let oldest = pending.removeFirst() - oldest.timeout.cancel() - oldest.completion.complete() - } - let token = UUID() - let timeout = Task { [weak self] in - do { - try await Task.sleep(nanoseconds: Self.pendingTimeoutNanoseconds) - } catch { - return - } - await self?.expire(token: token) - } - pending.append( - PendingEvent( - token: token, - identifier: identifier, - completion: completion, - timeout: timeout - ) - ) + if let handler { + await handler(identifier) { + completion.complete() + } + return } - func detachAndCompletePending() { - handler = nil - expectedIdentifier = nil - let events = pending - pending.removeAll() - for event in events { - event.timeout.cancel() - event.completion.complete() - } + while pending.count >= Self.maximumPendingEvents { + let oldest = pending.removeFirst() + oldest.timeout.cancel() + oldest.completion.complete() } - - private func expire(token: UUID) { - guard let index = pending.firstIndex(where: { $0.token == token }) else { return } - let event = pending.remove(at: index) - event.completion.complete() + let token = UUID() + let timeout = Task { [weak self] in + do { + try await Task.sleep(nanoseconds: Self.pendingTimeoutNanoseconds) + } catch { + return + } + await self?.expire(token: token) } + pending.append( + PendingEvent( + token: token, + identifier: identifier, + completion: completion, + timeout: timeout + ) + ) + } + + func detachAndCompletePending() { + handler = nil + expectedIdentifier = nil + let events = pending + pending.removeAll() + for event in events { + event.timeout.cancel() + event.completion.complete() + } + } + + private func expire(token: UUID) { + guard let index = pending.firstIndex(where: { $0.token == token }) else { return } + let event = pending.remove(at: index) + event.completion.complete() + } } actor RadrootsLifecycleBridge { - static let shared = RadrootsLifecycleBridge() + static let shared = RadrootsLifecycleBridge() - private var shutdown: (@Sendable () async -> Void)? + private var shutdown: (@Sendable () async -> Void)? - func register(shutdown: @escaping @Sendable () async -> Void) { - self.shutdown = shutdown - } + func register(shutdown: @escaping @Sendable () async -> Void) { + self.shutdown = shutdown + } - func requestShutdown() async { - let action = shutdown - shutdown = nil - await action?() - await RadrootsBackgroundEventRouter.shared.detachAndCompletePending() - } + func requestShutdown() async { + let action = shutdown + shutdown = nil + await action?() + await RadrootsBackgroundEventRouter.shared.detachAndCompletePending() + } } struct RadrootsDiagnosticRecord: Codable, Sendable, Equatable { - let name: String - let category: String - let level: String - let fields: [String: String] - let occurredAtUnixMilliseconds: Int64 + let name: String + let category: String + let level: String + let fields: [String: String] + let occurredAtUnixMilliseconds: Int64 } actor RadrootsDiagnosticsBuffer: RadrootsTelemetry { - private let capacity: Int - private let policy = RadrootsTelemetryRedactionPolicy.default - private var events: [RadrootsTelemetryEvent] = [] - - init(capacity: Int = 128) { - self.capacity = min(max(capacity, 16), 256) - } - - func record(_ event: RadrootsTelemetryEvent) { - events.append(policy.redacted(event)) - if events.count > capacity { - events.removeFirst(events.count - capacity) - } + private let capacity: Int + private let policy = RadrootsTelemetryRedactionPolicy.default + private var events: [RadrootsTelemetryEvent] = [] + + init(capacity: Int = 128) { + self.capacity = min(max(capacity, 16), 256) + } + + func record(_ event: RadrootsTelemetryEvent) { + events.append(policy.redacted(event)) + if events.count > capacity { + events.removeFirst(events.count - capacity) } - - func records() -> [RadrootsDiagnosticRecord] { - events.map { event in - RadrootsDiagnosticRecord( - name: event.name, - category: event.category, - level: event.level.rawValue, - fields: Dictionary(uniqueKeysWithValues: event.fields.map { field in - (field.key, field.value.renderedValue) - }), - occurredAtUnixMilliseconds: Int64(event.occurredAt.timeIntervalSince1970 * 1000) - ) - } + } + + func records() -> [RadrootsDiagnosticRecord] { + events.map { event in + RadrootsDiagnosticRecord( + name: event.name, + category: event.category, + level: event.level.rawValue, + fields: Dictionary( + uniqueKeysWithValues: event.fields.map { field in + (field.key, field.value.renderedValue) + }), + occurredAtUnixMilliseconds: Int64(event.occurredAt.timeIntervalSince1970 * 1000) + ) } + } } private struct RadrootsDiagnosticsDocument: Codable, Sendable { - let schema: String - let appVersion: String - let appBuild: String - let runtimeCrate: String - let runtimeVersion: String - let runtimePhase: String - let relayProfile: String? - let relayState: String? - let relayCount: Int - let records: [RadrootsDiagnosticRecord] + let schema: String + let appVersion: String + let appBuild: String + let runtimeCrate: String + let runtimeVersion: String + let runtimePhase: String + let relayProfile: String? + let relayState: String? + let relayCount: Int + let records: [RadrootsDiagnosticRecord] } -actor RadrootsLifecycleCoordinator { - private static let maximumExportBytes = 256 * 1024 - - private let telemetry: any RadrootsTelemetry - private let buffer: RadrootsDiagnosticsBuffer - private let fileAccess: RadrootsAppleFileAccess? - private let transfer: (any RadrootsBackgroundTransfer)? - private let transferIdentifier: String? - private var backgroundEventsAttached = false - - init( - telemetry: any RadrootsTelemetry, - buffer: RadrootsDiagnosticsBuffer, - fileAccess: RadrootsAppleFileAccess?, - transfer: (any RadrootsBackgroundTransfer)?, - transferIdentifier: String? - ) { - self.telemetry = telemetry - self.buffer = buffer - self.fileAccess = fileAccess - self.transfer = transfer - self.transferIdentifier = transferIdentifier - } - - static func production(bundleIdentifier: String) throws -> RadrootsLifecycleCoordinator { - let roots = try RadrootsAppleFileRoots.appContainer(appIdentifier: bundleIdentifier) - let fileAccess = RadrootsAppleFileAccess(roots: roots) - let buffer = RadrootsDiagnosticsBuffer() - let logger = RadrootsAppleLoggerTelemetry(subsystem: bundleIdentifier) - let telemetry = RadrootsMultiplexTelemetry([ - logger, - RadrootsRedactingTelemetry(sink: buffer), - ]) - let identifier = try RadrootsBackgroundTransferValidation.normalizedIdentifier( - "\(bundleIdentifier.lowercased()).background.transfer" - ) - let transfer = try RadrootsAppleBackgroundTransfer( - roots: roots, - sessionIdentifier: identifier - ) - return RadrootsLifecycleCoordinator( - telemetry: telemetry, - buffer: buffer, - fileAccess: fileAccess, - transfer: transfer, - transferIdentifier: identifier - ) - } +struct RadrootsProductionLifecycleServices: Sendable { + let coordinator: RadrootsLifecycleCoordinator + let backgroundTransfer: any RadrootsBackgroundTransfer +} - static func disabled() -> RadrootsLifecycleCoordinator { - let buffer = RadrootsDiagnosticsBuffer() - return RadrootsLifecycleCoordinator( - telemetry: RadrootsRedactingTelemetry(sink: buffer), - buffer: buffer, - fileAccess: nil, - transfer: nil, - transferIdentifier: nil - ) +actor RadrootsLifecycleCoordinator { + private static let maximumExportBytes = 256 * 1024 + + private let telemetry: any RadrootsTelemetry + private let buffer: RadrootsDiagnosticsBuffer + private let fileAccess: RadrootsAppleFileAccess? + private let transfer: (any RadrootsBackgroundTransfer)? + private let transferIdentifier: String? + private var backgroundEventsAttached = false + + init( + telemetry: any RadrootsTelemetry, + buffer: RadrootsDiagnosticsBuffer, + fileAccess: RadrootsAppleFileAccess?, + transfer: (any RadrootsBackgroundTransfer)?, + transferIdentifier: String? + ) { + self.telemetry = telemetry + self.buffer = buffer + self.fileAccess = fileAccess + self.transfer = transfer + self.transferIdentifier = transferIdentifier + } + + static func production(bundleIdentifier: String) throws -> RadrootsLifecycleCoordinator { + try productionServices(bundleIdentifier: bundleIdentifier).coordinator + } + + static func productionServices( + bundleIdentifier: String + ) throws -> RadrootsProductionLifecycleServices { + let roots = try RadrootsAppleFileRoots.appContainer(appIdentifier: bundleIdentifier) + let fileAccess = RadrootsAppleFileAccess(roots: roots) + let buffer = RadrootsDiagnosticsBuffer() + let logger = RadrootsAppleLoggerTelemetry(subsystem: bundleIdentifier) + let telemetry = RadrootsMultiplexTelemetry([ + logger, + RadrootsRedactingTelemetry(sink: buffer), + ]) + let identifier = try RadrootsBackgroundTransferValidation.normalizedIdentifier( + "\(bundleIdentifier.lowercased()).background.transfer" + ) + let transfer = try RadrootsAppleBackgroundTransfer( + roots: roots, + sessionIdentifier: identifier + ) + let coordinator = RadrootsLifecycleCoordinator( + telemetry: telemetry, + buffer: buffer, + fileAccess: fileAccess, + transfer: transfer, + transferIdentifier: identifier + ) + return RadrootsProductionLifecycleServices( + coordinator: coordinator, + backgroundTransfer: transfer + ) + } + + static func disabled() -> RadrootsLifecycleCoordinator { + let buffer = RadrootsDiagnosticsBuffer() + return RadrootsLifecycleCoordinator( + telemetry: RadrootsRedactingTelemetry(sink: buffer), + buffer: buffer, + fileAccess: nil, + transfer: nil, + transferIdentifier: nil + ) + } + + static func testing(roots: RadrootsAppleFileRoots, capacity: Int = 128) + -> RadrootsLifecycleCoordinator + { + let buffer = RadrootsDiagnosticsBuffer(capacity: capacity) + return RadrootsLifecycleCoordinator( + telemetry: RadrootsRedactingTelemetry(sink: buffer), + buffer: buffer, + fileAccess: RadrootsAppleFileAccess(roots: roots), + transfer: nil, + transferIdentifier: nil + ) + } + + func attachBackgroundEvents() async { + guard !backgroundEventsAttached, + let transfer, + let transferIdentifier + else { + return } - - static func testing(roots: RadrootsAppleFileRoots, capacity: Int = 128) -> RadrootsLifecycleCoordinator { - let buffer = RadrootsDiagnosticsBuffer(capacity: capacity) - return RadrootsLifecycleCoordinator( - telemetry: RadrootsRedactingTelemetry(sink: buffer), - buffer: buffer, - fileAccess: RadrootsAppleFileAccess(roots: roots), - transfer: nil, - transferIdentifier: nil - ) + backgroundEventsAttached = true + await RadrootsBackgroundEventRouter.shared.attach(identifier: transferIdentifier) { + identifier, + completion in + await transfer.handleEventsForBackgroundURLSession( + identifier: identifier, + completionHandler: completion + ) } - - func attachBackgroundEvents() async { - guard !backgroundEventsAttached, - let transfer, - let transferIdentifier - else { - return - } - backgroundEventsAttached = true - await RadrootsBackgroundEventRouter.shared.attach(identifier: transferIdentifier) { - identifier, - completion in - await transfer.handleEventsForBackgroundURLSession( - identifier: identifier, - completionHandler: completion - ) - } + } + + func record( + _ name: String, + level: RadrootsTelemetryLevel = .info, + fields: [String: String] = [:] + ) async { + let values = fields.sorted(by: { $0.key < $1.key }).compactMap { key, value in + try? RadrootsTelemetryField.string(key, value) } - - func record( - _ name: String, - level: RadrootsTelemetryLevel = .info, - fields: [String: String] = [:] - ) async { - let values = fields.sorted(by: { $0.key < $1.key }).compactMap { key, value in - try? RadrootsTelemetryField.string(key, value) - } - guard let event = try? RadrootsTelemetryEvent( - name: name, - category: "ios_lifecycle", - level: level, - fields: values - ) else { - return - } - await telemetry.record(event) + guard + let event = try? RadrootsTelemetryEvent( + name: name, + category: "ios_lifecycle", + level: level, + fields: values + ) + else { + return } - - func prepareDiagnostics( - snapshot: RadrootsRuntimeSnapshot, - appVersion: String, - appBuild: String, - phase: String - ) async throws -> RadrootsPreparedExportDocument { - guard let fileAccess else { - throw RadrootsRuntimeFailure.local( - operation: "diagnostics.prepare", - code: "ios.diagnostics.unavailable", - safeMessage: "Diagnostics export is unavailable." - ) - } - let records = await buffer.records() - let document = RadrootsDiagnosticsDocument( - schema: "radroots.ios.diagnostics.v1", - appVersion: appVersion, - appBuild: appBuild, - runtimeCrate: snapshot.crateName, - runtimeVersion: snapshot.crateVersion, - runtimePhase: phase, - relayProfile: snapshot.relay?.profile, - relayState: snapshot.relay?.state, - relayCount: snapshot.relay?.relays.count ?? 0, - records: records - ) - let encoder = JSONEncoder() - encoder.outputFormatting = [.prettyPrinted, .sortedKeys] - let data = try encoder.encode(document) - guard data.count <= Self.maximumExportBytes else { - throw RadrootsRuntimeFailure.local( - operation: "diagnostics.prepare", - code: "ios.diagnostics.too_large", - safeMessage: "The bounded diagnostics report could not be prepared." - ) - } - return try fileAccess.prepareExport( - RadrootsExportDocumentRequest( - source: .inlineData(data), - suggestedFilename: "radroots-diagnostics.json", - mediaType: "application/json", - sizeBytes: UInt64(data.count) - ) - ) + await telemetry.record(event) + } + + func prepareDiagnostics( + snapshot: RadrootsRuntimeSnapshot, + appVersion: String, + appBuild: String, + phase: String + ) async throws -> RadrootsPreparedExportDocument { + guard let fileAccess else { + throw RadrootsRuntimeFailure.local( + operation: "diagnostics.prepare", + code: "ios.diagnostics.unavailable", + safeMessage: "Diagnostics export is unavailable." + ) } - - func releaseDiagnostics(_ export: RadrootsPreparedExportDocument) { - guard let fileAccess else { return } - try? fileAccess.releasePreparedExport(export) + let records = await buffer.records() + let document = RadrootsDiagnosticsDocument( + schema: "radroots.ios.diagnostics.v1", + appVersion: appVersion, + appBuild: appBuild, + runtimeCrate: snapshot.crateName, + runtimeVersion: snapshot.crateVersion, + runtimePhase: phase, + relayProfile: snapshot.relay?.profile, + relayState: snapshot.relay?.state, + relayCount: snapshot.relay?.relays.count ?? 0, + records: records + ) + let encoder = JSONEncoder() + encoder.outputFormatting = [.prettyPrinted, .sortedKeys] + let data = try encoder.encode(document) + guard data.count <= Self.maximumExportBytes else { + throw RadrootsRuntimeFailure.local( + operation: "diagnostics.prepare", + code: "ios.diagnostics.too_large", + safeMessage: "The bounded diagnostics report could not be prepared." + ) } + return try fileAccess.prepareExport( + RadrootsExportDocumentRequest( + source: .inlineData(data), + suggestedFilename: "radroots-diagnostics.json", + mediaType: "application/json", + sizeBytes: UInt64(data.count) + ) + ) + } + + func releaseDiagnostics(_ export: RadrootsPreparedExportDocument) { + guard let fileAccess else { return } + try? fileAccess.releasePreparedExport(export) + } } @MainActor final class RadrootsDiagnosticsStore: ObservableObject { - @Published var preparedExport: RadrootsPreparedExportDocument? - @Published private(set) var isPreparing = false - @Published private(set) var message: String? - - private let coordinator: RadrootsLifecycleCoordinator - private var activeExport: RadrootsPreparedExportDocument? - - init(coordinator: RadrootsLifecycleCoordinator) { - self.coordinator = coordinator - } - - func prepare(snapshot: RadrootsRuntimeSnapshot, bundle: Bundle = .main) async { - guard !isPreparing, preparedExport == nil, activeExport == nil else { return } - isPreparing = true - message = nil - defer { isPreparing = false } - do { - let export = try await coordinator.prepareDiagnostics( - snapshot: snapshot, - appVersion: bundle.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "0", - appBuild: bundle.object(forInfoDictionaryKey: "CFBundleVersion") as? String ?? "0", - phase: "running" - ) - activeExport = export - preparedExport = export - } catch { - activeExport = nil - preparedExport = nil - message = (error as? LocalizedError)?.errorDescription - ?? "Diagnostics export could not be prepared." - } + @Published var preparedExport: RadrootsPreparedExportDocument? + @Published private(set) var isPreparing = false + @Published private(set) var message: String? + + private let coordinator: RadrootsLifecycleCoordinator + private var activeExport: RadrootsPreparedExportDocument? + + init(coordinator: RadrootsLifecycleCoordinator) { + self.coordinator = coordinator + } + + func prepare(snapshot: RadrootsRuntimeSnapshot, bundle: Bundle = .main) async { + guard !isPreparing, preparedExport == nil, activeExport == nil else { return } + isPreparing = true + message = nil + defer { isPreparing = false } + do { + let export = try await coordinator.prepareDiagnostics( + snapshot: snapshot, + appVersion: bundle.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String + ?? "0", + appBuild: bundle.object(forInfoDictionaryKey: "CFBundleVersion") as? String ?? "0", + phase: "running" + ) + activeExport = export + preparedExport = export + } catch { + activeExport = nil + preparedExport = nil + message = + (error as? LocalizedError)?.errorDescription + ?? "Diagnostics export could not be prepared." } - - func completeExport(_ result: Result<RadrootsExportDocumentResult, Error>) { - let export = activeExport - activeExport = nil - preparedExport = nil - switch result { - case .success: - message = "Diagnostics exported." - case .failure: - message = "Diagnostics export was cancelled or failed." - } - guard let export else { return } - Task { await coordinator.releaseDiagnostics(export) } + } + + func completeExport(_ result: Result<RadrootsExportDocumentResult, Error>) { + let export = activeExport + activeExport = nil + preparedExport = nil + switch result { + case .success: + message = "Diagnostics exported." + case .failure: + message = "Diagnostics export was cancelled or failed." } + guard let export else { return } + Task { await coordinator.releaseDiagnostics(export) } + } } diff --git a/Radroots/Runtime/RadrootsRuntimeClient.swift b/Radroots/Runtime/RadrootsRuntimeClient.swift @@ -1,1115 +1,1203 @@ import Foundation protocol RadrootsRuntimeSubscriptionToken: Sendable { - func cancel() async + func cancel() async } protocol RadrootsRuntimeBackend: Sendable { - func snapshot() async throws -> RadrootsRuntimeSnapshot - func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage - func refreshToday( - context: RadrootsLocalNetwork, - nowUnixSeconds: UInt64, - update: RadrootsTodayProjectionUpdate - ) async throws -> RadrootsTodayRefreshReceipt - func search( - context: RadrootsLocalNetwork, - query: String, - limit: UInt16, - asOfUnixSeconds: UInt64 - ) async throws -> [RadrootsSearchResult] - func me( - context: RadrootsLocalNetwork, - asOfUnixSeconds: UInt64 - ) async throws -> RadrootsMeSnapshot - func addSchemas() async throws -> [RadrootsAddSchema] - func saveAddIntent( - input: RadrootsAddRuntimeInput, - existingDraftID: String?, - expectedRevision: UInt64? - ) async throws -> RadrootsDraftStatus - func saveRetractionDraft( - id: String, - input: RadrootsRetractionDraftInput, - authoredAtUnixSeconds: UInt64, - persistedAtUnixMilliseconds: UInt64 - ) async throws -> RadrootsDraftStatus - func draftStatus(id: String) async throws -> RadrootsDraftStatus - func draftHeads(limit: UInt16) async throws -> [RadrootsDraftStatus] - func queueAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus - func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus - func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus - func probeBlossom() async throws -> RadrootsBlossomEvidence - func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus - func cancelAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus - func subscribe( - bufferCapacity: Int, - receive: @escaping @Sendable (RadrootsRuntimeChange) async -> Void - ) async throws -> any RadrootsRuntimeSubscriptionToken - func shutdown() async throws -> RadrootsRuntimeShutdownReceipt + func snapshot() async throws -> RadrootsRuntimeSnapshot + func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage + func refreshToday( + context: RadrootsLocalNetwork, + nowUnixSeconds: UInt64, + update: RadrootsTodayProjectionUpdate + ) async throws -> RadrootsTodayRefreshReceipt + func search( + context: RadrootsLocalNetwork, + query: String, + limit: UInt16, + asOfUnixSeconds: UInt64 + ) async throws -> [RadrootsSearchResult] + func me( + context: RadrootsLocalNetwork, + asOfUnixSeconds: UInt64 + ) async throws -> RadrootsMeSnapshot + func addSchemas() async throws -> [RadrootsAddSchema] + func saveAddIntent( + input: RadrootsAddRuntimeInput, + existingDraftID: String?, + expectedRevision: UInt64? + ) async throws -> RadrootsDraftStatus + func saveRetractionDraft( + id: String, + input: RadrootsRetractionDraftInput, + authoredAtUnixSeconds: UInt64, + persistedAtUnixMilliseconds: UInt64 + ) async throws -> RadrootsDraftStatus + func saveRevisionIntent( + target: RadrootsRevisionTarget, + replacement: RadrootsAddRuntimeInput + ) async throws -> RadrootsRevisionStatus + func revisionStatus(operationID: String) async throws -> RadrootsRevisionStatus + func advanceRevision(operationID: String) async throws -> RadrootsRevisionStatus + func cancelRevision(operationID: String) async throws -> RadrootsRevisionStatus + func draftStatus(id: String) async throws -> RadrootsDraftStatus + func draftHeads(limit: UInt16) async throws -> [RadrootsDraftStatus] + func queueAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus + func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus + func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus + func prepareAddMediaBackground( + input: RadrootsBlossomUploadIntent + ) async throws -> RadrootsNativeUploadJob + func completeAddMediaBackground( + input: RadrootsNativeUploadCompletion + ) async throws -> RadrootsDraftStatus + func probeBlossom() async throws -> RadrootsBlossomEvidence + func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus + func cancelAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus + func subscribe( + bufferCapacity: Int, + receive: @escaping @Sendable (RadrootsRuntimeChange) async -> Void + ) async throws -> any RadrootsRuntimeSubscriptionToken + func shutdown() async throws -> RadrootsRuntimeShutdownReceipt } extension RadrootsRuntimeBackend { - private func supportUnsupported() -> RadrootsRuntimeFailure { - .local( - operation: "runtime.support", - code: "ios.support.unsupported", - safeMessage: "This supporting surface is unavailable in the current runtime." - ) - } + private func supportUnsupported() -> RadrootsRuntimeFailure { + .local( + operation: "runtime.support", + code: "ios.support.unsupported", + safeMessage: "This supporting surface is unavailable in the current runtime." + ) + } + + private func addUnsupported() -> RadrootsRuntimeFailure { + .local( + operation: "runtime.add", + code: "ios.add.unsupported", + safeMessage: "Add is unavailable in this runtime." + ) + } + + func addSchemas() async throws -> [RadrootsAddSchema] { + throw addUnsupported() + } + + func saveAddIntent( + input _: RadrootsAddRuntimeInput, + existingDraftID _: String?, + expectedRevision _: UInt64? + ) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func saveRetractionDraft( + id _: String, + input _: RadrootsRetractionDraftInput, + authoredAtUnixSeconds _: UInt64, + persistedAtUnixMilliseconds _: UInt64 + ) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func saveRevisionIntent( + target _: RadrootsRevisionTarget, + replacement _: RadrootsAddRuntimeInput + ) async throws -> RadrootsRevisionStatus { + throw addUnsupported() + } + + func revisionStatus(operationID _: String) async throws -> RadrootsRevisionStatus { + throw addUnsupported() + } + + func advanceRevision(operationID _: String) async throws -> RadrootsRevisionStatus { + throw addUnsupported() + } + + func cancelRevision(operationID _: String) async throws -> RadrootsRevisionStatus { + throw addUnsupported() + } + + func draftStatus(id _: String) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func draftHeads(limit _: UInt16) async throws -> [RadrootsDraftStatus] { + throw addUnsupported() + } + + func queueAddIntent( + id _: String, + expectedRevision _: UInt64 + ) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func recoverAddIntent(id _: String) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func uploadAddMediaIntent(input _: RadrootsBlossomUploadIntent) async throws + -> RadrootsDraftStatus + { + throw addUnsupported() + } + + func prepareAddMediaBackground( + input _: RadrootsBlossomUploadIntent + ) async throws -> RadrootsNativeUploadJob { + throw addUnsupported() + } + + func completeAddMediaBackground( + input _: RadrootsNativeUploadCompletion + ) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func probeBlossom() async throws -> RadrootsBlossomEvidence { + throw supportUnsupported() + } + + func advanceDraft(id _: String, expectedRevision _: UInt64) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func cancelAddIntent( + id _: String, + expectedRevision _: UInt64 + ) async throws -> RadrootsDraftStatus { + throw addUnsupported() + } + + func search( + context _: RadrootsLocalNetwork, + query _: String, + limit _: UInt16, + asOfUnixSeconds _: UInt64 + ) async throws -> [RadrootsSearchResult] { + throw supportUnsupported() + } + + func me( + context _: RadrootsLocalNetwork, + asOfUnixSeconds _: UInt64 + ) async throws -> RadrootsMeSnapshot { + throw supportUnsupported() + } +} - private func addUnsupported() -> RadrootsRuntimeFailure { - .local( - operation: "runtime.add", - code: "ios.add.unsupported", - safeMessage: "Add is unavailable in this runtime." - ) - } +struct RadrootsRuntimeBackendStart: Sendable { + let backend: any RadrootsRuntimeBackend + let snapshot: RadrootsRuntimeSnapshot +} - func addSchemas() async throws -> [RadrootsAddSchema] { - throw addUnsupported() - } +typealias RadrootsRuntimeBackendFactory = + @Sendable ( + RadrootsRuntimeLaunchConfiguration + ) async throws -> RadrootsRuntimeBackendStart - func saveAddIntent( - input _: RadrootsAddRuntimeInput, - existingDraftID _: String?, - expectedRevision _: UInt64? - ) async throws -> RadrootsDraftStatus { - throw addUnsupported() - } +private enum RadrootsRuntimeBoundedOutcome<Value: Sendable>: Sendable { + case completed(Result<Value, RadrootsRuntimeFailure>) + case timedOut + case cancelled +} - func saveRetractionDraft( - id _: String, - input _: RadrootsRetractionDraftInput, - authoredAtUnixSeconds _: UInt64, - persistedAtUnixMilliseconds _: UInt64 - ) async throws -> RadrootsDraftStatus { - throw addUnsupported() +private final class RadrootsRuntimeBoundedTask<Value: Sendable>: @unchecked Sendable { + typealias Outcome = RadrootsRuntimeBoundedOutcome<Value> + + private final class State: @unchecked Sendable { + private let lock = NSLock() + private var outcome: Outcome? + private var continuations: [UUID: CheckedContinuation<Outcome, Never>] = [:] + private var cancelledWaiters: Set<UUID> = [] + private var operationTask: Task<Void, Never>? + private var timeoutTask: Task<Void, Never>? + + func install(operationTask: Task<Void, Never>, timeoutTask: Task<Void, Never>) { + let shouldCancel = lock.withLock { () -> Bool in + guard outcome == nil else { return true } + self.operationTask = operationTask + self.timeoutTask = timeoutTask + return false + } + if shouldCancel { + timeoutTask.cancel() + } } - func draftStatus(id _: String) async throws -> RadrootsDraftStatus { - throw addUnsupported() + func value(cancelsOperationWhenWaiterCancelled: Bool) async -> Outcome { + let waiterID = UUID() + return await withTaskCancellationHandler { + await withCheckedContinuation { requestedContinuation in + let immediate = lock.withLock { () -> Outcome? in + if let outcome { + return outcome + } + if cancelledWaiters.remove(waiterID) != nil { + return .cancelled + } + continuations[waiterID] = requestedContinuation + return nil + } + if let immediate { + requestedContinuation.resume(returning: immediate) + } + } + } onCancel: { + if cancelsOperationWhenWaiterCancelled { + cancel() + } else { + cancelWaiter(waiterID) + } + } } - func draftHeads(limit _: UInt16) async throws -> [RadrootsDraftStatus] { - throw addUnsupported() + func cancel() { + guard resolve(.cancelled) else { return } + let tasks = lock.withLock { (operationTask, timeoutTask) } + tasks.0?.cancel() + tasks.1?.cancel() } - func queueAddIntent( - id _: String, - expectedRevision _: UInt64 - ) async throws -> RadrootsDraftStatus { - throw addUnsupported() + func expire() { + guard resolve(.timedOut) else { return } + let taskToCancel: Task<Void, Never>? = lock.withLock { self.operationTask } + taskToCancel?.cancel() } - func recoverAddIntent(id _: String) async throws -> RadrootsDraftStatus { - throw addUnsupported() + func finishOperation() { + lock.withLock { operationTask = nil } } - func uploadAddMediaIntent(input _: RadrootsBlossomUploadIntent) async throws - -> RadrootsDraftStatus - { - throw addUnsupported() + private func cancelWaiter(_ waiterID: UUID) { + let continuation = lock.withLock { () -> CheckedContinuation<Outcome, Never>? in + guard outcome == nil else { return nil } + guard let continuation = continuations.removeValue(forKey: waiterID) else { + cancelledWaiters.insert(waiterID) + return nil + } + return continuation + } + continuation?.resume(returning: .cancelled) } - func probeBlossom() async throws -> RadrootsBlossomEvidence { - throw supportUnsupported() + @discardableResult + func resolve(_ requestedOutcome: Outcome) -> Bool { + var pendingContinuations: [CheckedContinuation<Outcome, Never>] = [] + var timeoutToCancel: Task<Void, Never>? + let accepted = lock.withLock { () -> Bool in + guard outcome == nil else { return false } + outcome = requestedOutcome + pendingContinuations = Array(continuations.values) + continuations.removeAll(keepingCapacity: false) + cancelledWaiters.removeAll(keepingCapacity: false) + timeoutToCancel = timeoutTask + return true + } + if accepted { + timeoutToCancel?.cancel() + for continuation in pendingContinuations { + continuation.resume(returning: requestedOutcome) + } + } + return accepted } - - func advanceDraft(id _: String, expectedRevision _: UInt64) async throws -> RadrootsDraftStatus { - throw addUnsupported() + } + + private let state: State + + init( + deadlineNanoseconds: UInt64, + operation: @escaping @Sendable () async -> Result<Value, RadrootsRuntimeFailure>, + onAbandonedResult: + @escaping @Sendable ( + Result<Value, RadrootsRuntimeFailure> + ) async -> Void = { _ in } + ) { + let state = State() + self.state = state + let operationTask = Task { [state] in + let result = await operation() + if !state.resolve(.completed(result)) { + await onAbandonedResult(result) + } + state.finishOperation() } - func cancelAddIntent( - id _: String, - expectedRevision _: UInt64 - ) async throws -> RadrootsDraftStatus { - throw addUnsupported() + let timeoutTask = Task { [state] in + do { + try await Task.sleep(nanoseconds: deadlineNanoseconds) + } catch { + return + } + state.expire() } + state.install(operationTask: operationTask, timeoutTask: timeoutTask) + } + + func value(cancelsOperationWhenWaiterCancelled: Bool = true) async -> Outcome { + await state.value( + cancelsOperationWhenWaiterCancelled: cancelsOperationWhenWaiterCancelled + ) + } + + func cancel() { + state.cancel() + } +} - func search( - context _: RadrootsLocalNetwork, - query _: String, - limit _: UInt16, - asOfUnixSeconds _: UInt64 - ) async throws -> [RadrootsSearchResult] { - throw supportUnsupported() +actor RadrootsRuntimeClient { + private struct StartupOperation: Sendable { + let identity: RadrootsRuntimeOperationIdentity + let configuration: RadrootsRuntimeLaunchConfiguration + let task: RadrootsRuntimeBoundedTask<RadrootsRuntimeBackendStart> + } + + private struct ShutdownOperation: Sendable { + let identity: RadrootsRuntimeOperationIdentity + let backend: (any RadrootsRuntimeBackend)? + let task: RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt> + } + + private struct ActiveOperation: Sendable { + let identity: RadrootsRuntimeOperationIdentity + let cancel: @Sendable () -> Void + } + + private struct Subscription { + let generation: UInt64 + let continuation: AsyncStream<RadrootsRuntimeChange>.Continuation + var token: (any RadrootsRuntimeSubscriptionToken)? + } + + private let factory: RadrootsRuntimeBackendFactory + private let deadlines: RadrootsRuntimeDeadlinePolicy + private var generation: UInt64 = 0 + private var operationSequence: UInt64 = 0 + private var lifecycleState: RadrootsRuntimeLifecycle = .stopped + private var configuration: RadrootsRuntimeLaunchConfiguration? + private var backend: (any RadrootsRuntimeBackend)? + private var quarantinedBackend: (any RadrootsRuntimeBackend)? + private var startupOperation: StartupOperation? + private var shutdownOperation: ShutdownOperation? + private var activeOperations: [UInt64: ActiveOperation] = [:] + private var subscriptions: [UUID: Subscription] = [:] + private var lateShutdownSuccesses: Set<RadrootsRuntimeOperationIdentity> = [] + + init( + factory: @escaping RadrootsRuntimeBackendFactory, + deadlines: RadrootsRuntimeDeadlinePolicy = .production + ) { + self.factory = factory + self.deadlines = deadlines + } + + func lifecycle() -> RadrootsRuntimeLifecycle { + lifecycleState + } + + func start( + configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration + ) async throws -> RadrootsRuntimeSnapshot { + try await start(configuration: requestedConfiguration, kind: .startup) + } + + func reconfigure( + configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration + ) async throws -> RadrootsRuntimeSnapshot { + try await start(configuration: requestedConfiguration, kind: .reconfiguration) + } + + private func start( + configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration, + kind: RadrootsRuntimeOperationKind + ) async throws -> RadrootsRuntimeSnapshot { + if let shutdownOperation { + _ = try await finishShutdown(shutdownOperation) } - func me( - context _: RadrootsLocalNetwork, - asOfUnixSeconds _: UInt64 - ) async throws -> RadrootsMeSnapshot { - throw supportUnsupported() + if quarantinedBackend != nil { + _ = try await finishShutdown(beginShutdown()) } -} - -struct RadrootsRuntimeBackendStart: Sendable { - let backend: any RadrootsRuntimeBackend - let snapshot: RadrootsRuntimeSnapshot -} -typealias RadrootsRuntimeBackendFactory = - @Sendable ( - RadrootsRuntimeLaunchConfiguration - ) async throws -> RadrootsRuntimeBackendStart - -private enum RadrootsRuntimeBoundedOutcome<Value: Sendable>: Sendable { - case completed(Result<Value, RadrootsRuntimeFailure>) - case timedOut - case cancelled -} - -private final class RadrootsRuntimeBoundedTask<Value: Sendable>: @unchecked Sendable { - typealias Outcome = RadrootsRuntimeBoundedOutcome<Value> - - private final class State: @unchecked Sendable { - private let lock = NSLock() - private var outcome: Outcome? - private var continuations: [UUID: CheckedContinuation<Outcome, Never>] = [:] - private var cancelledWaiters: Set<UUID> = [] - private var operationTask: Task<Void, Never>? - private var timeoutTask: Task<Void, Never>? - - func install(operationTask: Task<Void, Never>, timeoutTask: Task<Void, Never>) { - let shouldCancel = lock.withLock { () -> Bool in - guard outcome == nil else { return true } - self.operationTask = operationTask - self.timeoutTask = timeoutTask - return false - } - if shouldCancel { - timeoutTask.cancel() - } - } - - func value(cancelsOperationWhenWaiterCancelled: Bool) async -> Outcome { - let waiterID = UUID() - return await withTaskCancellationHandler { - await withCheckedContinuation { requestedContinuation in - let immediate = lock.withLock { () -> Outcome? in - if let outcome { - return outcome - } - if cancelledWaiters.remove(waiterID) != nil { - return .cancelled - } - continuations[waiterID] = requestedContinuation - return nil - } - if let immediate { - requestedContinuation.resume(returning: immediate) - } - } - } onCancel: { - if cancelsOperationWhenWaiterCancelled { - cancel() - } else { - cancelWaiter(waiterID) - } - } - } - - func cancel() { - guard resolve(.cancelled) else { return } - let tasks = lock.withLock { (operationTask, timeoutTask) } - tasks.0?.cancel() - tasks.1?.cancel() - } - - func expire() { - guard resolve(.timedOut) else { return } - let taskToCancel: Task<Void, Never>? = lock.withLock { self.operationTask } - taskToCancel?.cancel() - } - - func finishOperation() { - lock.withLock { operationTask = nil } - } + if backend != nil, + configuration == requestedConfiguration, + case .running = lifecycleState + { + return try await snapshot() + } - private func cancelWaiter(_ waiterID: UUID) { - let continuation = lock.withLock { () -> CheckedContinuation<Outcome, Never>? in - guard outcome == nil else { return nil } - guard let continuation = continuations.removeValue(forKey: waiterID) else { - cancelledWaiters.insert(waiterID) - return nil - } - return continuation - } - continuation?.resume(returning: .cancelled) - } + if let startupOperation, + startupOperation.configuration == requestedConfiguration + { + return try await finishStartup(startupOperation) + } - @discardableResult - func resolve(_ requestedOutcome: Outcome) -> Bool { - var pendingContinuations: [CheckedContinuation<Outcome, Never>] = [] - var timeoutToCancel: Task<Void, Never>? - let accepted = lock.withLock { () -> Bool in - guard outcome == nil else { return false } - outcome = requestedOutcome - pendingContinuations = Array(continuations.values) - continuations.removeAll(keepingCapacity: false) - cancelledWaiters.removeAll(keepingCapacity: false) - timeoutToCancel = timeoutTask - return true - } - if accepted { - timeoutToCancel?.cancel() - for continuation in pendingContinuations { - continuation.resume(returning: requestedOutcome) - } - } - return accepted - } + if startupOperation != nil || backend != nil { + let operation = beginShutdown() + _ = try await finishShutdown(operation) } - private let state: State - - init( - deadlineNanoseconds: UInt64, - operation: @escaping @Sendable () async -> Result<Value, RadrootsRuntimeFailure>, - onAbandonedResult: - @escaping @Sendable ( - Result<Value, RadrootsRuntimeFailure> - ) async -> Void = { _ in } - ) { - let state = State() - self.state = state - let operationTask = Task { [state] in - let result = await operation() - if !state.resolve(.completed(result)) { - await onAbandonedResult(result) - } - state.finishOperation() - } + generation &+= 1 + let operationGeneration = generation + lifecycleState = .starting(generation: operationGeneration) - let timeoutTask = Task { [state] in + let identity = nextIdentity(kind: kind) + let factory = factory + let cleanupDeadline = deadlines.shutdownNanoseconds + let task = RadrootsRuntimeBoundedTask<RadrootsRuntimeBackendStart>( + deadlineNanoseconds: deadlines.startupNanoseconds, + operation: { + do { + return try await .success(factory(requestedConfiguration)) + } catch { + return .failure(Self.failure(from: error, operation: identity.rawValue)) + } + }, + onAbandonedResult: { result in + guard case .success(let started) = result else { return } + let cleanup = RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt>( + deadlineNanoseconds: cleanupDeadline, + operation: { do { - try await Task.sleep(nanoseconds: deadlineNanoseconds) + return try await .success(started.backend.shutdown()) } catch { - return + return .failure( + Self.failure(from: error, operation: "runtime.abandoned_startup") + ) } - state.expire() - } - state.install(operationTask: operationTask, timeoutTask: timeoutTask) + } + ) + _ = await cleanup.value() + } + ) + let operation = StartupOperation( + identity: identity, + configuration: requestedConfiguration, + task: task + ) + startupOperation = operation + return try await finishStartup(operation) + } + + func retry( + configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration + ) async throws -> RadrootsRuntimeSnapshot { + _ = try await stop() + return try await start(configuration: requestedConfiguration) + } + + func snapshot() async throws -> RadrootsRuntimeSnapshot { + do { + return try await runtimeOperation("runtime.status") { backend in + try await backend.snapshot() + } + } catch let error as RadrootsRuntimeClientError { + throw error + } catch { + throw RadrootsRuntimeClientError.status( + Self.failure(from: error, operation: "runtime.status") + ) } - - func value(cancelsOperationWhenWaiterCancelled: Bool = true) async -> Outcome { - await state.value( - cancelsOperationWhenWaiterCancelled: cancelsOperationWhenWaiterCancelled + } + + func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage { + do { + return try await runtimeOperation("runtime.today.page") { backend in + try await backend.todayPage(request: request) + } + } catch let error as RadrootsRuntimeClientError { + throw error + } catch { + throw RadrootsRuntimeClientError.today( + Self.failure(from: error, operation: "runtime.today.page") + ) + } + } + + func refreshToday( + context: RadrootsLocalNetwork, + nowUnixSeconds: UInt64, + update: RadrootsTodayProjectionUpdate = .incremental + ) async throws -> RadrootsTodayRefreshReceipt { + do { + return try await runtimeOperation("runtime.today.refresh") { backend in + try await backend.refreshToday( + context: context, + nowUnixSeconds: nowUnixSeconds, + update: update ) + } + } catch let error as RadrootsRuntimeClientError { + throw error + } catch { + throw RadrootsRuntimeClientError.today( + Self.failure(from: error, operation: "runtime.today.refresh") + ) } - - func cancel() { - state.cancel() + } + + func search( + context: RadrootsLocalNetwork, + query: String, + limit: UInt16 = 50, + asOfUnixSeconds: UInt64 + ) async throws -> [RadrootsSearchResult] { + try await supportOperation("runtime.support.search") { backend in + try await backend.search( + context: context, + query: query, + limit: limit, + asOfUnixSeconds: asOfUnixSeconds + ) } -} - -actor RadrootsRuntimeClient { - private struct StartupOperation: Sendable { - let identity: RadrootsRuntimeOperationIdentity - let configuration: RadrootsRuntimeLaunchConfiguration - let task: RadrootsRuntimeBoundedTask<RadrootsRuntimeBackendStart> + } + + func me( + context: RadrootsLocalNetwork, + asOfUnixSeconds: UInt64 + ) async throws -> RadrootsMeSnapshot { + try await supportOperation("runtime.support.me") { backend in + try await backend.me(context: context, asOfUnixSeconds: asOfUnixSeconds) } + } - private struct ShutdownOperation: Sendable { - let identity: RadrootsRuntimeOperationIdentity - let backend: (any RadrootsRuntimeBackend)? - let task: RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt> + func addSchemas() async throws -> [RadrootsAddSchema] { + try await addOperation("runtime.add.schemas") { backend in + try await backend.addSchemas() } - - private struct ActiveOperation: Sendable { - let identity: RadrootsRuntimeOperationIdentity - let cancel: @Sendable () -> Void + } + + func saveAddIntent( + input: RadrootsAddRuntimeInput, + existingDraftID: String?, + expectedRevision: UInt64? + ) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.save") { backend in + try await backend.saveAddIntent( + input: input, + existingDraftID: existingDraftID, + expectedRevision: expectedRevision + ) } - - private struct Subscription { - let generation: UInt64 - let continuation: AsyncStream<RadrootsRuntimeChange>.Continuation - var token: (any RadrootsRuntimeSubscriptionToken)? + } + + func saveRetractionDraft( + id: String, + input: RadrootsRetractionDraftInput, + authoredAtUnixSeconds: UInt64, + persistedAtUnixMilliseconds: UInt64 + ) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.retract") { backend in + try await backend.saveRetractionDraft( + id: id, + input: input, + authoredAtUnixSeconds: authoredAtUnixSeconds, + persistedAtUnixMilliseconds: persistedAtUnixMilliseconds + ) } - - private let factory: RadrootsRuntimeBackendFactory - private let deadlines: RadrootsRuntimeDeadlinePolicy - private var generation: UInt64 = 0 - private var operationSequence: UInt64 = 0 - private var lifecycleState: RadrootsRuntimeLifecycle = .stopped - private var configuration: RadrootsRuntimeLaunchConfiguration? - private var backend: (any RadrootsRuntimeBackend)? - private var quarantinedBackend: (any RadrootsRuntimeBackend)? - private var startupOperation: StartupOperation? - private var shutdownOperation: ShutdownOperation? - private var activeOperations: [UInt64: ActiveOperation] = [:] - private var subscriptions: [UUID: Subscription] = [:] - private var lateShutdownSuccesses: Set<RadrootsRuntimeOperationIdentity> = [] - - init( - factory: @escaping RadrootsRuntimeBackendFactory, - deadlines: RadrootsRuntimeDeadlinePolicy = .production - ) { - self.factory = factory - self.deadlines = deadlines + } + + func saveRevisionIntent( + target: RadrootsRevisionTarget, + replacement: RadrootsAddRuntimeInput + ) async throws -> RadrootsRevisionStatus { + try await addOperation("runtime.add.revision.save") { backend in + try await backend.saveRevisionIntent(target: target, replacement: replacement) } + } - func lifecycle() -> RadrootsRuntimeLifecycle { - lifecycleState + func revisionStatus(operationID: String) async throws -> RadrootsRevisionStatus { + try await addOperation("runtime.add.revision.status") { backend in + try await backend.revisionStatus(operationID: operationID) } + } - func start( - configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration - ) async throws -> RadrootsRuntimeSnapshot { - try await start(configuration: requestedConfiguration, kind: .startup) + func advanceRevision(operationID: String) async throws -> RadrootsRevisionStatus { + try await addOperation("runtime.add.revision.advance") { backend in + try await backend.advanceRevision(operationID: operationID) } + } - func reconfigure( - configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration - ) async throws -> RadrootsRuntimeSnapshot { - try await start(configuration: requestedConfiguration, kind: .reconfiguration) + func cancelRevision(operationID: String) async throws -> RadrootsRevisionStatus { + try await addOperation("runtime.add.revision.cancel") { backend in + try await backend.cancelRevision(operationID: operationID) } + } - private func start( - configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration, - kind: RadrootsRuntimeOperationKind - ) async throws -> RadrootsRuntimeSnapshot { - if let shutdownOperation { - _ = try await finishShutdown(shutdownOperation) - } - - if quarantinedBackend != nil { - _ = try await finishShutdown(beginShutdown()) - } + func draftStatus(id: String) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.status") { backend in + try await backend.draftStatus(id: id) + } + } - if backend != nil, - configuration == requestedConfiguration, - case .running = lifecycleState - { - return try await snapshot() - } + func draftHeads(limit: UInt16 = 100) async throws -> [RadrootsDraftStatus] { + try await addOperation("runtime.add.heads") { backend in + try await backend.draftHeads(limit: limit) + } + } + + func queueAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.queue") { backend in + try await backend.queueAddIntent( + id: id, + expectedRevision: expectedRevision + ) + } + } - if let startupOperation, - startupOperation.configuration == requestedConfiguration - { - return try await finishStartup(startupOperation) - } + func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.recover") { backend in + try await backend.recoverAddIntent(id: id) + } + } - if startupOperation != nil || backend != nil { - let operation = beginShutdown() - _ = try await finishShutdown(operation) - } + func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus + { + try await addOperation("runtime.add.media") { backend in + try await backend.uploadAddMediaIntent(input: input) + } + } - generation &+= 1 - let operationGeneration = generation - lifecycleState = .starting(generation: operationGeneration) + func prepareAddMediaBackground( + input: RadrootsBlossomUploadIntent + ) async throws -> RadrootsNativeUploadJob { + try await addOperation("runtime.add.media.background.prepare") { backend in + try await backend.prepareAddMediaBackground(input: input) + } + } - let identity = nextIdentity(kind: kind) - let factory = factory - let cleanupDeadline = deadlines.shutdownNanoseconds - let task = RadrootsRuntimeBoundedTask<RadrootsRuntimeBackendStart>( - deadlineNanoseconds: deadlines.startupNanoseconds, - operation: { - do { - return try await .success(factory(requestedConfiguration)) - } catch { - return .failure(Self.failure(from: error, operation: identity.rawValue)) - } - }, - onAbandonedResult: { result in - guard case let .success(started) = result else { return } - let cleanup = RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt>( - deadlineNanoseconds: cleanupDeadline, - operation: { - do { - return try await .success(started.backend.shutdown()) - } catch { - return .failure( - Self.failure(from: error, operation: "runtime.abandoned_startup") - ) - } - } - ) - _ = await cleanup.value() - } - ) - let operation = StartupOperation( - identity: identity, - configuration: requestedConfiguration, - task: task - ) - startupOperation = operation - return try await finishStartup(operation) + func completeAddMediaBackground( + input: RadrootsNativeUploadCompletion + ) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.media.background.complete") { backend in + try await backend.completeAddMediaBackground(input: input) } + } - func retry( - configuration requestedConfiguration: RadrootsRuntimeLaunchConfiguration - ) async throws -> RadrootsRuntimeSnapshot { - _ = try await stop() - return try await start(configuration: requestedConfiguration) + func probeBlossom() async throws -> RadrootsBlossomEvidence { + try await supportOperation("runtime.blossom.probe") { backend in + try await backend.probeBlossom() } + } - func snapshot() async throws -> RadrootsRuntimeSnapshot { - do { - return try await runtimeOperation("runtime.status") { backend in - try await backend.snapshot() - } - } catch let error as RadrootsRuntimeClientError { - throw error - } catch { - throw RadrootsRuntimeClientError.status( - Self.failure(from: error, operation: "runtime.status") - ) - } + func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.advance") { backend in + try await backend.advanceDraft(id: id, expectedRevision: expectedRevision) + } + } + + func cancelAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus { + try await addOperation("runtime.add.cancel") { backend in + try await backend.cancelAddIntent( + id: id, + expectedRevision: expectedRevision + ) } + } - func todayPage(request: RadrootsTodayPageRequest) async throws -> RadrootsTodayPage { - do { - return try await runtimeOperation("runtime.today.page") { backend in - try await backend.todayPage(request: request) - } - } catch let error as RadrootsRuntimeClientError { - throw error - } catch { - throw RadrootsRuntimeClientError.today( - Self.failure(from: error, operation: "runtime.today.page") - ) - } + func changes(bufferCapacity: Int = 16) async throws -> AsyncStream<RadrootsRuntimeChange> { + guard (1...64).contains(bufferCapacity) else { + throw RadrootsRuntimeClientError.invalidBufferCapacity + } + guard let backend, case .running = lifecycleState else { + throw RadrootsRuntimeClientError.notRunning } - func refreshToday( - context: RadrootsLocalNetwork, - nowUnixSeconds: UInt64, - update: RadrootsTodayProjectionUpdate = .incremental - ) async throws -> RadrootsTodayRefreshReceipt { + let id = UUID() + let subscriptionGeneration = generation + let identity = nextIdentity(kind: .subscription) + let pair = AsyncStream.makeStream( + of: RadrootsRuntimeChange.self, + bufferingPolicy: .bufferingNewest(bufferCapacity) + ) + pair.continuation.onTermination = { [weak self] _ in + Task { + await self?.cancelSubscription(id: id, generation: subscriptionGeneration) + } + } + subscriptions[id] = Subscription( + generation: subscriptionGeneration, + continuation: pair.continuation, + token: nil + ) + + let subscriptionDeadline = deadlines.subscriptionNanoseconds + let task = RadrootsRuntimeBoundedTask<any RadrootsRuntimeSubscriptionToken>( + deadlineNanoseconds: subscriptionDeadline, + operation: { do { - return try await runtimeOperation("runtime.today.refresh") { backend in - try await backend.refreshToday( - context: context, - nowUnixSeconds: nowUnixSeconds, - update: update - ) + return try await .success( + backend.subscribe(bufferCapacity: bufferCapacity) { [weak self] change in + await self?.receive( + change, + subscriptionID: id, + generation: subscriptionGeneration + ) } - } catch let error as RadrootsRuntimeClientError { - throw error + ) } catch { - throw RadrootsRuntimeClientError.today( - Self.failure(from: error, operation: "runtime.today.refresh") - ) - } + return .failure(Self.failure(from: error, operation: identity.rawValue)) + } + }, + onAbandonedResult: { result in + guard case .success(let token) = result else { return } + let cancellation = RadrootsRuntimeBoundedTask<Void>( + deadlineNanoseconds: subscriptionDeadline, + operation: { + await token.cancel() + return .success(()) + } + ) + _ = await cancellation.value() + } + ) + activeOperations[identity.sequence] = ActiveOperation( + identity: identity, + cancel: { task.cancel() } + ) + let outcome = await task.value() + removeActiveOperation(identity) + + guard generation == subscriptionGeneration, + case .running = lifecycleState, + var subscription = subscriptions[id] + else { + subscriptions.removeValue(forKey: id)?.continuation.finish() + if case .completed(.success(let token)) = outcome { + cancelTokenDetached(token) + } + throw RadrootsRuntimeClientError.superseded } - func search( - context: RadrootsLocalNetwork, - query: String, - limit: UInt16 = 50, - asOfUnixSeconds: UInt64 - ) async throws -> [RadrootsSearchResult] { - try await supportOperation("runtime.support.search") { backend in - try await backend.search( - context: context, - query: query, - limit: limit, - asOfUnixSeconds: asOfUnixSeconds - ) - } + switch outcome { + case .completed(.success(let token)): + subscription.token = token + subscriptions[id] = subscription + return pair.stream + case .completed(.failure(let failure)): + subscriptions.removeValue(forKey: id)?.continuation.finish() + throw RadrootsRuntimeClientError.subscription(failure) + case .timedOut: + subscriptions.removeValue(forKey: id)?.continuation.finish() + throw RadrootsRuntimeClientError.subscription( + Self.deadlineFailure(identity: identity) + ) + case .cancelled: + subscriptions.removeValue(forKey: id)?.continuation.finish() + throw RadrootsRuntimeClientError.subscription( + Self.cancellationFailure(identity: identity) + ) } + } - func me( - context: RadrootsLocalNetwork, - asOfUnixSeconds: UInt64 - ) async throws -> RadrootsMeSnapshot { - try await supportOperation("runtime.support.me") { backend in - try await backend.me(context: context, asOfUnixSeconds: asOfUnixSeconds) - } + func suspend() { + for operation in activeOperations.values { + operation.cancel() } - - func addSchemas() async throws -> [RadrootsAddSchema] { - try await addOperation("runtime.add.schemas") { backend in - try await backend.addSchemas() - } + activeOperations.removeAll() + + let activeSubscriptions = Array(subscriptions.values) + subscriptions.removeAll() + for subscription in activeSubscriptions { + subscription.continuation.finish() + if let token = subscription.token { + cancelTokenDetached(token) + } } - func saveAddIntent( - input: RadrootsAddRuntimeInput, - existingDraftID: String?, - expectedRevision: UInt64? - ) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.save") { backend in - try await backend.saveAddIntent( - input: input, - existingDraftID: existingDraftID, - expectedRevision: expectedRevision - ) - } + if let startupOperation { + generation &+= 1 + startupOperation.task.cancel() + self.startupOperation = nil + configuration = nil + lifecycleState = .stopped } + } - func saveRetractionDraft( - id: String, - input: RadrootsRetractionDraftInput, - authoredAtUnixSeconds: UInt64, - persistedAtUnixMilliseconds: UInt64 - ) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.retract") { backend in - try await backend.saveRetractionDraft( - id: id, - input: input, - authoredAtUnixSeconds: authoredAtUnixSeconds, - persistedAtUnixMilliseconds: persistedAtUnixMilliseconds - ) - } + func stop() async throws -> RadrootsRuntimeShutdownReceipt { + if let shutdownOperation { + return try await finishShutdown(shutdownOperation) } - - func draftStatus(id: String) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.status") { backend in - try await backend.draftStatus(id: id) - } + guard + startupOperation != nil || backend != nil || quarantinedBackend != nil + || !subscriptions.isEmpty || !activeOperations.isEmpty + else { + lifecycleState = .stopped + return .alreadyStopped } - - func draftHeads(limit: UInt16 = 100) async throws -> [RadrootsDraftStatus] { - try await addOperation("runtime.add.heads") { backend in - try await backend.draftHeads(limit: limit) - } + return try await finishShutdown(beginShutdown()) + } + + private func finishStartup( + _ operation: StartupOperation + ) async throws -> RadrootsRuntimeSnapshot { + let outcome = await operation.task.value(cancelsOperationWhenWaiterCancelled: false) + guard generation == operation.identity.generation else { + throw RadrootsRuntimeClientError.superseded } - func queueAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.queue") { backend in - try await backend.queueAddIntent( - id: id, - expectedRevision: expectedRevision - ) - } - } - - func recoverAddIntent(id: String) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.recover") { backend in - try await backend.recoverAddIntent(id: id) - } + if case .cancelled = outcome, + startupOperation?.identity == operation.identity + { + throw RadrootsRuntimeClientError.startup( + Self.cancellationFailure(identity: operation.identity) + ) } - func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.media") { backend in - try await backend.uploadAddMediaIntent(input: input) - } + if startupOperation?.identity == operation.identity { + startupOperation = nil + } else if case .completed(.success(let started)) = outcome, + configuration == operation.configuration, + case .running = lifecycleState + { + return started.snapshot + } else { + throw RadrootsRuntimeClientError.superseded } - func probeBlossom() async throws -> RadrootsBlossomEvidence { - try await supportOperation("runtime.blossom.probe") { backend in - try await backend.probeBlossom() - } + switch outcome { + case .completed(.success(let started)): + backend = started.backend + configuration = operation.configuration + lifecycleState = .running(generation: operation.identity.generation) + return started.snapshot + case .completed(.failure(let failure)): + lifecycleState = .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.startup(failure) + case .timedOut: + let failure = Self.deadlineFailure(identity: operation.identity) + lifecycleState = .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.startup(failure) + case .cancelled: + let failure = Self.cancellationFailure(identity: operation.identity) + lifecycleState = .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.startup(failure) } - - func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.advance") { backend in - try await backend.advanceDraft(id: id, expectedRevision: expectedRevision) - } + } + + private func beginShutdown() -> ShutdownOperation { + generation &+= 1 + let operationGeneration = generation + let pendingStartup = startupOperation + let activeBackend = backend ?? quarantinedBackend + let activeSubscriptions = Array(subscriptions.values) + let activeRuntimeOperations = Array(activeOperations.values) + + startupOperation = nil + backend = nil + quarantinedBackend = nil + configuration = nil + subscriptions.removeAll() + activeOperations.removeAll() + lifecycleState = .stopping(generation: operationGeneration) + + pendingStartup?.task.cancel() + for operation in activeRuntimeOperations { + operation.cancel() } - - func cancelAddIntent( - id: String, - expectedRevision: UInt64 - ) async throws -> RadrootsDraftStatus { - try await addOperation("runtime.add.cancel") { backend in - try await backend.cancelAddIntent( - id: id, - expectedRevision: expectedRevision - ) - } + for subscription in activeSubscriptions { + subscription.continuation.finish() } - func changes(bufferCapacity: Int = 16) async throws -> AsyncStream<RadrootsRuntimeChange> { - guard (1 ... 64).contains(bufferCapacity) else { - throw RadrootsRuntimeClientError.invalidBufferCapacity - } - guard let backend, case .running = lifecycleState else { - throw RadrootsRuntimeClientError.notRunning - } - - let id = UUID() - let subscriptionGeneration = generation - let identity = nextIdentity(kind: .subscription) - let pair = AsyncStream.makeStream( - of: RadrootsRuntimeChange.self, - bufferingPolicy: .bufferingNewest(bufferCapacity) - ) - pair.continuation.onTermination = { [weak self] _ in - Task { - await self?.cancelSubscription(id: id, generation: subscriptionGeneration) - } - } - subscriptions[id] = Subscription( - generation: subscriptionGeneration, - continuation: pair.continuation, - token: nil - ) - - let subscriptionDeadline = deadlines.subscriptionNanoseconds - let task = RadrootsRuntimeBoundedTask<any RadrootsRuntimeSubscriptionToken>( - deadlineNanoseconds: subscriptionDeadline, + let identity = nextIdentity(kind: .shutdown) + let cancellationDeadline = deadlines.subscriptionNanoseconds + let task = RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt>( + deadlineNanoseconds: deadlines.shutdownNanoseconds, + operation: { + let cancellations = activeSubscriptions.compactMap(\.token).map { token in + RadrootsRuntimeBoundedTask<Void>( + deadlineNanoseconds: cancellationDeadline, operation: { - do { - return try await .success( - backend.subscribe(bufferCapacity: bufferCapacity) { [weak self] change in - await self?.receive( - change, - subscriptionID: id, - generation: subscriptionGeneration - ) - } - ) - } catch { - return .failure(Self.failure(from: error, operation: identity.rawValue)) - } - }, - onAbandonedResult: { result in - guard case let .success(token) = result else { return } - let cancellation = RadrootsRuntimeBoundedTask<Void>( - deadlineNanoseconds: subscriptionDeadline, - operation: { - await token.cancel() - return .success(()) - } - ) - _ = await cancellation.value() - } - ) - activeOperations[identity.sequence] = ActiveOperation( - identity: identity, - cancel: { task.cancel() } - ) - let outcome = await task.value() - removeActiveOperation(identity) - - guard generation == subscriptionGeneration, - case .running = lifecycleState, - var subscription = subscriptions[id] - else { - subscriptions.removeValue(forKey: id)?.continuation.finish() - if case let .completed(.success(token)) = outcome { - cancelTokenDetached(token) + await token.cancel() + return .success(()) } - throw RadrootsRuntimeClientError.superseded - } - - switch outcome { - case let .completed(.success(token)): - subscription.token = token - subscriptions[id] = subscription - return pair.stream - case let .completed(.failure(failure)): - subscriptions.removeValue(forKey: id)?.continuation.finish() - throw RadrootsRuntimeClientError.subscription(failure) - case .timedOut: - subscriptions.removeValue(forKey: id)?.continuation.finish() - throw RadrootsRuntimeClientError.subscription( - Self.deadlineFailure(identity: identity) - ) - case .cancelled: - subscriptions.removeValue(forKey: id)?.continuation.finish() - throw RadrootsRuntimeClientError.subscription( - Self.cancellationFailure(identity: identity) - ) + ) } - } - - func suspend() { - for operation in activeOperations.values { - operation.cancel() - } - activeOperations.removeAll() - - let activeSubscriptions = Array(subscriptions.values) - subscriptions.removeAll() - for subscription in activeSubscriptions { - subscription.continuation.finish() - if let token = subscription.token { - cancelTokenDetached(token) - } + for cancellation in cancellations { + _ = await cancellation.value() } - if let startupOperation { - generation &+= 1 - startupOperation.task.cancel() - self.startupOperation = nil - configuration = nil - lifecycleState = .stopped + guard let activeBackend else { + return .success(.alreadyStopped) } + do { + return try await .success(activeBackend.shutdown()) + } catch { + return .failure(Self.failure(from: error, operation: identity.rawValue)) + } + }, + onAbandonedResult: { [weak self] result in + await self?.settleLateShutdown(identity: identity, result: result) + } + ) + let operation = ShutdownOperation(identity: identity, backend: activeBackend, task: task) + shutdownOperation = operation + return operation + } + + private func finishShutdown( + _ operation: ShutdownOperation + ) async throws -> RadrootsRuntimeShutdownReceipt { + let outcome = await operation.task.value(cancelsOperationWhenWaiterCancelled: false) + if case .cancelled = outcome, + shutdownOperation?.identity == operation.identity, + generation == operation.identity.generation + { + throw RadrootsRuntimeClientError.shutdown( + Self.cancellationFailure(identity: operation.identity) + ) } - - func stop() async throws -> RadrootsRuntimeShutdownReceipt { - if let shutdownOperation { - return try await finishShutdown(shutdownOperation) - } - guard - startupOperation != nil || backend != nil || quarantinedBackend != nil - || !subscriptions.isEmpty || !activeOperations.isEmpty - else { - lifecycleState = .stopped - return .alreadyStopped - } - return try await finishShutdown(beginShutdown()) + if shutdownOperation?.identity == operation.identity { + shutdownOperation = nil } - private func finishStartup( - _ operation: StartupOperation - ) async throws -> RadrootsRuntimeSnapshot { - let outcome = await operation.task.value(cancelsOperationWhenWaiterCancelled: false) - guard generation == operation.identity.generation else { - throw RadrootsRuntimeClientError.superseded - } - - if case .cancelled = outcome, - startupOperation?.identity == operation.identity - { - throw RadrootsRuntimeClientError.startup( - Self.cancellationFailure(identity: operation.identity) - ) - } - - if startupOperation?.identity == operation.identity { - startupOperation = nil - } else if case let .completed(.success(started)) = outcome, - configuration == operation.configuration, - case .running = lifecycleState - { - return started.snapshot - } else { - throw RadrootsRuntimeClientError.superseded - } - - switch outcome { - case let .completed(.success(started)): - backend = started.backend - configuration = operation.configuration - lifecycleState = .running(generation: operation.identity.generation) - return started.snapshot - case let .completed(.failure(failure)): - lifecycleState = .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.startup(failure) - case .timedOut: - let failure = Self.deadlineFailure(identity: operation.identity) - lifecycleState = .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.startup(failure) - case .cancelled: - let failure = Self.cancellationFailure(identity: operation.identity) - lifecycleState = .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.startup(failure) - } + let lateSucceeded = lateShutdownSuccesses.remove(operation.identity) != nil + guard generation == operation.identity.generation else { + throw RadrootsRuntimeClientError.superseded } - private func beginShutdown() -> ShutdownOperation { - generation &+= 1 - let operationGeneration = generation - let pendingStartup = startupOperation - let activeBackend = backend ?? quarantinedBackend - let activeSubscriptions = Array(subscriptions.values) - let activeRuntimeOperations = Array(activeOperations.values) - - startupOperation = nil - backend = nil - quarantinedBackend = nil - configuration = nil - subscriptions.removeAll() - activeOperations.removeAll() - lifecycleState = .stopping(generation: operationGeneration) - - pendingStartup?.task.cancel() - for operation in activeRuntimeOperations { - operation.cancel() - } - for subscription in activeSubscriptions { - subscription.continuation.finish() - } - - let identity = nextIdentity(kind: .shutdown) - let cancellationDeadline = deadlines.subscriptionNanoseconds - let task = RadrootsRuntimeBoundedTask<RadrootsRuntimeShutdownReceipt>( - deadlineNanoseconds: deadlines.shutdownNanoseconds, - operation: { - let cancellations = activeSubscriptions.compactMap(\.token).map { token in - RadrootsRuntimeBoundedTask<Void>( - deadlineNanoseconds: cancellationDeadline, - operation: { - await token.cancel() - return .success(()) - } - ) - } - for cancellation in cancellations { - _ = await cancellation.value() - } - - guard let activeBackend else { - return .success(.alreadyStopped) - } - do { - return try await .success(activeBackend.shutdown()) - } catch { - return .failure(Self.failure(from: error, operation: identity.rawValue)) - } - }, - onAbandonedResult: { [weak self] result in - await self?.settleLateShutdown(identity: identity, result: result) - } - ) - let operation = ShutdownOperation(identity: identity, backend: activeBackend, task: task) - shutdownOperation = operation - return operation - } - - private func finishShutdown( - _ operation: ShutdownOperation - ) async throws -> RadrootsRuntimeShutdownReceipt { - let outcome = await operation.task.value(cancelsOperationWhenWaiterCancelled: false) - if case .cancelled = outcome, - shutdownOperation?.identity == operation.identity, - generation == operation.identity.generation - { - throw RadrootsRuntimeClientError.shutdown( - Self.cancellationFailure(identity: operation.identity) - ) - } - if shutdownOperation?.identity == operation.identity { - shutdownOperation = nil - } - - let lateSucceeded = lateShutdownSuccesses.remove(operation.identity) != nil - guard generation == operation.identity.generation else { - throw RadrootsRuntimeClientError.superseded - } - - switch outcome { - case let .completed(.success(receipt)): - quarantinedBackend = nil - lifecycleState = .stopped - return receipt - case let .completed(.failure(failure)): - quarantinedBackend = operation.backend - lifecycleState = .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.shutdown(failure) - case .timedOut: - let failure = Self.deadlineFailure(identity: operation.identity) - quarantinedBackend = lateSucceeded ? nil : operation.backend - lifecycleState = - lateSucceeded - ? .stopped - : .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.shutdown(failure) - case .cancelled: - let failure = Self.cancellationFailure(identity: operation.identity) - quarantinedBackend = lateSucceeded ? nil : operation.backend - lifecycleState = - lateSucceeded - ? .stopped - : .failed(generation: operation.identity.generation, failure: failure) - throw RadrootsRuntimeClientError.shutdown(failure) - } + switch outcome { + case .completed(.success(let receipt)): + quarantinedBackend = nil + lifecycleState = .stopped + return receipt + case .completed(.failure(let failure)): + quarantinedBackend = operation.backend + lifecycleState = .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.shutdown(failure) + case .timedOut: + let failure = Self.deadlineFailure(identity: operation.identity) + quarantinedBackend = lateSucceeded ? nil : operation.backend + lifecycleState = + lateSucceeded + ? .stopped + : .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.shutdown(failure) + case .cancelled: + let failure = Self.cancellationFailure(identity: operation.identity) + quarantinedBackend = lateSucceeded ? nil : operation.backend + lifecycleState = + lateSucceeded + ? .stopped + : .failed(generation: operation.identity.generation, failure: failure) + throw RadrootsRuntimeClientError.shutdown(failure) } - - private func runtimeOperation<T: Sendable>( - _ operation: String, - _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T - ) async throws -> T { - guard let backend, case .running = lifecycleState else { - throw RadrootsRuntimeClientError.notRunning - } - let operationGeneration = generation - let identity = nextIdentity(kind: .operation) - let task = RadrootsRuntimeBoundedTask<T>( - deadlineNanoseconds: deadlines.operationNanoseconds, - operation: { - do { - return try await .success(body(backend)) - } catch { - return .failure(Self.failure(from: error, operation: operation)) - } - } - ) - activeOperations[identity.sequence] = ActiveOperation( - identity: identity, - cancel: { task.cancel() } - ) - let outcome = await task.value() - removeActiveOperation(identity) - - guard generation == operationGeneration, case .running = lifecycleState else { - throw RadrootsRuntimeClientError.superseded - } - switch outcome { - case let .completed(.success(value)): - return value - case let .completed(.failure(failure)): - throw failure - case .timedOut: - throw Self.deadlineFailure(identity: identity) - case .cancelled: - throw Self.cancellationFailure(identity: identity) - } + } + + private func runtimeOperation<T: Sendable>( + _ operation: String, + _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T + ) async throws -> T { + guard let backend, case .running = lifecycleState else { + throw RadrootsRuntimeClientError.notRunning } - - private func addOperation<T: Sendable>( - _ operation: String, - _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T - ) async throws -> T { + let operationGeneration = generation + let identity = nextIdentity(kind: .operation) + let task = RadrootsRuntimeBoundedTask<T>( + deadlineNanoseconds: deadlines.operationNanoseconds, + operation: { do { - return try await runtimeOperation(operation, body) - } catch let error as RadrootsRuntimeClientError { - throw error + return try await .success(body(backend)) } catch { - throw RadrootsRuntimeClientError.add( - Self.failure(from: error, operation: operation) - ) - } + return .failure(Self.failure(from: error, operation: operation)) + } + } + ) + activeOperations[identity.sequence] = ActiveOperation( + identity: identity, + cancel: { task.cancel() } + ) + let outcome = await task.value() + removeActiveOperation(identity) + + guard generation == operationGeneration, case .running = lifecycleState else { + throw RadrootsRuntimeClientError.superseded } - - private func supportOperation<T: Sendable>( - _ operation: String, - _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T - ) async throws -> T { - do { - return try await runtimeOperation(operation, body) - } catch let error as RadrootsRuntimeClientError { - throw error - } catch { - throw RadrootsRuntimeClientError.support( - Self.failure(from: error, operation: operation) - ) - } + switch outcome { + case .completed(.success(let value)): + return value + case .completed(.failure(let failure)): + throw failure + case .timedOut: + throw Self.deadlineFailure(identity: identity) + case .cancelled: + throw Self.cancellationFailure(identity: identity) } - - private func receive( - _ change: RadrootsRuntimeChange, - subscriptionID: UUID, - generation subscriptionGeneration: UInt64 - ) { - guard generation == subscriptionGeneration, - case .running = lifecycleState, - let subscription = subscriptions[subscriptionID], - subscription.generation == subscriptionGeneration - else { - return - } - subscription.continuation.yield(change) + } + + private func addOperation<T: Sendable>( + _ operation: String, + _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T + ) async throws -> T { + do { + return try await runtimeOperation(operation, body) + } catch let error as RadrootsRuntimeClientError { + throw error + } catch { + throw RadrootsRuntimeClientError.add( + Self.failure(from: error, operation: operation) + ) } - - private func cancelSubscription(id: UUID, generation subscriptionGeneration: UInt64) { - guard let subscription = subscriptions[id], - subscription.generation == subscriptionGeneration - else { - return - } - subscriptions.removeValue(forKey: id) - subscription.continuation.finish() - if let token = subscription.token { - cancelTokenDetached(token) - } + } + + private func supportOperation<T: Sendable>( + _ operation: String, + _ body: @escaping @Sendable (any RadrootsRuntimeBackend) async throws -> T + ) async throws -> T { + do { + return try await runtimeOperation(operation, body) + } catch let error as RadrootsRuntimeClientError { + throw error + } catch { + throw RadrootsRuntimeClientError.support( + Self.failure(from: error, operation: operation) + ) } - - private func cancelTokenDetached(_ token: any RadrootsRuntimeSubscriptionToken) { - let deadline = deadlines.subscriptionNanoseconds - Task { - let cancellation = RadrootsRuntimeBoundedTask<Void>( - deadlineNanoseconds: deadline, - operation: { - await token.cancel() - return .success(()) - } - ) - _ = await cancellation.value() - } + } + + private func receive( + _ change: RadrootsRuntimeChange, + subscriptionID: UUID, + generation subscriptionGeneration: UInt64 + ) { + guard generation == subscriptionGeneration, + case .running = lifecycleState, + let subscription = subscriptions[subscriptionID], + subscription.generation == subscriptionGeneration + else { + return } - - private func settleLateShutdown( - identity: RadrootsRuntimeOperationIdentity, - result: Result<RadrootsRuntimeShutdownReceipt, RadrootsRuntimeFailure> - ) { - guard generation == identity.generation else { return } - guard case .success = result else { return } - if shutdownOperation?.identity == identity { - lateShutdownSuccesses.insert(identity) - } else { - quarantinedBackend = nil - lifecycleState = .stopped - } + subscription.continuation.yield(change) + } + + private func cancelSubscription(id: UUID, generation subscriptionGeneration: UInt64) { + guard let subscription = subscriptions[id], + subscription.generation == subscriptionGeneration + else { + return } - - private func nextIdentity( - kind: RadrootsRuntimeOperationKind - ) -> RadrootsRuntimeOperationIdentity { - operationSequence &+= 1 - return RadrootsRuntimeOperationIdentity( - generation: generation, - sequence: operationSequence, - kind: kind - ) + subscriptions.removeValue(forKey: id) + subscription.continuation.finish() + if let token = subscription.token { + cancelTokenDetached(token) } - - private func removeActiveOperation(_ identity: RadrootsRuntimeOperationIdentity) { - guard activeOperations[identity.sequence]?.identity == identity else { return } - activeOperations.removeValue(forKey: identity.sequence) + } + + private func cancelTokenDetached(_ token: any RadrootsRuntimeSubscriptionToken) { + let deadline = deadlines.subscriptionNanoseconds + Task { + let cancellation = RadrootsRuntimeBoundedTask<Void>( + deadlineNanoseconds: deadline, + operation: { + await token.cancel() + return .success(()) + } + ) + _ = await cancellation.value() } - - private static func deadlineFailure( - identity: RadrootsRuntimeOperationIdentity - ) -> RadrootsRuntimeFailure { - .local( - operation: identity.rawValue, - code: "ios.runtime.deadline_exceeded", - safeMessage: "The Radroots runtime operation did not finish in time." - ) + } + + private func settleLateShutdown( + identity: RadrootsRuntimeOperationIdentity, + result: Result<RadrootsRuntimeShutdownReceipt, RadrootsRuntimeFailure> + ) { + guard generation == identity.generation else { return } + guard case .success = result else { return } + if shutdownOperation?.identity == identity { + lateShutdownSuccesses.insert(identity) + } else { + quarantinedBackend = nil + lifecycleState = .stopped } - - private static func cancellationFailure( - identity: RadrootsRuntimeOperationIdentity - ) -> RadrootsRuntimeFailure { - .local( - operation: identity.rawValue, - code: "ios.runtime.cancelled", - safeMessage: "The Radroots runtime operation was cancelled." - ) + } + + private func nextIdentity( + kind: RadrootsRuntimeOperationKind + ) -> RadrootsRuntimeOperationIdentity { + operationSequence &+= 1 + return RadrootsRuntimeOperationIdentity( + generation: generation, + sequence: operationSequence, + kind: kind + ) + } + + private func removeActiveOperation(_ identity: RadrootsRuntimeOperationIdentity) { + guard activeOperations[identity.sequence]?.identity == identity else { return } + activeOperations.removeValue(forKey: identity.sequence) + } + + private static func deadlineFailure( + identity: RadrootsRuntimeOperationIdentity + ) -> RadrootsRuntimeFailure { + .local( + operation: identity.rawValue, + code: "ios.runtime.deadline_exceeded", + safeMessage: "The Radroots runtime operation did not finish in time." + ) + } + + private static func cancellationFailure( + identity: RadrootsRuntimeOperationIdentity + ) -> RadrootsRuntimeFailure { + .local( + operation: identity.rawValue, + code: "ios.runtime.cancelled", + safeMessage: "The Radroots runtime operation was cancelled." + ) + } + + private static func failure(from error: Error, operation: String) -> RadrootsRuntimeFailure { + if let failure = error as? RadrootsRuntimeFailure { + return failure } - - private static func failure(from error: Error, operation: String) -> RadrootsRuntimeFailure { - if let failure = error as? RadrootsRuntimeFailure { - return failure - } - if error is CancellationError { - return .local( - operation: operation, - code: "ios.runtime.cancelled", - safeMessage: "The Radroots runtime operation was cancelled." - ) - } - if case let RadrootsRuntimeClientError.startup(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.subscription(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.status(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.today(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.add(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.support(failure) = error { - return failure - } - if case let RadrootsRuntimeClientError.shutdown(failure) = error { - return failure - } - return .local( - operation: operation, - code: "ios.runtime.unexpected", - safeMessage: "The Radroots runtime could not complete the operation." - ) + if error is CancellationError { + return .local( + operation: operation, + code: "ios.runtime.cancelled", + safeMessage: "The Radroots runtime operation was cancelled." + ) + } + if case RadrootsRuntimeClientError.startup(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.subscription(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.status(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.today(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.add(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.support(let failure) = error { + return failure + } + if case RadrootsRuntimeClientError.shutdown(let failure) = error { + return failure } + return .local( + operation: operation, + code: "ios.runtime.unexpected", + safeMessage: "The Radroots runtime could not complete the operation." + ) + } } diff --git a/Radroots/Runtime/RadrootsRuntimeModels.swift b/Radroots/Runtime/RadrootsRuntimeModels.swift @@ -1,860 +1,924 @@ import Foundation enum RadrootsProtectedDataState: Sendable, Equatable { - case available - case unavailable + case available + case unavailable } enum RadrootsRuntimeNetworkProfile: Sendable, Equatable { - case publicNetwork - case simulator - case device + case publicNetwork + case simulator + case device } enum RadrootsBlossomHostKind: String, Codable, Sendable, Equatable { - case native - case simulator - case physicalDevice = "physical_device" + case native + case simulator + case physicalDevice = "physical_device" } enum RadrootsBlossomEndpointAuthority: String, Codable, Sendable, Equatable { - case publicWebPKI = "public_web_pki" - case loopbackDevelopment = "loopback_development" - case privateNetworkDevelopment = "private_network_development" - - init?(runtimeValue: String) { - switch runtimeValue { - case "public_webpki": self = .publicWebPKI - case "loopback_development": self = .loopbackDevelopment - case "private_network_development": self = .privateNetworkDevelopment - default: return nil - } + case publicWebPKI = "public_web_pki" + case loopbackDevelopment = "loopback_development" + case privateNetworkDevelopment = "private_network_development" + + init?(runtimeValue: String) { + switch runtimeValue { + case "public_webpki": self = .publicWebPKI + case "loopback_development": self = .loopbackDevelopment + case "private_network_development": self = .privateNetworkDevelopment + default: return nil } + } } struct RadrootsBlossomEndpointConfiguration: Codable, Sendable, Equatable { - let hostKind: RadrootsBlossomHostKind - let endpointAuthority: RadrootsBlossomEndpointAuthority - let primaryOrigin: String - let fallbackOrigins: [String] + let hostKind: RadrootsBlossomHostKind + let endpointAuthority: RadrootsBlossomEndpointAuthority + let primaryOrigin: String + let fallbackOrigins: [String] } struct RadrootsBlossomConfigurationStatus: Sendable, Equatable { - let schemaVersion: UInt16 - let hostKind: String - let endpointAuthority: String - let primaryOrigin: String - let fallbackOrigins: [String] - let configFingerprint: String + let schemaVersion: UInt16 + let hostKind: String + let endpointAuthority: String + let primaryOrigin: String + let fallbackOrigins: [String] + let configFingerprint: String } struct RadrootsBlossomEvidence: Sendable, Equatable { - let schemaVersion: UInt16 - let origin: String - let configFingerprint: String - let state: String - let lastSuccessfulState: String - let transportSecurity: String - let observedAtUnixMilliseconds: UInt64? - let httpStatus: UInt16? - let errorCode: String? - let serverErrorCode: String? - let errorPhase: String? - let retryable: Bool - let possibleOrphan: Bool - let attempts: UInt8 + let schemaVersion: UInt16 + let origin: String + let configFingerprint: String + let state: String + let lastSuccessfulState: String + let transportSecurity: String + let observedAtUnixMilliseconds: UInt64? + let httpStatus: UInt16? + let errorCode: String? + let serverErrorCode: String? + let errorPhase: String? + let retryable: Bool + let possibleOrphan: Bool + let attempts: UInt8 } struct RadrootsRuntimeAppMetadata: Sendable, Equatable { - let bundleIdentifier: String - let version: String - let buildNumber: String - let buildSHA: String? + let bundleIdentifier: String + let version: String + let buildNumber: String + let buildSHA: String? } enum RadrootsRuntimeSignerAvailability: Sendable, Equatable { - case ready - case busy - case locked - case unavailable + case ready + case busy + case locked + case unavailable } enum RadrootsRuntimeSigningPurpose: Sendable, Equatable { - case nostrEvent - case blossomUpload + case nostrEvent + case blossomUpload } struct RadrootsRuntimeSigningRequest: Sendable, Equatable { - let operationID: String - let signerRequestID: String - let publicKeyHex: String - let purpose: RadrootsRuntimeSigningPurpose - let deadlineUnixMilliseconds: UInt64 - let digest: Data + let operationID: String + let signerRequestID: String + let publicKeyHex: String + let purpose: RadrootsRuntimeSigningPurpose + let deadlineUnixMilliseconds: UInt64 + let digest: Data } enum RadrootsRuntimeSigningOutcome: Sendable, Equatable { - case signed(signatureHex: String) - case locked - case cancelled - case rejected - case timedOut - case unavailable - case invalidated - case failed + case signed(signatureHex: String) + case locked + case cancelled + case rejected + case timedOut + case unavailable + case invalidated + case failed } protocol RadrootsRuntimeSigner: Sendable { - func availability() async -> RadrootsRuntimeSignerAvailability - func sign(_ request: RadrootsRuntimeSigningRequest) async -> RadrootsRuntimeSigningOutcome + func availability() async -> RadrootsRuntimeSignerAvailability + func sign(_ request: RadrootsRuntimeSigningRequest) async -> RadrootsRuntimeSigningOutcome } struct RadrootsRuntimeLaunchConfiguration: Sendable { - let applicationSupportDirectory: String - let publicKeyHex: String - let sourceGenerationHex: String - let sourceGenerationCreatedAtUnixMilliseconds: UInt64 - let protectedData: RadrootsProtectedDataState - let networkProfile: RadrootsRuntimeNetworkProfile - let writableRelays: [String] - let blossom: RadrootsBlossomEndpointConfiguration? - let app: RadrootsRuntimeAppMetadata - let signerGeneration: String - let signer: any RadrootsRuntimeSigner + let applicationSupportDirectory: String + let publicKeyHex: String + let sourceGenerationHex: String + let sourceGenerationCreatedAtUnixMilliseconds: UInt64 + let protectedData: RadrootsProtectedDataState + let networkProfile: RadrootsRuntimeNetworkProfile + let writableRelays: [String] + let blossom: RadrootsBlossomEndpointConfiguration? + let app: RadrootsRuntimeAppMetadata + let signerGeneration: String + let signer: any RadrootsRuntimeSigner } extension RadrootsRuntimeLaunchConfiguration: Equatable { - static func == (lhs: Self, rhs: Self) -> Bool { - lhs.applicationSupportDirectory == rhs.applicationSupportDirectory - && lhs.publicKeyHex == rhs.publicKeyHex - && lhs.sourceGenerationHex == rhs.sourceGenerationHex - && lhs.sourceGenerationCreatedAtUnixMilliseconds - == rhs.sourceGenerationCreatedAtUnixMilliseconds - && lhs.protectedData == rhs.protectedData - && lhs.networkProfile == rhs.networkProfile - && lhs.writableRelays == rhs.writableRelays - && lhs.blossom == rhs.blossom - && lhs.app == rhs.app - && lhs.signerGeneration == rhs.signerGeneration - } + static func == (lhs: Self, rhs: Self) -> Bool { + lhs.applicationSupportDirectory == rhs.applicationSupportDirectory + && lhs.publicKeyHex == rhs.publicKeyHex + && lhs.sourceGenerationHex == rhs.sourceGenerationHex + && lhs.sourceGenerationCreatedAtUnixMilliseconds + == rhs.sourceGenerationCreatedAtUnixMilliseconds + && lhs.protectedData == rhs.protectedData + && lhs.networkProfile == rhs.networkProfile + && lhs.writableRelays == rhs.writableRelays + && lhs.blossom == rhs.blossom + && lhs.app == rhs.app + && lhs.signerGeneration == rhs.signerGeneration + } } struct RadrootsRuntimeIdentity: Sendable, Equatable { - let publicKeyHex: String - let hostSignerConfigured: Bool + let publicKeyHex: String + let hostSignerConfigured: Bool +} + +enum RadrootsRelayAccess: Sendable, Equatable { + case readOnly + case readWrite + + var label: String { + self == .readWrite ? "read write" : "read only" + } } struct RadrootsRelayEndpointStatus: Sendable, Equatable { - let url: String - let access: String - let readState: String - let writeState: String - let readLastAttemptUnixMilliseconds: UInt64? - let writeLastAttemptUnixMilliseconds: UInt64? - let readNextAttemptUnixMilliseconds: UInt64? - let writeNextAttemptUnixMilliseconds: UInt64? + let url: String + let access: RadrootsRelayAccess + let readState: String + let writeState: String + let readLastAttemptUnixMilliseconds: UInt64? + let writeLastAttemptUnixMilliseconds: UInt64? + let readNextAttemptUnixMilliseconds: UInt64? + let writeNextAttemptUnixMilliseconds: UInt64? } struct RadrootsRelayStatus: Sendable, Equatable { - let profile: String - let state: String - let readAvailability: String - let writeAvailability: String - let relays: [RadrootsRelayEndpointStatus] + let profile: String + let state: String + let readAvailability: String + let writeAvailability: String + let relays: [RadrootsRelayEndpointStatus] } struct RadrootsRuntimeSnapshot: Sendable, Equatable { - let identity: RadrootsRuntimeIdentity - let relay: RadrootsRelayStatus? - let blossomConfiguration: RadrootsBlossomConfigurationStatus? - let blossomEvidence: RadrootsBlossomEvidence? - let crateName: String - let crateVersion: String - let isClosed: Bool + let identity: RadrootsRuntimeIdentity + let relay: RadrootsRelayStatus? + let blossomConfiguration: RadrootsBlossomConfigurationStatus? + let blossomEvidence: RadrootsBlossomEvidence? + let crateName: String + let crateVersion: String + let isClosed: Bool } enum RadrootsRuntimeChangeKind: Sendable, Equatable { - case initial - case identity - case settings - case profile - case today - case drafts - case relay - case media - case lifecycle + case initial + case identity + case settings + case profile + case today + case drafts + case relay + case media + case lifecycle } struct RadrootsRuntimeChange: Sendable, Equatable { - let schemaVersion: UInt16 - let generation: UInt64 - let kind: RadrootsRuntimeChangeKind - let entityID: String? + let schemaVersion: UInt16 + let generation: UInt64 + let kind: RadrootsRuntimeChangeKind + let entityID: String? } struct RadrootsRuntimeShutdownReceipt: Sendable, Equatable { - let state: String - let alreadyClosed: Bool + let state: String + let alreadyClosed: Bool - static let alreadyStopped = Self(state: "closed", alreadyClosed: true) + static let alreadyStopped = Self(state: "closed", alreadyClosed: true) } enum RadrootsRuntimeOperationKind: String, Sendable, Equatable, Hashable { - case startup - case operation - case reconfiguration - case subscription - case shutdown + case startup + case operation + case reconfiguration + case subscription + case shutdown } struct RadrootsRuntimeOperationIdentity: Sendable, Equatable, Hashable { - let generation: UInt64 - let sequence: UInt64 - let kind: RadrootsRuntimeOperationKind + let generation: UInt64 + let sequence: UInt64 + let kind: RadrootsRuntimeOperationKind - var rawValue: String { - "ios-runtime-\(generation)-\(sequence)-\(kind.rawValue)" - } + var rawValue: String { + "ios-runtime-\(generation)-\(sequence)-\(kind.rawValue)" + } } struct RadrootsRuntimeDeadlinePolicy: Sendable, Equatable { - let startupNanoseconds: UInt64 - let operationNanoseconds: UInt64 - let subscriptionNanoseconds: UInt64 - let shutdownNanoseconds: UInt64 - - init( - startupNanoseconds: UInt64 = 30_000_000_000, - operationNanoseconds: UInt64 = 30_000_000_000, - subscriptionNanoseconds: UInt64 = 10_000_000_000, - shutdownNanoseconds: UInt64 = 10_000_000_000 - ) { - precondition(startupNanoseconds > 0 && startupNanoseconds <= 120_000_000_000) - precondition(operationNanoseconds > 0 && operationNanoseconds <= 120_000_000_000) - precondition(subscriptionNanoseconds > 0 && subscriptionNanoseconds <= 60_000_000_000) - precondition(shutdownNanoseconds > 0 && shutdownNanoseconds <= 60_000_000_000) - self.startupNanoseconds = startupNanoseconds - self.operationNanoseconds = operationNanoseconds - self.subscriptionNanoseconds = subscriptionNanoseconds - self.shutdownNanoseconds = shutdownNanoseconds - } - - static let production = Self() + let startupNanoseconds: UInt64 + let operationNanoseconds: UInt64 + let subscriptionNanoseconds: UInt64 + let shutdownNanoseconds: UInt64 + + init( + startupNanoseconds: UInt64 = 30_000_000_000, + operationNanoseconds: UInt64 = 30_000_000_000, + subscriptionNanoseconds: UInt64 = 10_000_000_000, + shutdownNanoseconds: UInt64 = 10_000_000_000 + ) { + precondition(startupNanoseconds > 0 && startupNanoseconds <= 120_000_000_000) + precondition(operationNanoseconds > 0 && operationNanoseconds <= 120_000_000_000) + precondition(subscriptionNanoseconds > 0 && subscriptionNanoseconds <= 60_000_000_000) + precondition(shutdownNanoseconds > 0 && shutdownNanoseconds <= 60_000_000_000) + self.startupNanoseconds = startupNanoseconds + self.operationNanoseconds = operationNanoseconds + self.subscriptionNanoseconds = subscriptionNanoseconds + self.shutdownNanoseconds = shutdownNanoseconds + } + + static let production = Self() } enum RadrootsRuntimeObservationState: Sendable, Equatable { - case inactive - case subscribing(attempt: UInt32) - case active - case retrying(attempt: UInt32, message: String) - case stopped + case inactive + case subscribing(attempt: UInt32) + case active + case retrying(attempt: UInt32, message: String) + case stopped } enum RadrootsRuntimeObservationBackoff { - static func sleep(attempt: UInt32) async throws { - let exponent = min(attempt.saturatingSubtractingOne, 7) - let delay = min(UInt64(250_000_000) << exponent, 30_000_000_000) - try await Task.sleep(nanoseconds: delay) - } + static func sleep(attempt: UInt32) async throws { + let exponent = min(attempt.saturatingSubtractingOne, 7) + let delay = min(UInt64(250_000_000) << exponent, 30_000_000_000) + try await Task.sleep(nanoseconds: delay) + } } -private extension UInt32 { - var saturatingSubtractingOne: UInt32 { - self == 0 ? 0 : self - 1 - } +extension UInt32 { + fileprivate var saturatingSubtractingOne: UInt32 { + self == 0 ? 0 : self - 1 + } } struct RadrootsRuntimeFailure: Error, Sendable, Equatable { - let schemaVersion: UInt16 - let code: String - let category: String - let retryable: Bool - let recoveryActions: [String] - let operationID: String? - let capabilityID: String? - let safeMessage: String - - static func local(operation: String, code: String, safeMessage: String) -> Self { - Self( - schemaVersion: 1, - code: code, - category: "runtime", - retryable: false, - recoveryActions: [], - operationID: operation, - capabilityID: nil, - safeMessage: safeMessage - ) - } + let schemaVersion: UInt16 + let code: String + let category: String + let retryable: Bool + let recoveryActions: [String] + let operationID: String? + let capabilityID: String? + let safeMessage: String + + static func local(operation: String, code: String, safeMessage: String) -> Self { + Self( + schemaVersion: 1, + code: code, + category: "runtime", + retryable: false, + recoveryActions: [], + operationID: operation, + capabilityID: nil, + safeMessage: safeMessage + ) + } } extension RadrootsRuntimeFailure: LocalizedError { - var errorDescription: String? { - safeMessage - } + var errorDescription: String? { + safeMessage + } } enum RadrootsRuntimeClientError: Error, Sendable, Equatable { - case invalidBufferCapacity - case notRunning - case superseded - case startup(RadrootsRuntimeFailure) - case subscription(RadrootsRuntimeFailure) - case status(RadrootsRuntimeFailure) - case today(RadrootsRuntimeFailure) - case add(RadrootsRuntimeFailure) - case support(RadrootsRuntimeFailure) - case shutdown(RadrootsRuntimeFailure) + case invalidBufferCapacity + case notRunning + case superseded + case startup(RadrootsRuntimeFailure) + case subscription(RadrootsRuntimeFailure) + case status(RadrootsRuntimeFailure) + case today(RadrootsRuntimeFailure) + case add(RadrootsRuntimeFailure) + case support(RadrootsRuntimeFailure) + case shutdown(RadrootsRuntimeFailure) } extension RadrootsRuntimeClientError: LocalizedError { - var errorDescription: String? { - switch self { - case .invalidBufferCapacity: - "The requested runtime event buffer is outside the supported range." - case .notRunning: - "The Radroots runtime is not running." - case .superseded: - "A newer runtime lifecycle request replaced this request." - case let .startup(failure), - let .subscription(failure), - let .status(failure), - let .today(failure), - let .add(failure), - let .support(failure), - let .shutdown(failure): - failure.safeMessage - } - } + var errorDescription: String? { + switch self { + case .invalidBufferCapacity: + "The requested runtime event buffer is outside the supported range." + case .notRunning: + "The Radroots runtime is not running." + case .superseded: + "A newer runtime lifecycle request replaced this request." + case .startup(let failure), + .subscription(let failure), + .status(let failure), + .today(let failure), + .add(let failure), + .support(let failure), + .shutdown(let failure): + failure.safeMessage + } + } } struct RadrootsLocalNetwork: Sendable, Equatable, Hashable, Identifiable { - let schemaVersion: UInt16 - let id: String - let label: String - let relayURLs: [String] - let locality: String? - let followedAuthors: [String] - let generation: UInt64 - - static func defaultContext(snapshot: RadrootsRuntimeSnapshot) -> Self { - Self( - schemaVersion: 1, - id: "default", - label: "Local network", - relayURLs: snapshot.relay?.relays.map(\.url) ?? [], - locality: nil, - followedAuthors: [], - generation: 1 - ) - } + let schemaVersion: UInt16 + let id: String + let label: String + let relayURLs: [String] + let locality: String? + let followedAuthors: [String] + let generation: UInt64 + + static func defaultContext(snapshot: RadrootsRuntimeSnapshot) -> Self { + Self( + schemaVersion: 1, + id: "default", + label: "Local network", + relayURLs: snapshot.relay?.relays.map(\.url) ?? [], + locality: nil, + followedAuthors: [], + generation: 1 + ) + } } enum RadrootsTodayCardType: String, CaseIterable, Sendable, Equatable, Hashable { - case update - case photoUpdate - case ask - case event - case foodAvailability - - var label: String { - switch self { - case .update: "Update" - case .photoUpdate: "Photo update" - case .ask: "Ask" - case .event: "Event" - case .foodAvailability: "Food availability" - } + case update + case photoUpdate + case ask + case event + case foodAvailability + + var label: String { + switch self { + case .update: "Update" + case .photoUpdate: "Photo update" + case .ask: "Ask" + case .event: "Event" + case .foodAvailability: "Food availability" } + } } enum RadrootsMediaVerificationState: String, Sendable, Equatable, Hashable { - case pending - case verified - case failed - case unavailable + case pending + case verified + case failed + case unavailable } struct RadrootsMediaReference: Sendable, Equatable, Hashable, Identifiable { - let url: String - let sha256: String? - let mediaType: String? - let width: UInt32? - let height: UInt32? - let byteSize: UInt64? - let alt: String? - let verification: RadrootsMediaVerificationState - - var id: String { - sha256 ?? url - } - - var trustedURL: URL? { - guard verification == .verified, - let candidate = URL(string: url), - candidate.scheme?.lowercased() == "https" - else { - return nil - } - return candidate - } + let url: String + let sha256: String? + let mediaType: String? + let width: UInt32? + let height: UInt32? + let byteSize: UInt64? + let alt: String? + let verification: RadrootsMediaVerificationState + + var id: String { + sha256 ?? url + } + + var trustedURL: URL? { + guard verification == .verified, + let candidate = URL(string: url), + candidate.scheme?.lowercased() == "https" + else { + return nil + } + return candidate + } } struct RadrootsProfileSummary: Sendable, Equatable, Hashable { - let authorPublicKey: String - let name: String? - let displayName: String? - let about: String? - let picture: RadrootsMediaReference? - let banner: RadrootsMediaReference? - let nip05: String? - let website: String? - let lightningAddress: String? - - var preferredName: String { - for candidate in [displayName, name] { - if let candidate, !candidate.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { - return candidate - } - } - guard authorPublicKey.count > 16 else { return authorPublicKey } - return "\(authorPublicKey.prefix(8))…\(authorPublicKey.suffix(8))" + let authorPublicKey: String + let name: String? + let displayName: String? + let about: String? + let picture: RadrootsMediaReference? + let banner: RadrootsMediaReference? + let nip05: String? + let website: String? + let lightningAddress: String? + + var preferredName: String { + for candidate in [displayName, name] { + if let candidate, !candidate.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + return candidate + } } + guard authorPublicKey.count > 16 else { return authorPublicKey } + return "\(authorPublicKey.prefix(8))…\(authorPublicKey.suffix(8))" + } } enum RadrootsThreadEntryType: String, Sendable, Equatable, Hashable { - case profile - case reply - case comment - case deletion + case profile + case reply + case comment + case deletion } struct RadrootsThreadEntry: Sendable, Equatable, Hashable, Identifiable { - let id: String - let authorPublicKey: String - let content: String - let authoredAtUnixSeconds: UInt64 - let type: RadrootsThreadEntryType - let root: String - let parentEventID: String - let authorProfile: RadrootsProfileSummary? + let id: String + let authorPublicKey: String + let content: String + let authoredAtUnixSeconds: UInt64 + let type: RadrootsThreadEntryType + let root: String + let parentEventID: String + let authorProfile: RadrootsProfileSummary? } enum RadrootsCardLifecycleState: String, Sendable, Equatable, Hashable { - case active - case sold - case past + case active + case sold + case past } struct RadrootsTodayCard: Sendable, Equatable, Hashable, Identifiable { - let id: String - let type: RadrootsTodayCardType - let sourceEventID: String - let sourceAddress: String? - let authorPublicKey: String - let contractID: String - let title: String? - let content: String - let authoredAtUnixSeconds: UInt64 - let effectiveAtUnixSeconds: UInt64 - let eventStartUnixSeconds: UInt64? - let eventEndUnixSeconds: UInt64? - let location: String? - let priceAmount: String? - let priceCurrency: String? - let priceUnit: String? - let quantity: String? - let foodSummary: String? - let foodPublishedAtUnixSeconds: UInt64? - let foodStatus: String? - let contextRank: UInt8 - let inclusionReason: String - let media: [RadrootsMediaReference] - let lifecycle: RadrootsCardLifecycleState - let rankDigest: String? - let authorProfile: RadrootsProfileSummary? - let thread: [RadrootsThreadEntry] - let localOperationID: String? - let localOperationState: String? - - var authorName: String { - authorProfile?.preferredName - ?? RadrootsProfileSummary( - authorPublicKey: authorPublicKey, - name: nil, - displayName: nil, - about: nil, - picture: nil, - banner: nil, - nip05: nil, - website: nil, - lightningAddress: nil - ).preferredName - } - - var priceSummary: String? { - guard let priceAmount, let priceCurrency, let priceUnit else { return nil } - return "\(priceAmount) \(priceCurrency)/\(priceUnit)" - } - - var accessibilitySummary: String { - var parts = [type.label, "by \(authorName)"] - if let title { - parts.append(title) - } - if !content.isEmpty { - parts.append(content) - } - if let priceSummary { - parts.append(priceSummary) - } - if lifecycle != .active { - parts.append(lifecycle.rawValue) - } - if let localOperationState { - parts.append(localOperationState) - } - return parts.joined(separator: ", ") - } + let id: String + let type: RadrootsTodayCardType + let sourceEventID: String + let sourceAddress: String? + let authorPublicKey: String + let contractID: String + let title: String? + let content: String + let authoredAtUnixSeconds: UInt64 + let effectiveAtUnixSeconds: UInt64 + let eventStartUnixSeconds: UInt64? + let eventEndUnixSeconds: UInt64? + let location: String? + let priceAmount: String? + let priceCurrency: String? + let priceUnit: String? + let quantity: String? + let foodSummary: String? + let foodPublishedAtUnixSeconds: UInt64? + let foodStatus: String? + let contextRank: UInt8 + let inclusionReason: String + let media: [RadrootsMediaReference] + let lifecycle: RadrootsCardLifecycleState + let rankDigest: String? + let authorProfile: RadrootsProfileSummary? + let thread: [RadrootsThreadEntry] + let localOperationID: String? + let localOperationState: String? + + var authorName: String { + authorProfile?.preferredName + ?? RadrootsProfileSummary( + authorPublicKey: authorPublicKey, + name: nil, + displayName: nil, + about: nil, + picture: nil, + banner: nil, + nip05: nil, + website: nil, + lightningAddress: nil + ).preferredName + } + + var priceSummary: String? { + guard let priceAmount, let priceCurrency, let priceUnit else { return nil } + return "\(priceAmount) \(priceCurrency)/\(priceUnit)" + } + + var accessibilitySummary: String { + var parts = [type.label, "by \(authorName)"] + if let title { + parts.append(title) + } + if !content.isEmpty { + parts.append(content) + } + if let priceSummary { + parts.append(priceSummary) + } + if lifecycle != .active { + parts.append(lifecycle.rawValue) + } + if let localOperationState { + parts.append(localOperationState) + } + return parts.joined(separator: ", ") + } } struct RadrootsTodayPageRequest: Sendable, Equatable { - let context: RadrootsLocalNetwork - let limit: UInt16 - let asOfUnixSeconds: UInt64? - let cursor: String? - - static func first( - context: RadrootsLocalNetwork, - limit: UInt16, - asOfUnixSeconds: UInt64 - ) -> Self { - Self(context: context, limit: limit, asOfUnixSeconds: asOfUnixSeconds, cursor: nil) - } + let context: RadrootsLocalNetwork + let limit: UInt16 + let asOfUnixSeconds: UInt64? + let cursor: String? - static func after(context: RadrootsLocalNetwork, limit: UInt16, cursor: String) -> Self { - Self(context: context, limit: limit, asOfUnixSeconds: nil, cursor: cursor) - } + static func first( + context: RadrootsLocalNetwork, + limit: UInt16, + asOfUnixSeconds: UInt64 + ) -> Self { + Self(context: context, limit: limit, asOfUnixSeconds: asOfUnixSeconds, cursor: nil) + } + + static func after(context: RadrootsLocalNetwork, limit: UInt16, cursor: String) -> Self { + Self(context: context, limit: limit, asOfUnixSeconds: nil, cursor: cursor) + } } struct RadrootsTodayPage: Sendable, Equatable { - let asOfUnixSeconds: UInt64 - let items: [RadrootsTodayCard] - let nextCursor: String? + let asOfUnixSeconds: UInt64 + let items: [RadrootsTodayCard] + let nextCursor: String? } enum RadrootsTodayProjectionUpdate: Sendable, Equatable { - case incremental - case rebuild + case incremental + case rebuild } struct RadrootsTodayRefreshReceipt: Sendable, Equatable { - let update: RadrootsTodayProjectionUpdate - let sourceEvents: UInt64 - let visibleCards: UInt64 - let profiles: UInt64 - let threadEntries: UInt64 - let contentGeneration: UInt64 - let changed: Bool + let update: RadrootsTodayProjectionUpdate + let sourceEvents: UInt64 + let visibleCards: UInt64 + let profiles: UInt64 + let threadEntries: UInt64 + let contentGeneration: UInt64 + let changed: Bool } enum RadrootsSearchResultType: Sendable, Equatable, Hashable { - case card - case profile + case card + case profile } struct RadrootsSearchResult: Sendable, Equatable, Hashable, Identifiable { - let type: RadrootsSearchResultType - let id: String - let card: RadrootsTodayCard? - let profile: RadrootsProfileSummary? + let type: RadrootsSearchResultType + let id: String + let card: RadrootsTodayCard? + let profile: RadrootsProfileSummary? } struct RadrootsMeSnapshot: Sendable, Equatable { - let publicKey: String - let profile: RadrootsProfileSummary? - let cards: [RadrootsTodayCard] + let publicKey: String + let profile: RadrootsProfileSummary? + let cards: [RadrootsTodayCard] } enum RadrootsAddCommandType: String, CaseIterable, Sendable, Equatable, Hashable, Identifiable { - case createUpdate - case createPhotoUpdate - case createAsk - case createEvent - case createFoodAvailability - - var id: String { - rawValue - } + case createUpdate + case createPhotoUpdate + case createAsk + case createEvent + case createFoodAvailability - var label: String { - switch self { - case .createUpdate: "Update" - case .createPhotoUpdate: "Photo update" - case .createAsk: "Ask" - case .createEvent: "Event" - case .createFoodAvailability: "Food availability" - } - } + var id: String { + rawValue + } - var todayCardType: RadrootsTodayCardType { - switch self { - case .createUpdate: .update - case .createPhotoUpdate: .photoUpdate - case .createAsk: .ask - case .createEvent: .event - case .createFoodAvailability: .foodAvailability - } + var label: String { + switch self { + case .createUpdate: "Update" + case .createPhotoUpdate: "Photo update" + case .createAsk: "Ask" + case .createEvent: "Event" + case .createFoodAvailability: "Food availability" } + } - var acceptsMedia: Bool { - self != .createUpdate + var todayCardType: RadrootsTodayCardType { + switch self { + case .createUpdate: .update + case .createPhotoUpdate: .photoUpdate + case .createAsk: .ask + case .createEvent: .event + case .createFoodAvailability: .foodAvailability } + } - var requiresMedia: Bool { - self == .createPhotoUpdate - } } enum RadrootsAddFieldKind: Sendable, Equatable, Hashable { - case text - case multilineText - case date - case dateTime - case decimal - case choice - case location - case media + case text + case multilineText + case date + case dateTime + case decimal + case choice + case location + case media } struct RadrootsAddField: Sendable, Equatable, Hashable, Identifiable { - let schemaVersion: UInt16 - let id: String - let label: String - let kind: RadrootsAddFieldKind - let required: Bool - let choices: [String] - let maxBytes: UInt64? + let schemaVersion: UInt16 + let id: String + let label: String + let kind: RadrootsAddFieldKind + let required: Bool + let choices: [String] + let maxBytes: UInt64? + let maxItems: UInt16? } struct RadrootsAddSchema: Sendable, Equatable, Hashable, Identifiable { - let schemaVersion: UInt16 - let commandType: RadrootsAddCommandType - let label: String - let fields: [RadrootsAddField] + let schemaVersion: UInt16 + let commandType: RadrootsAddCommandType + let label: String + let fields: [RadrootsAddField] - var id: RadrootsAddCommandType { - commandType - } + var id: RadrootsAddCommandType { + commandType + } } enum RadrootsEventTiming: String, Sendable, Equatable, Hashable, CaseIterable, Identifiable { - case allDay - case timed + case allDay + case timed - var id: String { - rawValue - } + var id: String { + rawValue + } - var label: String { - self == .allDay ? "All day" : "Specific time" - } + var label: String { + self == .allDay ? "All day" : "Specific time" + } } struct RadrootsPreparedMedia: Sendable, Equatable, Hashable, Identifiable { - let opaqueReference: String - let remoteURL: String? - let sha256: String - let mediaType: String - let byteSize: UInt64 - let width: UInt32 - let height: UInt32 - var alt: String - let preparedAtUnixSeconds: UInt64 - - var id: String { - opaqueReference - } + let opaqueReference: String + let remoteURL: String? + let sha256: String + let mediaType: String + let byteSize: UInt64 + let width: UInt32 + let height: UInt32 + var alt: String + let preparedAtUnixSeconds: UInt64 + + var id: String { + opaqueReference + } } struct RadrootsPreparedMediaHandle: Sendable, Equatable { - let media: RadrootsPreparedMedia - let fileDescriptor: UInt64 + let media: RadrootsPreparedMedia + let fileDescriptor: UInt64 } struct RadrootsAddForm: Sendable, Equatable, Hashable { - var commandType: RadrootsAddCommandType - var content: String = "" - var identifier: String? - var title: String? - var summary: String? - var location: String? - var eventTiming: RadrootsEventTiming? - var eventStartDate: String? - var eventEndDate: String? - var eventStartUnixSeconds: UInt64? - var eventEndUnixSeconds: UInt64? - var eventTimezone: String? - var priceAmount: String? - var currency: String? - var unit: String? - var quantity: String? - var foodPublishedAtUnixSeconds: UInt64? - var foodStatus: String? - var media: [RadrootsPreparedMedia] = [] - - static func empty(_ type: RadrootsAddCommandType = .createUpdate) -> Self { - var form = Self(commandType: type) - if type == .createEvent { - form.eventTiming = .timed - form.eventTimezone = TimeZone.current.identifier - } - return form - } + var commandType: RadrootsAddCommandType + var content: String = "" + var identifier: String? + var title: String? + var summary: String? + var location: String? + var eventTiming: RadrootsEventTiming? + var eventStartDate: String? + var eventEndDate: String? + var eventStartUnixSeconds: UInt64? + var eventEndUnixSeconds: UInt64? + var eventTimezone: String? + var priceAmount: String? + var currency: String? + var unit: String? + var quantity: String? + var foodPublishedAtUnixSeconds: UInt64? + var foodStatus: String? + var media: [RadrootsPreparedMedia] = [] + + static func empty(_ type: RadrootsAddCommandType = .createUpdate) -> Self { + var form = Self(commandType: type) + if type == .createEvent { + form.eventTiming = .timed + form.eventTimezone = TimeZone.current.identifier + } + return form + } } struct RadrootsAddRuntimeInput: Sendable, Equatable { - let form: RadrootsAddForm - let media: [RadrootsPreparedMediaHandle] + let form: RadrootsAddForm + let media: [RadrootsPreparedMediaHandle] } enum RadrootsDraftKind: String, Sendable, Equatable, Hashable { - case add - case retraction + case add + case retraction } enum RadrootsOutboxState: String, Sendable, Equatable, Hashable { - case draft - case mediaPreparing - case mediaUploading - case readyToSign - case signing - case signed - case queued - case delivering - case partiallyDelivered - case retryable - case terminal - case cancelled - case complete - - var isEditable: Bool { - self == .draft || self == .mediaPreparing - } - - var canAdvance: Bool { - self == .queued || self == .retryable || self == .partiallyDelivered - } - - var canCancel: Bool { - ![.cancelled, .complete, .terminal].contains(self) - } - - var label: String { - rawValue - .replacingOccurrences(of: "([a-z])([A-Z])", with: "$1 $2", options: .regularExpression) - .capitalized - } + case draft + case mediaPreparing + case mediaUploading + case readyToSign + case signing + case signed + case queued + case delivering + case partiallyDelivered + case retryable + case terminal + case cancelled + case complete + + var isEditable: Bool { + self == .draft || self == .mediaPreparing + } + + var canAdvance: Bool { + self == .queued || self == .retryable || self == .partiallyDelivered + } + + var canCancel: Bool { + ![.cancelled, .complete, .terminal].contains(self) + } + + var label: String { + rawValue + .replacingOccurrences(of: "([a-z])([A-Z])", with: "$1 $2", options: .regularExpression) + .capitalized + } } enum RadrootsDraftMediaStage: String, Sendable, Equatable, Hashable { - case pending - case preparing - case uploading - case verified - case failed - case orphaned + case pending + case preparing + case uploading + case verified + case failed + case orphaned } struct RadrootsDraftMediaStatus: Sendable, Equatable, Hashable { - let url: String - let stage: RadrootsDraftMediaStage - let uploadAttempts: UInt8 - let verifiedAtUnixMilliseconds: UInt64? - let possibleOrphan: Bool - let orphanReasonCode: String? - let orphanRecordedAtUnixMilliseconds: UInt64? + let url: String + let stage: RadrootsDraftMediaStage + let uploadAttempts: UInt8 + let verifiedAtUnixMilliseconds: UInt64? + let possibleOrphan: Bool + let orphanReasonCode: String? + let orphanRecordedAtUnixMilliseconds: UInt64? } struct RadrootsOperationSettlement: Sendable, Equatable, Hashable { - let artifacts: UInt16 - let signed: UInt16 - let admitted: UInt16 - let pending: UInt16 - let retryable: UInt16 - let indeterminate: UInt16 - let failedTerminal: UInt16 - let cancelled: UInt16 - let deliveryPlans: UInt16 - let deliverySatisfied: UInt16 - let deliveryPending: UInt16 - let deliveryRetryable: UInt16 - let deliveryExhausted: UInt16 - let deliveryFailedTerminal: UInt16 - let deliveryCancelled: UInt16 - - var summary: String { - if deliverySatisfied > 0 { - return "Delivered" - } - if deliveryRetryable > 0 || retryable > 0 { - return "Saved; delivery can be retried" - } - if indeterminate > 0 { - return "Delivery outcome is not yet known" - } - if failedTerminal > 0 || deliveryFailedTerminal > 0 { - return "Delivery failed" - } - if admitted > 0 { - return "Published locally; relay delivery is pending" - } - if signed > 0 { - return "Signed; local publication is pending" - } - return "Waiting" + let artifacts: UInt16 + let signed: UInt16 + let admitted: UInt16 + let pending: UInt16 + let retryable: UInt16 + let indeterminate: UInt16 + let failedTerminal: UInt16 + let cancelled: UInt16 + let deliveryPlans: UInt16 + let deliverySatisfied: UInt16 + let deliveryPending: UInt16 + let deliveryRetryable: UInt16 + let deliveryExhausted: UInt16 + let deliveryFailedTerminal: UInt16 + let deliveryCancelled: UInt16 + + var summary: String { + if deliverySatisfied > 0 { + return "Delivered" + } + if deliveryRetryable > 0 || retryable > 0 { + return "Saved; delivery can be retried" + } + if indeterminate > 0 { + return "Delivery outcome is not yet known" + } + if failedTerminal > 0 || deliveryFailedTerminal > 0 { + return "Delivery failed" + } + if admitted > 0 { + return "Published locally; relay delivery is pending" } + if signed > 0 { + return "Signed; local publication is pending" + } + return "Waiting" + } } struct RadrootsDraftStatus: Sendable, Equatable, Hashable, Identifiable { - let id: String - let revision: UInt64 - let authorPublicKey: String - let kind: RadrootsDraftKind - let commandType: RadrootsAddCommandType - let form: RadrootsAddForm? - let state: RadrootsOutboxState - let cardID: String - let operationID: String? - let createdAtUnixMilliseconds: UInt64 - let updatedAtUnixMilliseconds: UInt64 - let media: [RadrootsDraftMediaStatus] - let settlement: RadrootsOperationSettlement? - - var honestSummary: String { - settlement?.summary ?? state.label - } + let id: String + let revision: UInt64 + let authorPublicKey: String + let kind: RadrootsDraftKind + let commandType: RadrootsAddCommandType + let form: RadrootsAddForm? + let state: RadrootsOutboxState + let cardID: String + let operationID: String? + let createdAtUnixMilliseconds: UInt64 + let updatedAtUnixMilliseconds: UInt64 + let media: [RadrootsDraftMediaStatus] + let settlement: RadrootsOperationSettlement? + let isRevision: Bool + + var honestSummary: String { + settlement?.summary ?? state.label + } } struct RadrootsRetractionDraftInput: Sendable, Equatable, Hashable { - let commandType: RadrootsAddCommandType - let targetCardID: String - let targetEventID: String - let targetKind: UInt32 - let targetAddress: String? - let reason: String + let commandType: RadrootsAddCommandType + let targetCardID: String + let targetEventID: String + let targetKind: UInt32 + let targetAddress: String? + let reason: String +} + +struct RadrootsRevisionTarget: Sendable, Equatable, Hashable { + let cardID: String + let sourceEventID: String + let sourceAddress: String? + let authorPublicKey: String +} + +enum RadrootsRevisionPolicy: Sendable, Equatable, Hashable { + case replaceThenRetract + case addressableReplacement +} + +enum RadrootsRevisionPhase: Sendable, Equatable, Hashable { + case replacementPending + case replacementFailed + case retractionPending + case complete + case partialEffect + case cancelled +} + +struct RadrootsRevisionStatus: Sendable, Equatable { + let operationID: String + let replacement: RadrootsDraftStatus + let retraction: RadrootsDraftStatus? + let policy: RadrootsRevisionPolicy + let phase: RadrootsRevisionPhase + + var honestSummary: String { + switch phase { + case .replacementPending: "Replacement saved for delivery" + case .replacementFailed: "Replacement failed; the original remains" + case .retractionPending: "Replacement published; retraction is pending" + case .complete: "Revision complete" + case .partialEffect: "Replacement published; retraction did not complete" + case .cancelled: "Revision cancelled" + } + } } struct RadrootsBlossomUploadIntent: Sendable, Equatable { - let draftID: String - let expectedRevision: UInt64 - let media: RadrootsPreparedMediaHandle + let draftID: String + let expectedRevision: UInt64 + let media: RadrootsPreparedMediaHandle +} + +struct RadrootsNativeUploadJob: Sendable, Equatable { + let operationID: String + let draft: RadrootsDraftStatus + let remoteURL: String + let authorizationHeader: String + let expectedSHA256: String + let mediaType: String + let byteSize: UInt64 +} + +struct RadrootsNativeUploadCompletion: Sendable, Equatable { + let draftID: String + let expectedRevision: UInt64 + let media: RadrootsPreparedMediaHandle + let statusCode: UInt16 + let responseMediaType: String? + let responseContentEncoding: String? + let responseBody: Data } enum RadrootsRuntimeLifecycle: Sendable, Equatable { - case stopped - case starting(generation: UInt64) - case running(generation: UInt64) - case stopping(generation: UInt64) - case failed(generation: UInt64, failure: RadrootsRuntimeFailure) + case stopped + case starting(generation: UInt64) + case running(generation: UInt64) + case stopping(generation: UInt64) + case failed(generation: UInt64, failure: RadrootsRuntimeFailure) } diff --git a/Radroots/State/RadrootsAddStore.swift b/Radroots/State/RadrootsAddStore.swift @@ -1,616 +1,669 @@ import Foundation enum RadrootsAddLoadState: Sendable, Equatable { - case idle - case loading - case ready - case failed(String) + case idle + case loading + case ready + case failed(String) } @MainActor final class RadrootsAddStore: ObservableObject { - @Published private(set) var schemas: [RadrootsAddSchema] = [] - @Published private(set) var drafts: [RadrootsDraftStatus] = [] - @Published private(set) var activeDraft: RadrootsDraftStatus? - @Published private(set) var form: RadrootsAddForm - @Published private(set) var state: RadrootsAddLoadState = .idle - @Published private(set) var mediaSupport: RadrootsAddMediaSupport = .unavailable - @Published private(set) var blossomConfiguration: RadrootsBlossomConfigurationStatus? - @Published private(set) var blossomEvidence: RadrootsBlossomEvidence? - @Published private(set) var isCheckingBlossom = false - @Published private(set) var isWorking = false - @Published private(set) var message: String? - @Published private(set) var lastFailureCode: String? - @Published private(set) var observationState: RadrootsRuntimeObservationState = .inactive - - private let runtimeClient: RadrootsRuntimeClient - private let media: (any RadrootsAddMediaHandling)? - private let now: @Sendable () -> UInt64 - private let observationDelay: @Sendable (UInt32) async throws -> Void - private var generation: UInt64 = 0 - private var operationGeneration: UInt64? - private var observationTask: Task<Void, Never>? - private var isStarted = false - private var observationGeneration: UInt64 = 0 - - init( - runtimeClient: RadrootsRuntimeClient, - media: (any RadrootsAddMediaHandling)? = nil, - initialType: RadrootsAddCommandType = .createUpdate, - now: @escaping @Sendable () -> UInt64 = { - UInt64(Date().timeIntervalSince1970) - }, - observationDelay: @escaping @Sendable (UInt32) async throws -> Void = - RadrootsRuntimeObservationBackoff.sleep - ) { - self.runtimeClient = runtimeClient - self.media = media - self.now = now - self.observationDelay = observationDelay - form = .empty(initialType) - } - - deinit { - observationTask?.cancel() - } - - var selectedSchema: RadrootsAddSchema? { - schemas.first(where: { $0.commandType == form.commandType }) - } - - var isFormEditable: Bool { - activeDraft?.state.isEditable ?? true - } - - var canSave: Bool { - isFormEditable && !isWorking - } - - var canSubmit: Bool { - !isWorking && (activeDraft?.state.canAdvance == true || isFormEditable) - } - - func configure(snapshot: RadrootsRuntimeSnapshot) { - blossomConfiguration = snapshot.blossomConfiguration - blossomEvidence = snapshot.blossomEvidence - } - - func start() async { - guard !isStarted else { return } - isStarted = true - startObservation() - guard operationGeneration == nil else { return } - message = nil - state = .loading - generation &+= 1 - let requestedGeneration = generation - do { - async let schemaResult = runtimeClient.addSchemas() - async let draftResult = runtimeClient.draftHeads(limit: 100) - async let supportResult = loadMediaSupport() - let (loadedSchemas, loadedDrafts, loadedSupport) = try await ( - schemaResult, - draftResult, - supportResult - ) - guard requestedGeneration == generation else { return } - schemas = loadedSchemas - drafts = Self.sorted(loadedDrafts) - mediaSupport = loadedSupport - state = .ready - } catch { - guard requestedGeneration == generation else { return } - state = .failed(Self.message(for: error)) - } - } - - func stop() { - generation &+= 1 - isStarted = false - observationGeneration &+= 1 - observationTask?.cancel() - observationTask = nil - observationState = .stopped - isWorking = false - } - - func suspend() { - isStarted = false - observationGeneration &+= 1 - observationTask?.cancel() - observationTask = nil - observationState = .stopped - } - - func selectType(_ type: RadrootsAddCommandType) { - guard !isWorking, isFormEditable, form.commandType != type else { return } - activeDraft = nil - form = .empty(type) - message = nil - } - - func updateForm<Value>(_ keyPath: WritableKeyPath<RadrootsAddForm, Value>, _ value: Value) { - guard isFormEditable else { return } - form[keyPath: keyPath] = value - } - - func newDraft(type: RadrootsAddCommandType? = nil) { - guard !isWorking else { return } - generation &+= 1 - activeDraft = nil - form = .empty(type ?? form.commandType) - message = nil - } - - func reopen(_ draft: RadrootsDraftStatus) { - guard !isWorking else { return } - guard let snapshot = draft.form else { - message = "This operation has no editable Add form." - return - } - generation &+= 1 - activeDraft = draft - form = snapshot - message = draft.state.isEditable ? "Draft reopened." : draft.honestSummary - } - - func importPhotos() async { - guard isFormEditable, form.commandType.acceptsMedia, let media else { - message = "Photo intake is unavailable." - return - } - await perform { - let remaining = max(1, 20 - self.form.media.count) - let imported = try await media.importImages(limit: remaining) - self.form.media.append(contentsOf: imported) - self.message = "Photo prepared. Add descriptive text before publishing." - } - } - - func checkPhotoService() async { - guard !isCheckingBlossom else { return } - guard blossomConfiguration != nil else { - mediaSupport = .unavailable - message = "No photo service is configured for the current network profile." - return - } - isCheckingBlossom = true - defer { isCheckingBlossom = false } - do { - blossomEvidence = try await runtimeClient.probeBlossom() - mediaSupport = try await loadMediaSupport() - message = "Photo service is reachable." - } catch { - await refreshBlossomSnapshot() - mediaSupport = .unavailable - message = Self.message(for: error) - } - } - - func capturePhoto() async { - guard isFormEditable, form.commandType.acceptsMedia, let media else { - message = "Camera intake is unavailable." - return - } - await perform { - try await self.form.media.append(media.captureImage()) - self.message = "Photo prepared. Add descriptive text before publishing." - } - } - - func removeMedia(id: String) { - guard isFormEditable else { return } - form.media.removeAll(where: { $0.id == id }) - } - - func updateMediaAlt(id: String, alt: String) { - guard isFormEditable, - let index = form.media.firstIndex(where: { $0.id == id }) - else { return } - form.media[index].alt = alt - } - - func save() async { - await perform { - _ = try await self.saveCurrentForm() - self.message = "Draft saved on this device." - } - } - - func submit() async { - await perform { - var status: RadrootsDraftStatus = - if let active = self.activeDraft, !active.state.isEditable { - active - } else { - try await self.saveCurrentForm() - } - - if !status.media.isEmpty, - status.media.contains(where: { $0.stage != .verified }) - { - status = try await self.uploadPendingMedia(status) - } - - if status.state.isEditable || status.state == .readyToSign { - do { - status = try await self.runtimeClient.queueAddIntent( - id: status.id, - expectedRevision: status.revision - ) - self.accept(status) - } catch { - if Self.failure(for: error)?.code == "writable_relay_unavailable" { - self.accept(status) - self.message = - status.media.isEmpty - ? "Draft saved. Configure a writable relay to publish." - : "Photo verified and draft saved. Configure a writable relay to publish." - return - } - throw error - } - } - - do { - if status.state.canAdvance { - status = try await self.runtimeClient.advanceDraft( - id: status.id, - expectedRevision: status.revision - ) - self.accept(status) - } - self.message = status.honestSummary - } catch { - // Queueing is the commit point. A later retry must reuse this immutable snapshot. - self.message = "Saved for retry. \(Self.message(for: error))" - } - } - } - - func retry(_ draft: RadrootsDraftStatus? = nil) async { - guard let draft = draft ?? activeDraft else { return } - await perform { - var current = try await self.runtimeClient.draftStatus(id: draft.id) - if current.state == .draft || current.state == .mediaPreparing - || current.state == .readyToSign - { - self.activeDraft = current - if let form = current.form { - self.form = form - } - self.message = "Review the draft before submitting again." - return - } - if current.state.canAdvance { - current = try await self.runtimeClient.advanceDraft( - id: current.id, - expectedRevision: current.revision - ) - } - self.accept(current) - self.message = current.honestSummary - } - } - - func cancel(_ draft: RadrootsDraftStatus? = nil) async { - guard let draft = draft ?? activeDraft, draft.state.canCancel else { return } - await perform { - let current = try await self.runtimeClient.draftStatus(id: draft.id) - let cancelled = try await self.runtimeClient.cancelAddIntent( - id: current.id, - expectedRevision: current.revision - ) - self.accept(cancelled) - self.message = "Local work was cancelled. Any already-published relay effect is preserved." + @Published private(set) var schemas: [RadrootsAddSchema] = [] + @Published private(set) var drafts: [RadrootsDraftStatus] = [] + @Published private(set) var activeDraft: RadrootsDraftStatus? + @Published private(set) var form: RadrootsAddForm + @Published private(set) var state: RadrootsAddLoadState = .idle + @Published private(set) var mediaSupport: RadrootsAddMediaSupport = .unavailable + @Published private(set) var blossomConfiguration: RadrootsBlossomConfigurationStatus? + @Published private(set) var blossomEvidence: RadrootsBlossomEvidence? + @Published private(set) var isCheckingBlossom = false + @Published private(set) var isWorking = false + @Published private(set) var message: String? + @Published private(set) var lastFailureCode: String? + @Published private(set) var observationState: RadrootsRuntimeObservationState = .inactive + + private let runtimeClient: RadrootsRuntimeClient + private let media: (any RadrootsAddMediaHandling)? + private let observationDelay: @Sendable (UInt32) async throws -> Void + private var generation: UInt64 = 0 + private var operationGeneration: UInt64? + private var operationTask: Task<Void, Never>? + private var observationTask: Task<Void, Never>? + private var isStarted = false + private var observationGeneration: UInt64 = 0 + private var revisionTarget: RadrootsRevisionTarget? + private var revisionOperationID: String? + + init( + runtimeClient: RadrootsRuntimeClient, + media: (any RadrootsAddMediaHandling)? = nil, + initialType: RadrootsAddCommandType = .createUpdate, + observationDelay: @escaping @Sendable (UInt32) async throws -> Void = + RadrootsRuntimeObservationBackoff.sleep + ) { + self.runtimeClient = runtimeClient + self.media = media + self.observationDelay = observationDelay + form = .empty(initialType) + } + + deinit { + observationTask?.cancel() + } + + var selectedSchema: RadrootsAddSchema? { + schemas.first(where: { $0.commandType == form.commandType }) + } + + var isFormEditable: Bool { + guard activeDraft?.isRevision != true else { return false } + return activeDraft?.state.isEditable ?? true + } + + var canSave: Bool { + isFormEditable && !isWorking + } + + var canSubmit: Bool { + !isWorking + && (activeDraft?.isRevision == true || activeDraft?.state.canAdvance == true + || isFormEditable) + } + + var acceptsMedia: Bool { + mediaLimit > 0 + } + + var canAddMedia: Bool { + isFormEditable && acceptsMedia && form.media.count < mediaLimit + } + + private var mediaLimit: Int { + guard + let maximum = selectedSchema?.fields + .first(where: { $0.kind == .media })?.maxItems + else { return 0 } + return Int(maximum) + } + + func configure(snapshot: RadrootsRuntimeSnapshot) { + blossomConfiguration = snapshot.blossomConfiguration + blossomEvidence = snapshot.blossomEvidence + } + + func start() async { + guard !isStarted else { return } + isStarted = true + startObservation() + guard operationGeneration == nil else { return } + message = nil + state = .loading + generation &+= 1 + let requestedGeneration = generation + do { + async let schemaResult = runtimeClient.addSchemas() + async let draftResult = runtimeClient.draftHeads(limit: 100) + async let supportResult = loadMediaSupport() + let (loadedSchemas, loadedDrafts, loadedSupport) = try await ( + schemaResult, + draftResult, + supportResult + ) + guard requestedGeneration == generation else { return } + schemas = loadedSchemas + drafts = Self.sorted(loadedDrafts) + mediaSupport = loadedSupport + state = .ready + } catch { + guard requestedGeneration == generation else { return } + state = .failed(Self.message(for: error)) + } + } + + func stop() { + generation &+= 1 + operationGeneration = nil + operationTask?.cancel() + operationTask = nil + isStarted = false + observationGeneration &+= 1 + observationTask?.cancel() + observationTask = nil + observationState = .stopped + isWorking = false + } + + func suspend() { + isStarted = false + observationGeneration &+= 1 + observationTask?.cancel() + observationTask = nil + observationState = .stopped + } + + func selectType(_ type: RadrootsAddCommandType) { + guard !isWorking, isFormEditable, form.commandType != type else { return } + activeDraft = nil + revisionTarget = nil + revisionOperationID = nil + form = .empty(type) + message = nil + } + + func updateForm<Value>(_ keyPath: WritableKeyPath<RadrootsAddForm, Value>, _ value: Value) { + guard isFormEditable else { return } + form[keyPath: keyPath] = value + } + + func newDraft(type: RadrootsAddCommandType? = nil) { + guard !isWorking else { return } + generation &+= 1 + activeDraft = nil + revisionTarget = nil + revisionOperationID = nil + form = .empty(type ?? form.commandType) + message = nil + } + + func reopen(_ draft: RadrootsDraftStatus) { + guard !isWorking else { return } + guard let snapshot = draft.form else { + message = "This operation has no editable Add form." + return + } + generation &+= 1 + activeDraft = draft + revisionTarget = nil + revisionOperationID = draft.isRevision ? draft.id : nil + form = snapshot + message = draft.state.isEditable ? "Draft reopened." : draft.honestSummary + } + + func importPhotos() async { + guard canAddMedia, let media else { + message = "Photo intake is unavailable." + return + } + await perform { + let remaining = self.mediaLimit - self.form.media.count + guard remaining > 0 else { return } + let imported = try await media.importImages(limit: remaining) + try Task.checkCancellation() + self.form.media.append(contentsOf: imported.prefix(remaining)) + self.message = "Photo prepared. Add descriptive text before publishing." + } + } + + func checkPhotoService() async { + guard !isCheckingBlossom else { return } + guard blossomConfiguration != nil else { + mediaSupport = .unavailable + message = "No photo service is configured for the current network profile." + return + } + isCheckingBlossom = true + defer { isCheckingBlossom = false } + do { + blossomEvidence = try await runtimeClient.probeBlossom() + mediaSupport = try await loadMediaSupport() + message = "Photo service is reachable." + } catch { + await refreshBlossomSnapshot() + mediaSupport = .unavailable + message = Self.message(for: error) + } + } + + func capturePhoto() async { + guard canAddMedia, let media else { + message = "Camera intake is unavailable." + return + } + await perform { + let captured = try await media.captureImage() + try Task.checkCancellation() + guard self.form.media.count < self.mediaLimit else { return } + self.form.media.append(captured) + self.message = "Photo prepared. Add descriptive text before publishing." + } + } + + func removeMedia(id: String) { + guard isFormEditable else { return } + form.media.removeAll(where: { $0.id == id }) + } + + func updateMediaAlt(id: String, alt: String) { + guard isFormEditable, + let index = form.media.firstIndex(where: { $0.id == id }) + else { return } + form.media[index].alt = alt + } + + func save() async { + await perform { + _ = try await self.saveCurrentForm() + self.message = "Draft saved on this device." + } + } + + func submit() async { + await perform { + var status: RadrootsDraftStatus = + if let active = self.activeDraft, !active.state.isEditable { + active + } else { + try await self.saveCurrentForm() } - } - func retractAndRevise(_ card: RadrootsTodayCard) async { - await perform { - let retractionID = Self.draftID() - var retraction = try await self.runtimeClient.saveRetractionDraft( - id: retractionID, - input: Self.retractionInput(card), - authoredAtUnixSeconds: self.now(), - persistedAtUnixMilliseconds: self.nowMilliseconds() - ) - retraction = try await self.runtimeClient.queueAddIntent( - id: retraction.id, - expectedRevision: retraction.revision - ) - self.accept(retraction) - do { - retraction = try await self.runtimeClient.advanceDraft( - id: retraction.id, - expectedRevision: retraction.revision - ) - self.accept(retraction) - } catch { - self.message = "The retraction is saved for retry. The revised copy remains separate." - } - self.activeDraft = nil - self.form = Self.revisedForm(card) - self.message = - "Retraction: \(retraction.honestSummary). Review the separate revised copy before publishing." - } - } + if !status.media.isEmpty, + status.media.contains(where: { $0.stage != .verified }) + { + status = try await self.uploadPendingMedia(status) + } - private func saveCurrentForm() async throws -> RadrootsDraftStatus { - guard isFormEditable else { - throw RadrootsRuntimeFailure.local( - operation: "add.save", - code: "ios.add.form_frozen", - safeMessage: "Submitted drafts cannot be changed. Create a revised copy instead." - ) - } - let opened = try await openedMedia() - defer { opened.close() } - let status = try await runtimeClient.saveAddIntent( - input: RadrootsAddRuntimeInput(form: form, media: opened.handles), - existingDraftID: activeDraft?.id, - expectedRevision: activeDraft?.revision + if status.isRevision { + let revision = try await self.runtimeClient.advanceRevision( + operationID: self.revisionOperationID ?? status.id ) - accept(status) - return status - } - - private func uploadPendingMedia(_ initial: RadrootsDraftStatus) async throws - -> RadrootsDraftStatus - { - var status = initial - guard let form = status.form else { return status } - let opened = try await openedMedia(form.media) - defer { opened.close() } - for mediaStatus in status.media where mediaStatus.stage != .verified { - guard let persisted = form.media.first(where: { $0.remoteURL == mediaStatus.url }), - let handle = opened.handles.first(where: { - $0.media.opaqueReference == persisted.opaqueReference - }) - else { - throw RadrootsRuntimeFailure.local( - operation: "add.media.upload", - code: "ios.add.media_missing", - safeMessage: "A prepared photo is unavailable." - ) - } - status = try await runtimeClient.uploadAddMediaIntent( - input: RadrootsBlossomUploadIntent( - draftID: status.id, - expectedRevision: status.revision, - media: handle - ) - ) - accept(status) - await refreshBlossomSnapshot() - } - return status - } - - private func openedMedia(_ values: [RadrootsPreparedMedia]? = nil) async throws - -> RadrootsOpenedMedia - { - let values = values ?? form.media - guard !values.isEmpty else { return RadrootsOpenedMedia(handles: [], files: []) } - guard let media else { - throw RadrootsRuntimeFailure.local( - operation: "add.media.open", - code: "ios.add.media_unavailable", - safeMessage: "Prepared photos are unavailable on this device." - ) - } - return try await media.open(values) - } + try Task.checkCancellation() + self.accept(revision) + self.message = revision.honestSummary + return + } - private func reloadDrafts() async { + if status.state.isEditable || status.state == .readyToSign { do { - let loaded = try await runtimeClient.draftHeads(limit: 100) - drafts = Self.sorted(loaded) - if let activeDraft, - let current = loaded.first(where: { $0.id == activeDraft.id }) - { - self.activeDraft = current - } + status = try await self.runtimeClient.queueAddIntent( + id: status.id, + expectedRevision: status.revision + ) + self.accept(status) } catch { - message = Self.message(for: error) - } - } - - private func loadMediaSupport() async throws -> RadrootsAddMediaSupport { - guard blossomConfiguration != nil, let media else { return .unavailable } - return try await media.support() - } - - private func refreshBlossomSnapshot() async { - guard let snapshot = try? await runtimeClient.snapshot() else { return } - blossomConfiguration = snapshot.blossomConfiguration - blossomEvidence = snapshot.blossomEvidence - } - - private func startObservation() { - observationGeneration &+= 1 - let requestedGeneration = observationGeneration - observationTask = Task { [weak self] in - await self?.observe(generation: requestedGeneration) - } - } - - private func observe(generation: UInt64) async { - var attempt: UInt32 = 0 - while isStarted, observationGeneration == generation, !Task.isCancelled { - observationState = .subscribing(attempt: attempt &+ 1) - var failureMessage = "Runtime observation ended unexpectedly." - do { - let changes = try await runtimeClient.changes(bufferCapacity: 16) - observationState = .active - for await change in changes { - guard !Task.isCancelled else { break } - attempt = 0 - if change.kind == .drafts || change.kind == .media { - await reloadDrafts() - } - if change.kind == .media || change.kind == .settings { - await refreshBlossomSnapshot() - } - } - } catch { - failureMessage = - (error as? LocalizedError)?.errorDescription - ?? "Runtime observation is temporarily unavailable." - } - guard isStarted, observationGeneration == generation, !Task.isCancelled else { break } - attempt = attempt == .max ? .max : attempt + 1 - observationState = .retrying(attempt: attempt, message: failureMessage) - do { - try await observationDelay(attempt) - } catch { - break - } - } - guard observationGeneration == generation else { return } - observationTask = nil - isStarted = false - if case .retrying = observationState { + if Self.failure(for: error)?.code == "writable_relay_unavailable" { + self.accept(status) + self.message = + status.media.isEmpty + ? "Draft saved. Configure a writable relay to publish." + : "Photo verified and draft saved. Configure a writable relay to publish." return + } + throw error } - observationState = .stopped - } - - private func accept(_ status: RadrootsDraftStatus) { - guard operationGeneration == nil || operationGeneration == generation else { return } - activeDraft = status - if let form = status.form { - self.form = form + } + + do { + if status.state.canAdvance { + status = try await self.runtimeClient.advanceDraft( + id: status.id, + expectedRevision: status.revision + ) + self.accept(status) } - drafts.removeAll(where: { $0.id == status.id }) - drafts.append(status) - drafts = Self.sorted(drafts) - } - - private func perform(_ operation: @escaping () async throws -> Void) async { - generation &+= 1 - let requestedGeneration = generation - operationGeneration = requestedGeneration - isWorking = true - message = nil - lastFailureCode = nil - do { - try await operation() - } catch is CancellationError { - if requestedGeneration == generation { - message = "The operation was cancelled." - } - } catch { - if requestedGeneration == generation { - await refreshBlossomSnapshot() - message = Self.message(for: error) - lastFailureCode = Self.failure(for: error)?.code - } + self.message = status.honestSummary + } catch { + // Queueing is the commit point. A later retry must reuse this immutable snapshot. + self.message = "Saved for retry. \(Self.message(for: error))" + } + } + } + + func retry(_ draft: RadrootsDraftStatus? = nil) async { + guard let draft = draft ?? activeDraft else { return } + await perform { + var current = try await self.runtimeClient.draftStatus(id: draft.id) + try Task.checkCancellation() + if current.state == .draft || current.state == .mediaPreparing + || current.state == .readyToSign + { + self.activeDraft = current + self.revisionOperationID = current.isRevision ? current.id : nil + if let form = current.form { + self.form = form } - if requestedGeneration == generation { - isWorking = false - operationGeneration = nil - } - } - - private func nowMilliseconds() -> UInt64 { - now() * 1000 - } - - private static func sorted(_ drafts: [RadrootsDraftStatus]) -> [RadrootsDraftStatus] { - drafts.sorted { - if $0.updatedAtUnixMilliseconds == $1.updatedAtUnixMilliseconds { - return $0.id < $1.id - } - return $0.updatedAtUnixMilliseconds > $1.updatedAtUnixMilliseconds - } - } - - private static func draftID() -> String { - UUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased() - } - - private static func message(for error: Error) -> String { - if let failure = failure(for: error) { - return failure.safeMessage - } - return (error as? LocalizedError)?.errorDescription - ?? "The Add operation could not be completed." - } - - private static func failure(for error: Error) -> RadrootsRuntimeFailure? { - if case let RadrootsRuntimeClientError.add(failure) = error { - return failure - } - return error as? RadrootsRuntimeFailure - } - - private static func retractionInput(_ card: RadrootsTodayCard) -> RadrootsRetractionDraftInput { - let command = commandType(for: card.type) - let kind: UInt32 = - switch card.type { - case .update, .photoUpdate, .ask: 1 - case .event: card.contractID == "radroots.calendar.date_event.v1" ? 31922 : 31923 - case .foodAvailability: 30402 - } - return RadrootsRetractionDraftInput( - commandType: command, - targetCardID: card.id, - targetEventID: card.sourceEventID, - targetKind: kind, - targetAddress: card.sourceAddress, - reason: "Replaced with a revised copy" + self.message = "Review the draft before submitting again." + return + } + if current.isRevision { + let revision = try await self.runtimeClient.advanceRevision( + operationID: current.id ) - } - - private static func revisedForm(_ card: RadrootsTodayCard) -> RadrootsAddForm { - let command = commandType(for: card.type) - var form = RadrootsAddForm.empty(command) - form.content = card.content - form.title = card.title - form.location = card.location - form.priceAmount = card.priceAmount - form.currency = card.priceCurrency - form.unit = card.priceUnit - form.quantity = card.quantity - if let address = card.sourceAddress?.split(separator: ":").last { - form.identifier = String(address) - } - if command == .createEvent { - form.eventTiming = card.contractID == "radroots.calendar.date_event.v1" ? .allDay : .timed - if form.eventTiming == .timed { - form.eventStartUnixSeconds = card.eventStartUnixSeconds - form.eventEndUnixSeconds = card.eventEndUnixSeconds - form.eventTimezone = TimeZone.current.identifier - } else if let start = card.eventStartUnixSeconds { - form.eventStartDate = dateString(start) - form.eventEndDate = card.eventEndUnixSeconds.map(dateString) - } - } else if command == .createFoodAvailability { - form.summary = card.foodSummary ?? card.content - form.foodPublishedAtUnixSeconds = - card.foodPublishedAtUnixSeconds ?? card.effectiveAtUnixSeconds - form.foodStatus = card.foodStatus ?? card.lifecycle.rawValue + try Task.checkCancellation() + self.accept(revision) + self.message = revision.honestSummary + return + } + if current.state.canAdvance { + current = try await self.runtimeClient.advanceDraft( + id: current.id, + expectedRevision: current.revision + ) + } + self.accept(current) + self.message = current.honestSummary + } + } + + func cancel(_ draft: RadrootsDraftStatus? = nil) async { + guard let draft = draft ?? activeDraft, draft.state.canCancel else { return } + await perform { + let current = try await self.runtimeClient.draftStatus(id: draft.id) + try Task.checkCancellation() + if current.isRevision { + let cancelled = try await self.runtimeClient.cancelRevision( + operationID: current.id + ) + try Task.checkCancellation() + self.accept(cancelled) + self.message = cancelled.honestSummary + return + } + let cancelled = try await self.runtimeClient.cancelAddIntent( + id: current.id, + expectedRevision: current.revision + ) + self.accept(cancelled) + self.message = "Local work was cancelled. Any already-published relay effect is preserved." + } + } + + func retractAndRevise(_ card: RadrootsTodayCard) async { + await perform { + guard let operationID = card.localOperationID else { + throw RadrootsRuntimeFailure.local( + operation: "add.revise", + code: "ios.add.revision_source_unavailable", + safeMessage: "This post cannot be revised losslessly on this device." + ) + } + let source = try await self.runtimeClient.draftStatus(id: operationID) + try Task.checkCancellation() + guard let sourceForm = source.form else { + throw RadrootsRuntimeFailure.local( + operation: "add.revise", + code: "ios.add.revision_form_unavailable", + safeMessage: "The original Add form is unavailable on this device." + ) + } + self.revisionTarget = RadrootsRevisionTarget( + cardID: card.id, + sourceEventID: card.sourceEventID, + sourceAddress: card.sourceAddress, + authorPublicKey: card.authorPublicKey + ) + self.revisionOperationID = nil + self.activeDraft = nil + self.form = sourceForm + self.message = "Review the lossless revised copy before publishing." + } + } + + private func saveCurrentForm() async throws -> RadrootsDraftStatus { + guard isFormEditable else { + throw RadrootsRuntimeFailure.local( + operation: "add.save", + code: "ios.add.form_frozen", + safeMessage: "Submitted drafts cannot be changed. Create a revised copy instead." + ) + } + let opened = try await openedMedia() + defer { opened.close() } + let input = RadrootsAddRuntimeInput(form: form, media: opened.handles) + if let target = revisionTarget { + let revision = try await runtimeClient.saveRevisionIntent( + target: target, + replacement: input + ) + try Task.checkCancellation() + revisionOperationID = revision.operationID + self.revisionTarget = nil + accept(revision) + return revision.replacement + } + let status = try await runtimeClient.saveAddIntent( + input: input, + existingDraftID: activeDraft?.isRevision == true ? nil : activeDraft?.id, + expectedRevision: activeDraft?.isRevision == true ? nil : activeDraft?.revision + ) + try Task.checkCancellation() + accept(status) + return status + } + + private func uploadPendingMedia(_ initial: RadrootsDraftStatus) async throws + -> RadrootsDraftStatus + { + guard let media else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.upload", + code: "ios.add.media_unavailable", + safeMessage: "Prepared photos are unavailable on this device." + ) + } + var status = initial + guard let form = status.form else { return status } + let opened = try await openedMedia(form.media) + defer { opened.close() } + for mediaStatus in status.media where mediaStatus.stage != .verified { + guard let persisted = form.media.first(where: { $0.remoteURL == mediaStatus.url }), + let handle = opened.handles.first(where: { + $0.media.opaqueReference == persisted.opaqueReference + }) + else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.upload", + code: "ios.add.media_missing", + safeMessage: "A prepared photo is unavailable." + ) + } + let intent = RadrootsBlossomUploadIntent( + draftID: status.id, + expectedRevision: status.revision, + media: handle + ) + let job = try await runtimeClient.prepareAddMediaBackground(input: intent) + try Task.checkCancellation() + accept(job.draft) + let receipt = try await media.uploadInBackground(job: job, media: persisted) + try Task.checkCancellation() + do { + status = try await runtimeClient.completeAddMediaBackground( + input: RadrootsNativeUploadCompletion( + draftID: job.draft.id, + expectedRevision: job.draft.revision, + media: handle, + statusCode: receipt.statusCode, + responseMediaType: receipt.mediaType, + responseContentEncoding: receipt.contentEncoding, + responseBody: receipt.body + ) + ) + } catch { + try? await media.settleBackgroundUpload(identifier: receipt.identifier, accepted: false) + throw error + } + try await media.settleBackgroundUpload(identifier: receipt.identifier, accepted: true) + try Task.checkCancellation() + accept(status) + await refreshBlossomSnapshot() + } + return status + } + + private func openedMedia(_ values: [RadrootsPreparedMedia]? = nil) async throws + -> RadrootsOpenedMedia + { + let values = values ?? form.media + guard !values.isEmpty else { return RadrootsOpenedMedia(handles: [], files: []) } + guard let media else { + throw RadrootsRuntimeFailure.local( + operation: "add.media.open", + code: "ios.add.media_unavailable", + safeMessage: "Prepared photos are unavailable on this device." + ) + } + return try await media.open(values) + } + + private func reloadDrafts() async { + do { + let loaded = try await runtimeClient.draftHeads(limit: 100) + drafts = Self.sorted(loaded) + if let activeDraft, + let current = loaded.first(where: { $0.id == activeDraft.id }) + { + self.activeDraft = current + } + } catch { + message = Self.message(for: error) + } + } + + private func loadMediaSupport() async throws -> RadrootsAddMediaSupport { + guard blossomConfiguration != nil, let media else { return .unavailable } + return try await media.support() + } + + private func refreshBlossomSnapshot() async { + guard let snapshot = try? await runtimeClient.snapshot() else { return } + blossomConfiguration = snapshot.blossomConfiguration + blossomEvidence = snapshot.blossomEvidence + } + + private func startObservation() { + observationGeneration &+= 1 + let requestedGeneration = observationGeneration + observationTask = Task { [weak self] in + await self?.observe(generation: requestedGeneration) + } + } + + private func observe(generation: UInt64) async { + var attempt: UInt32 = 0 + while isStarted, observationGeneration == generation, !Task.isCancelled { + observationState = .subscribing(attempt: attempt &+ 1) + var failureMessage = "Runtime observation ended unexpectedly." + do { + let changes = try await runtimeClient.changes(bufferCapacity: 16) + observationState = .active + for await change in changes { + guard !Task.isCancelled else { break } + attempt = 0 + if change.kind == .drafts || change.kind == .media { + await reloadDrafts() + } + if change.kind == .media || change.kind == .settings { + await refreshBlossomSnapshot() + } } - return form - } + } catch { + failureMessage = + (error as? LocalizedError)?.errorDescription + ?? "Runtime observation is temporarily unavailable." + } + guard isStarted, observationGeneration == generation, !Task.isCancelled else { break } + attempt = attempt == .max ? .max : attempt + 1 + observationState = .retrying(attempt: attempt, message: failureMessage) + do { + try await observationDelay(attempt) + } catch { + break + } + } + guard observationGeneration == generation else { return } + observationTask = nil + isStarted = false + if case .retrying = observationState { + return + } + observationState = .stopped + } + + private func accept(_ status: RadrootsDraftStatus) { + guard operationGeneration == generation else { return } + activeDraft = status + if let form = status.form { + self.form = form + } + drafts.removeAll(where: { $0.id == status.id }) + drafts.append(status) + drafts = Self.sorted(drafts) + } + + private func accept(_ status: RadrootsRevisionStatus) { + guard operationGeneration == generation else { return } + revisionOperationID = status.operationID + accept(status.replacement) + if let retraction = status.retraction { + drafts.removeAll(where: { $0.id == retraction.id }) + drafts.append(retraction) + drafts = Self.sorted(drafts) + } + } + + private func perform(_ operation: @escaping () async throws -> Void) async { + guard operationTask == nil else { return } + generation &+= 1 + let requestedGeneration = generation + operationGeneration = requestedGeneration + isWorking = true + message = nil + lastFailureCode = nil + let task = Task { @MainActor [weak self] in + guard let self else { return } + await self.execute(operation, generation: requestedGeneration) + } + operationTask = task + await task.value + } + + private func execute( + _ operation: @escaping () async throws -> Void, + generation requestedGeneration: UInt64 + ) async { + do { + try await operation() + } catch is CancellationError { + if requestedGeneration == generation { + message = "The operation was cancelled." + } + } catch { + if requestedGeneration == generation { + await refreshBlossomSnapshot() + message = Self.message(for: error) + lastFailureCode = Self.failure(for: error)?.code + } + } + if requestedGeneration == generation { + isWorking = false + operationGeneration = nil + operationTask = nil + } + } + + private static func sorted(_ drafts: [RadrootsDraftStatus]) -> [RadrootsDraftStatus] { + drafts.sorted { + if $0.updatedAtUnixMilliseconds == $1.updatedAtUnixMilliseconds { + return $0.id < $1.id + } + return $0.updatedAtUnixMilliseconds > $1.updatedAtUnixMilliseconds + } + } + + private static func message(for error: Error) -> String { + if let failure = failure(for: error) { + return failure.safeMessage + } + return (error as? LocalizedError)?.errorDescription + ?? "The Add operation could not be completed." + } + + private static func failure(for error: Error) -> RadrootsRuntimeFailure? { + if case RadrootsRuntimeClientError.add(let failure) = error { + return failure + } + return error as? RadrootsRuntimeFailure + } - private static func dateString(_ seconds: UInt64) -> String { - let formatter = DateFormatter() - formatter.calendar = Calendar(identifier: .gregorian) - formatter.locale = Locale(identifier: "en_US_POSIX") - formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd" - return formatter.string(from: Date(timeIntervalSince1970: TimeInterval(seconds))) - } - - private static func commandType(for card: RadrootsTodayCardType) -> RadrootsAddCommandType { - switch card { - case .update: .createUpdate - case .photoUpdate: .createPhotoUpdate - case .ask: .createAsk - case .event: .createEvent - case .foodAvailability: .createFoodAvailability - } - } } diff --git a/Radroots/Views/RadrootsAddView.swift b/Radroots/Views/RadrootsAddView.swift @@ -1,401 +1,405 @@ import SwiftUI struct RadrootsAddView: View { - @ObservedObject var store: RadrootsAddStore - @State private var showsDrafts = false - @FocusState private var isContentEditorFocused: Bool - - var body: some View { - Form { - if let message = store.message { - Section { - Label(message, systemImage: statusSymbol) - .foregroundStyle(.secondary) - .accessibilityIdentifier("radroots.add.status") - } - } - - Section("What are you sharing?") { - Picker("Type", selection: typeBinding) { - ForEach(availableTypes) { type in - Text(type.label).tag(type) - } - } - .pickerStyle(.navigationLink) - .disabled(!store.isFormEditable) - .accessibilityIdentifier("radroots.add.type") - } - - composerFields - - if store.form.commandType.acceptsMedia { - mediaSection - } - - Section { - Button("Save draft") { Task { await store.save() } } - .disabled(!store.canSave) - .accessibilityIdentifier("radroots.add.save") - - if let active = store.activeDraft, active.state.canCancel { - Button("Cancel local work", role: .destructive) { - Task { await store.cancel(active) } - } - .disabled(store.isWorking) - .accessibilityIdentifier("radroots.add.cancel") - } - } footer: { - Text("Submit saves an immutable local snapshot first. If signing, media, or a relay is unavailable, the saved operation remains available to retry.") - } + @ObservedObject var store: RadrootsAddStore + @State private var showsDrafts = false + @FocusState private var isContentEditorFocused: Bool + + var body: some View { + Form { + if let message = store.message { + Section { + Label(message, systemImage: statusSymbol) + .foregroundStyle(.secondary) + .accessibilityIdentifier("radroots.add.status") } - .accessibilityIdentifier("radroots.add.root") - .safeAreaInset(edge: .bottom, spacing: 0) { - Button(submitLabel) { Task { await store.submit() } } - .accessibilityIdentifier("radroots.add.submit") - .accessibilityValue(submitAccessibilityValue) - .buttonStyle(.borderedProminent) - .frame(maxWidth: .infinity) - .padding(.horizontal) - .padding(.vertical, 8) - .padding(.bottom, 72) - .background(.bar) - .disabled(!store.canSubmit) - } - .disabled(store.isWorking) - .overlay { - if store.isWorking { - ProgressView("Saving…") - .padding() - .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 12)) - .accessibilityIdentifier("radroots.add.progress") - } - } - .navigationTitle("Add") - .toolbar { - ToolbarItem(placement: .topBarLeading) { - Button("Drafts") { showsDrafts = true } - .accessibilityIdentifier("radroots.add.drafts") - } - ToolbarItem(placement: .topBarTrailing) { - Button { - store.newDraft() - } label: { - Label("New", systemImage: "square.and.pencil") - } - .accessibilityIdentifier("radroots.add.new") - } - ToolbarItemGroup(placement: .keyboard) { - Spacer() - Button("Done") { isContentEditorFocused = false } - .accessibilityIdentifier("radroots.add.keyboard.done") - } - } - .sheet(isPresented: $showsDrafts) { - RadrootsDraftsSheet(store: store) - } - .task { await store.start() } - } + } - @ViewBuilder - private var composerFields: some View { - switch store.form.commandType { - case .createUpdate: - Section("Update") { contentEditor(prompt: "What’s happening locally?") } - case .createPhotoUpdate: - Section("Photo update") { contentEditor(prompt: "What should neighbors know?") } - case .createAsk: - Section("Ask") { contentEditor(prompt: "What do you need or want to know?") } - case .createEvent: - eventFields - case .createFoodAvailability: - foodFields + Section("What are you sharing?") { + Picker("Type", selection: typeBinding) { + ForEach(availableTypes) { type in + Text(type.label).tag(type) + } } - } - - private var eventFields: some View { - Section("Event") { - TextField("Title", text: optional(\.title)) - .accessibilityIdentifier("radroots.add.title") - contentEditor(prompt: "Event details (optional)") - TextField("Location (optional)", text: optional(\.location)) - .accessibilityIdentifier("radroots.add.location") - Picker("When", selection: optionalTiming) { - ForEach(RadrootsEventTiming.allCases) { timing in - Text(timing.label).tag(Optional(timing)) - } - } - .accessibilityIdentifier("radroots.add.event_timing") - if store.form.eventTiming == .allDay { - DatePicker("Starts", selection: allDayStart, displayedComponents: .date) - DatePicker("Ends", selection: allDayEnd, displayedComponents: .date) - } else { - DatePicker("Starts", selection: timedStart) - DatePicker("Ends", selection: timedEnd) - } + .pickerStyle(.navigationLink) + .disabled(!store.isFormEditable) + .accessibilityIdentifier("radroots.add.type") + } + + composerFields + + if store.acceptsMedia { + mediaSection + } + + Section { + Button("Save draft") { Task { await store.save() } } + .disabled(!store.canSave) + .accessibilityIdentifier("radroots.add.save") + + if let active = store.activeDraft, active.state.canCancel { + Button("Cancel local work", role: .destructive) { + Task { await store.cancel(active) } + } + .disabled(store.isWorking) + .accessibilityIdentifier("radroots.add.cancel") } + } footer: { + Text( + "Submit saves an immutable local snapshot first. If signing, media, or a relay is unavailable, the saved operation remains available to retry." + ) + } } - - @ViewBuilder - private var foodFields: some View { - Section("Food availability") { - TextField("Food", text: optional(\.title)) - .accessibilityIdentifier("radroots.add.title") - TextField("Short summary (optional)", text: optional(\.summary)) - contentEditor(prompt: "Details (optional)") - TextField("Location", text: optional(\.location)) - .accessibilityIdentifier("radroots.add.location") - } - Section("Price and quantity") { - TextField("Price", text: optional(\.priceAmount)) - .keyboardType(.decimalPad) - .accessibilityIdentifier("radroots.add.price") - TextField("Currency", text: optional(\.currency)) - .textInputAutocapitalization(.characters) - TextField("Unit", text: optional(\.unit)) - TextField("Quantity available (optional)", text: optional(\.quantity)) - .keyboardType(.decimalPad) - } + .accessibilityIdentifier("radroots.add.root") + .safeAreaInset(edge: .bottom, spacing: 0) { + Button(submitLabel) { Task { await store.submit() } } + .accessibilityIdentifier("radroots.add.submit") + .accessibilityValue(submitAccessibilityValue) + .buttonStyle(.borderedProminent) + .frame(maxWidth: .infinity) + .padding(.horizontal) + .padding(.vertical, 8) + .padding(.bottom, 72) + .background(.bar) + .disabled(!store.canSubmit) } - - private var mediaSection: some View { - Section("Photos") { - ForEach(store.form.media) { media in - VStack(alignment: .leading, spacing: 8) { - Label("Prepared image", systemImage: "checkmark.shield") - .font(.subheadline.weight(.semibold)) - Text("\(media.width) × \(media.height) · \(ByteCountFormatter.string(fromByteCount: Int64(media.byteSize), countStyle: .file))") - .font(.caption) - .foregroundStyle(.secondary) - TextField( - "Describe this photo", - text: Binding( - get: { media.alt }, - set: { store.updateMediaAlt(id: media.id, alt: $0) } - ) - ) - .accessibilityIdentifier("radroots.add.media.alt.\(media.id)") - Button("Remove photo", role: .destructive) { store.removeMedia(id: media.id) } - } - .accessibilityElement(children: .contain) - .accessibilityIdentifier("radroots.add.media.\(media.sha256)") - .accessibilityValue( - "sha256 \(media.sha256), \(media.byteSize) bytes, \(media.width) by \(media.height)" - ) - } - - HStack { - Button { - Task { await store.importPhotos() } - } label: { - Label("Photo Library", systemImage: "photo.on.rectangle") - } - .disabled(!store.mediaSupport.library || !store.isFormEditable) - .accessibilityIdentifier("radroots.add.media.library") - - Spacer() - - Button { - Task { await store.capturePhoto() } - } label: { - Label("Camera", systemImage: "camera") - } - .disabled(!store.mediaSupport.camera || !store.isFormEditable) - .accessibilityIdentifier("radroots.add.media.camera") - } - } + .disabled(store.isWorking) + .overlay { + if store.isWorking { + ProgressView("Saving…") + .padding() + .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 12)) + .accessibilityIdentifier("radroots.add.progress") + } } - - private func contentEditor(prompt: String) -> some View { - ZStack(alignment: .topLeading) { - TextEditor(text: required(\.content)) - .frame(minHeight: 110) - .focused($isContentEditorFocused) - .accessibilityIdentifier("radroots.add.content") - if store.form.content.isEmpty { - Text(prompt) - .foregroundStyle(.tertiary) - .padding(.horizontal, 5) - .padding(.vertical, 8) - .allowsHitTesting(false) - } + .navigationTitle("Add") + .toolbar { + ToolbarItem(placement: .topBarLeading) { + Button("Drafts") { showsDrafts = true } + .accessibilityIdentifier("radroots.add.drafts") + } + ToolbarItem(placement: .topBarTrailing) { + Button { + store.newDraft() + } label: { + Label("New", systemImage: "square.and.pencil") } + .accessibilityIdentifier("radroots.add.new") + } + ToolbarItemGroup(placement: .keyboard) { + Spacer() + Button("Done") { isContentEditorFocused = false } + .accessibilityIdentifier("radroots.add.keyboard.done") + } } - - private var availableTypes: [RadrootsAddCommandType] { - let types = store.schemas.map(\.commandType) - return types.isEmpty ? RadrootsAddCommandType.allCases : types + .sheet(isPresented: $showsDrafts) { + RadrootsDraftsSheet(store: store) } - - private var submitAccessibilityValue: String { - if store.isWorking { - return "Working" - } - if let message = store.message { - if let code = store.lastFailureCode { - return "\(message) Error code \(code)" - } - return message - } - if let activeDraft = store.activeDraft { - return activeDraft.honestSummary + .task { await store.start() } + } + + @ViewBuilder + private var composerFields: some View { + switch store.form.commandType { + case .createUpdate: + Section("Update") { contentEditor(prompt: "What’s happening locally?") } + case .createPhotoUpdate: + Section("Photo update") { contentEditor(prompt: "What should neighbors know?") } + case .createAsk: + Section("Ask") { contentEditor(prompt: "What do you need or want to know?") } + case .createEvent: + eventFields + case .createFoodAvailability: + foodFields + } + } + + private var eventFields: some View { + Section("Event") { + TextField("Title", text: optional(\.title)) + .accessibilityIdentifier("radroots.add.title") + contentEditor(prompt: "Event details (optional)") + TextField("Location (optional)", text: optional(\.location)) + .accessibilityIdentifier("radroots.add.location") + Picker("When", selection: optionalTiming) { + ForEach(RadrootsEventTiming.allCases) { timing in + Text(timing.label).tag(Optional(timing)) } - return store.canSubmit ? "Ready" : "Unavailable" + } + .accessibilityIdentifier("radroots.add.event_timing") + if store.form.eventTiming == .allDay { + DatePicker("Starts", selection: allDayStart, displayedComponents: .date) + DatePicker("Ends", selection: allDayEnd, displayedComponents: .date) + } else { + DatePicker("Starts", selection: timedStart) + DatePicker("Ends", selection: timedEnd) + } } - - private var typeBinding: Binding<RadrootsAddCommandType> { - Binding(get: { store.form.commandType }, set: { store.selectType($0) }) + } + + @ViewBuilder + private var foodFields: some View { + Section("Food availability") { + TextField("Food", text: optional(\.title)) + .accessibilityIdentifier("radroots.add.title") + TextField("Short summary (optional)", text: optional(\.summary)) + contentEditor(prompt: "Details (optional)") + TextField("Location", text: optional(\.location)) + .accessibilityIdentifier("radroots.add.location") } - - private var optionalTiming: Binding<RadrootsEventTiming?> { - Binding(get: { store.form.eventTiming }, set: { store.updateForm(\.eventTiming, $0) }) + Section("Price and quantity") { + TextField("Price", text: optional(\.priceAmount)) + .keyboardType(.decimalPad) + .accessibilityIdentifier("radroots.add.price") + TextField("Currency", text: optional(\.currency)) + .textInputAutocapitalization(.characters) + TextField("Unit", text: optional(\.unit)) + TextField("Quantity available (optional)", text: optional(\.quantity)) + .keyboardType(.decimalPad) } - - private func optional(_ keyPath: WritableKeyPath<RadrootsAddForm, String?>) -> Binding<String> { - Binding( - get: { store.form[keyPath: keyPath] ?? "" }, - set: { store.updateForm(keyPath, $0.isEmpty ? nil : $0) } + } + + private var mediaSection: some View { + Section("Photos") { + ForEach(store.form.media) { media in + VStack(alignment: .leading, spacing: 8) { + Label("Prepared image", systemImage: "checkmark.shield") + .font(.subheadline.weight(.semibold)) + Text( + "\(media.width) × \(media.height) · \(ByteCountFormatter.string(fromByteCount: Int64(media.byteSize), countStyle: .file))" + ) + .font(.caption) + .foregroundStyle(.secondary) + TextField( + "Describe this photo", + text: Binding( + get: { media.alt }, + set: { store.updateMediaAlt(id: media.id, alt: $0) } + ) + ) + .accessibilityIdentifier("radroots.add.media.alt.\(media.id)") + Button("Remove photo", role: .destructive) { store.removeMedia(id: media.id) } + } + .accessibilityElement(children: .contain) + .accessibilityIdentifier("radroots.add.media.\(media.sha256)") + .accessibilityValue( + "sha256 \(media.sha256), \(media.byteSize) bytes, \(media.width) by \(media.height)" ) - } + } - private func required(_ keyPath: WritableKeyPath<RadrootsAddForm, String>) -> Binding<String> { - Binding( - get: { store.form[keyPath: keyPath] }, - set: { store.updateForm(keyPath, $0) } - ) - } + HStack { + Button { + Task { await store.importPhotos() } + } label: { + Label("Photo Library", systemImage: "photo.on.rectangle") + } + .disabled(!store.mediaSupport.library || !store.canAddMedia) + .accessibilityIdentifier("radroots.add.media.library") - private var timedStart: Binding<Date> { - secondsBinding(\.eventStartUnixSeconds, defaultOffset: 3600) - } + Spacer() - private var timedEnd: Binding<Date> { - secondsBinding(\.eventEndUnixSeconds, defaultOffset: 7200) + Button { + Task { await store.capturePhoto() } + } label: { + Label("Camera", systemImage: "camera") + } + .disabled(!store.mediaSupport.camera || !store.canAddMedia) + .accessibilityIdentifier("radroots.add.media.camera") + } } - - private func secondsBinding( - _ keyPath: WritableKeyPath<RadrootsAddForm, UInt64?>, - defaultOffset: TimeInterval - ) -> Binding<Date> { - Binding( - get: { - store.form[keyPath: keyPath] - .map { Date(timeIntervalSince1970: TimeInterval($0)) } - ?? Date().addingTimeInterval(defaultOffset) - }, - set: { store.updateForm(keyPath, UInt64(max(1, $0.timeIntervalSince1970))) } - ) + } + + private func contentEditor(prompt: String) -> some View { + ZStack(alignment: .topLeading) { + TextEditor(text: required(\.content)) + .frame(minHeight: 110) + .focused($isContentEditorFocused) + .accessibilityIdentifier("radroots.add.content") + if store.form.content.isEmpty { + Text(prompt) + .foregroundStyle(.tertiary) + .padding(.horizontal, 5) + .padding(.vertical, 8) + .allowsHitTesting(false) + } } + } - private var allDayStart: Binding<Date> { - dateBinding(\.eventStartDate, defaultOffset: 86400) - } + private var availableTypes: [RadrootsAddCommandType] { + let types = store.schemas.map(\.commandType) + return types.isEmpty ? RadrootsAddCommandType.allCases : types + } - private var allDayEnd: Binding<Date> { - dateBinding(\.eventEndDate, defaultOffset: 172_800) + private var submitAccessibilityValue: String { + if store.isWorking { + return "Working" } - - private func dateBinding( - _ keyPath: WritableKeyPath<RadrootsAddForm, String?>, - defaultOffset: TimeInterval - ) -> Binding<Date> { - Binding( - get: { - store.form[keyPath: keyPath].flatMap(Self.dateFormatter.date(from:)) - ?? Calendar.current.startOfDay(for: Date().addingTimeInterval(defaultOffset)) - }, - set: { store.updateForm(keyPath, Self.dateFormatter.string(from: $0)) } - ) + if let message = store.message { + if let code = store.lastFailureCode { + return "\(message) Error code \(code)" + } + return message } - - private var submitLabel: String { - if let state = store.activeDraft?.state, state.canAdvance { - return "Retry delivery" - } - return "Submit" + if let activeDraft = store.activeDraft { + return activeDraft.honestSummary } - - private var statusSymbol: String { - switch store.activeDraft?.state { - case .complete: "checkmark.circle.fill" - case .partiallyDelivered, .retryable: "exclamationmark.arrow.triangle.2.circlepath" - case .terminal: "xmark.octagon" - case .cancelled: "slash.circle" - default: "info.circle" - } + return store.canSubmit ? "Ready" : "Unavailable" + } + + private var typeBinding: Binding<RadrootsAddCommandType> { + Binding(get: { store.form.commandType }, set: { store.selectType($0) }) + } + + private var optionalTiming: Binding<RadrootsEventTiming?> { + Binding(get: { store.form.eventTiming }, set: { store.updateForm(\.eventTiming, $0) }) + } + + private func optional(_ keyPath: WritableKeyPath<RadrootsAddForm, String?>) -> Binding<String> { + Binding( + get: { store.form[keyPath: keyPath] ?? "" }, + set: { store.updateForm(keyPath, $0.isEmpty ? nil : $0) } + ) + } + + private func required(_ keyPath: WritableKeyPath<RadrootsAddForm, String>) -> Binding<String> { + Binding( + get: { store.form[keyPath: keyPath] }, + set: { store.updateForm(keyPath, $0) } + ) + } + + private var timedStart: Binding<Date> { + secondsBinding(\.eventStartUnixSeconds, defaultOffset: 3600) + } + + private var timedEnd: Binding<Date> { + secondsBinding(\.eventEndUnixSeconds, defaultOffset: 7200) + } + + private func secondsBinding( + _ keyPath: WritableKeyPath<RadrootsAddForm, UInt64?>, + defaultOffset: TimeInterval + ) -> Binding<Date> { + Binding( + get: { + store.form[keyPath: keyPath] + .map { Date(timeIntervalSince1970: TimeInterval($0)) } + ?? Date().addingTimeInterval(defaultOffset) + }, + set: { store.updateForm(keyPath, UInt64(max(1, $0.timeIntervalSince1970))) } + ) + } + + private var allDayStart: Binding<Date> { + dateBinding(\.eventStartDate, defaultOffset: 86400) + } + + private var allDayEnd: Binding<Date> { + dateBinding(\.eventEndDate, defaultOffset: 172_800) + } + + private func dateBinding( + _ keyPath: WritableKeyPath<RadrootsAddForm, String?>, + defaultOffset: TimeInterval + ) -> Binding<Date> { + Binding( + get: { + store.form[keyPath: keyPath].flatMap(Self.dateFormatter.date(from:)) + ?? Calendar.current.startOfDay(for: Date().addingTimeInterval(defaultOffset)) + }, + set: { store.updateForm(keyPath, Self.dateFormatter.string(from: $0)) } + ) + } + + private var submitLabel: String { + if let state = store.activeDraft?.state, state.canAdvance { + return "Retry delivery" } - - private static let dateFormatter: DateFormatter = { - let formatter = DateFormatter() - formatter.calendar = Calendar(identifier: .gregorian) - formatter.locale = Locale(identifier: "en_US_POSIX") - formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd" - return formatter - }() + return "Submit" + } + + private var statusSymbol: String { + switch store.activeDraft?.state { + case .complete: "checkmark.circle.fill" + case .partiallyDelivered, .retryable: "exclamationmark.arrow.triangle.2.circlepath" + case .terminal: "xmark.octagon" + case .cancelled: "slash.circle" + default: "info.circle" + } + } + + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .gregorian) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = "yyyy-MM-dd" + return formatter + }() } struct RadrootsDraftsSheet: View { - @ObservedObject var store: RadrootsAddStore - @Environment(\.dismiss) private var dismiss - - var body: some View { - NavigationStack { - List { - if store.drafts.isEmpty { - ContentUnavailableView("No saved drafts", systemImage: "tray") - } - ForEach(store.drafts) { draft in - VStack(alignment: .leading, spacing: 8) { - HStack { - Text(draft.commandType.label).font(.headline) - Spacer() - Text(draft.state.label).font(.caption).foregroundStyle(.secondary) - } - Text(draft.honestSummary).font(.subheadline) - if !draft.media.isEmpty { - Text(mediaSummary(draft.media)) - .font(.caption) - .foregroundStyle(.secondary) - .accessibilityIdentifier( - "radroots.add.draft.media_status.\(draft.id)" - ) - } - HStack { - if draft.form != nil { - Button(draft.state.isEditable ? "Reopen" : "View") { - store.reopen(draft) - dismiss() - } - } - if draft.state.canAdvance { - Button("Retry") { Task { await store.retry(draft) } } - } - if draft.state.canCancel { - Button("Cancel", role: .destructive) { Task { await store.cancel(draft) } } - } - } - .buttonStyle(.borderless) - } - .accessibilityElement(children: .contain) - .accessibilityIdentifier("radroots.add.draft.\(draft.id)") - } + @ObservedObject var store: RadrootsAddStore + @Environment(\.dismiss) private var dismiss + + var body: some View { + NavigationStack { + List { + if store.drafts.isEmpty { + ContentUnavailableView("No saved drafts", systemImage: "tray") + } + ForEach(store.drafts) { draft in + VStack(alignment: .leading, spacing: 8) { + HStack { + Text(draft.commandType.label).font(.headline) + Spacer() + Text(draft.state.label).font(.caption).foregroundStyle(.secondary) + } + Text(draft.honestSummary).font(.subheadline) + if !draft.media.isEmpty { + Text(mediaSummary(draft.media)) + .font(.caption) + .foregroundStyle(.secondary) + .accessibilityIdentifier( + "radroots.add.draft.media_status.\(draft.id)" + ) } - .navigationTitle("Drafts & outbox") - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("Done") { dismiss() } + HStack { + if draft.form != nil { + Button(draft.state.isEditable ? "Reopen" : "View") { + store.reopen(draft) + dismiss() } + } + if draft.state.canAdvance { + Button("Retry") { Task { await store.retry(draft) } } + } + if draft.state.canCancel { + Button("Cancel", role: .destructive) { Task { await store.cancel(draft) } } + } } + .buttonStyle(.borderless) + } + .accessibilityElement(children: .contain) + .accessibilityIdentifier("radroots.add.draft.\(draft.id)") } - .accessibilityIdentifier("radroots.add.drafts.sheet") - } - - private func mediaSummary(_ values: [RadrootsDraftMediaStatus]) -> String { - let verified = values.count(where: { $0.stage == .verified }) - let orphaned = values.count(where: { $0.possibleOrphan }) - if orphaned > 0 { - return "\(verified) of \(values.count) photos verified; \(orphaned) possible orphan" + } + .navigationTitle("Drafts & outbox") + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("Done") { dismiss() } } - return "\(verified) of \(values.count) photos verified" + } + } + .accessibilityIdentifier("radroots.add.drafts.sheet") + } + + private func mediaSummary(_ values: [RadrootsDraftMediaStatus]) -> String { + let verified = values.count(where: { $0.stage == .verified }) + let orphaned = values.count(where: { $0.possibleOrphan }) + if orphaned > 0 { + return "\(verified) of \(values.count) photos verified; \(orphaned) possible orphan" } + return "\(verified) of \(values.count) photos verified" + } } diff --git a/Radroots/Views/RadrootsSupportingViews.swift b/Radroots/Views/RadrootsSupportingViews.swift @@ -2,430 +2,440 @@ import RadrootsKit import SwiftUI struct RadrootsSearchSheet: View { - let snapshot: RadrootsRuntimeSnapshot - let context: RadrootsLocalNetwork? - @ObservedObject var store: RadrootsSearchStore - let revise: (RadrootsTodayCard) -> Void - @Environment(\.dismiss) private var dismiss + let snapshot: RadrootsRuntimeSnapshot + let context: RadrootsLocalNetwork? + @ObservedObject var store: RadrootsSearchStore + let revise: (RadrootsTodayCard) -> Void + @Environment(\.dismiss) private var dismiss - var body: some View { - NavigationStack { - Group { - switch store.state { - case .idle: - ContentUnavailableView( - "Search your local network", - systemImage: "magnifyingglass", - description: Text("Find current posts and adopted Nostr profiles.") - ) - case .loading: - ProgressView("Searching…") - case .empty: - ContentUnavailableView.search(text: store.query) - case let .failed(message): - ContentUnavailableView { - Label("Search unavailable", systemImage: "exclamationmark.triangle") - } description: { - Text(message) - } actions: { - Button("Try again") { Task { await store.search() } } - } - case .loaded: - resultList - } - } - .navigationTitle("Search") - .searchable(text: query, prompt: "Posts and profiles") - .onSubmit(of: .search) { Task { await store.search() } } - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("Done") { dismiss() } - } - } + var body: some View { + NavigationStack { + Group { + switch store.state { + case .idle: + ContentUnavailableView( + "Search your local network", + systemImage: "magnifyingglass", + description: Text("Find current posts and adopted Nostr profiles.") + ) + case .loading: + ProgressView("Searching…") + case .empty: + ContentUnavailableView.search(text: store.query) + case .failed(let message): + ContentUnavailableView { + Label("Search unavailable", systemImage: "exclamationmark.triangle") + } description: { + Text(message) + } actions: { + Button("Try again") { Task { await store.search() } } + } + case .loaded: + resultList } - .task { store.configure(context: context) } - .accessibilityIdentifier("radroots.support.search.sheet") + } + .navigationTitle("Search") + .searchable(text: query, prompt: "Posts and profiles") + .onSubmit(of: .search) { Task { await store.search() } } + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("Done") { dismiss() } + } + } } + .task { store.configure(context: context) } + .accessibilityIdentifier("radroots.support.search.sheet") + } - private var resultList: some View { - List(store.results) { result in - switch (result.card, result.profile) { - case let (card?, _): - NavigationLink { - RadrootsTodayDetailView( - card: card, - canRevise: card.authorPublicKey == snapshot.identity.publicKeyHex, - revise: revise - ) - } label: { - RadrootsTodayCardView(card: card) - } - .accessibilityIdentifier("radroots.search.card.\(result.id)") - case let (_, profile?): - NavigationLink { - RadrootsProfileView(profile: profile) - } label: { - RadrootsProfileRow(profile: profile) - } - .accessibilityIdentifier("radroots.search.profile.\(result.id)") - default: - EmptyView() - } + private var resultList: some View { + List(store.results) { result in + switch (result.card, result.profile) { + case (let card?, _): + NavigationLink { + RadrootsTodayDetailView( + card: card, + canRevise: card.authorPublicKey == snapshot.identity.publicKeyHex + && card.localOperationID != nil, + revise: revise + ) + } label: { + RadrootsTodayCardView(card: card) + } + .accessibilityIdentifier("radroots.search.card.\(result.id)") + case (_, let profile?): + NavigationLink { + RadrootsProfileView(profile: profile) + } label: { + RadrootsProfileRow(profile: profile) } - .listStyle(.plain) - .accessibilityIdentifier("radroots.search.results") + .accessibilityIdentifier("radroots.search.profile.\(result.id)") + default: + EmptyView() + } } + .listStyle(.plain) + .accessibilityIdentifier("radroots.search.results") + } - private var query: Binding<String> { - Binding( - get: { store.query }, - set: { value in store.updateQuery(value) } - ) - } + private var query: Binding<String> { + Binding( + get: { store.query }, + set: { value in store.updateQuery(value) } + ) + } } struct RadrootsMeSheet: View { - let runtimeSnapshot: RadrootsRuntimeSnapshot - let context: RadrootsLocalNetwork? - @ObservedObject var store: RadrootsMeStore - @ObservedObject var todayStore: RadrootsTodayStore - @ObservedObject var addStore: RadrootsAddStore - let revise: (RadrootsTodayCard) -> Void - @Environment(\.dismiss) private var dismiss - @State private var showsDrafts = false + let runtimeSnapshot: RadrootsRuntimeSnapshot + let context: RadrootsLocalNetwork? + @ObservedObject var store: RadrootsMeStore + @ObservedObject var todayStore: RadrootsTodayStore + @ObservedObject var addStore: RadrootsAddStore + let revise: (RadrootsTodayCard) -> Void + @Environment(\.dismiss) private var dismiss + @State private var showsDrafts = false - var body: some View { - NavigationStack { - Group { - switch store.state { - case .idle, .loading: - ProgressView("Loading your profile…") - case let .failed(message) where store.snapshot == nil: - ContentUnavailableView { - Label("Profile unavailable", systemImage: "person.crop.circle.badge.exclamationmark") - } description: { - Text(message) - } actions: { - Button("Try again") { Task { await store.reload() } } - } - default: - content - } - } - .navigationTitle("Me") - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("Done") { dismiss() } - } - } + var body: some View { + NavigationStack { + Group { + switch store.state { + case .idle, .loading: + ProgressView("Loading your profile…") + case .failed(let message) where store.snapshot == nil: + ContentUnavailableView { + Label("Profile unavailable", systemImage: "person.crop.circle.badge.exclamationmark") + } description: { + Text(message) + } actions: { + Button("Try again") { Task { await store.reload() } } + } + default: + content } - .sheet(isPresented: $showsDrafts) { - RadrootsDraftsSheet(store: addStore) + } + .navigationTitle("Me") + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("Done") { dismiss() } } - .task { - store.configure(context: context) - await store.start() - } - .presentationDetents([.medium, .large]) - .accessibilityIdentifier("radroots.support.me.sheet") + } + } + .sheet(isPresented: $showsDrafts) { + RadrootsDraftsSheet(store: addStore) } + .task { + store.configure(context: context) + await store.start() + } + .presentationDetents([.medium, .large]) + .accessibilityIdentifier("radroots.support.me.sheet") + } - private var content: some View { - List { - Section { - if let profile = store.snapshot?.profile { - NavigationLink { - RadrootsProfileView(profile: profile) - } label: { - RadrootsProfileRow(profile: profile) - } - } else { - RadrootsProfileRow( - profile: RadrootsProfileSummary( - authorPublicKey: store.snapshot?.publicKey ?? runtimeSnapshot.identity.publicKeyHex, - name: nil, - displayName: nil, - about: nil, - picture: nil, - banner: nil, - nip05: nil, - website: nil, - lightningAddress: nil - ) - ) - } - } + private var content: some View { + List { + Section { + if let profile = store.snapshot?.profile { + NavigationLink { + RadrootsProfileView(profile: profile) + } label: { + RadrootsProfileRow(profile: profile) + } + } else { + RadrootsProfileRow( + profile: RadrootsProfileSummary( + authorPublicKey: store.snapshot?.publicKey ?? runtimeSnapshot.identity.publicKeyHex, + name: nil, + displayName: nil, + about: nil, + picture: nil, + banner: nil, + nip05: nil, + website: nil, + lightningAddress: nil + ) + ) + } + } - Section("Local work") { - Button { - showsDrafts = true - } label: { - LabeledContent("Drafts & outbox", value: "\(addStore.drafts.count)") - } - .foregroundStyle(.primary) - .accessibilityIdentifier("radroots.support.outbox") - } + Section("Local work") { + Button { + showsDrafts = true + } label: { + LabeledContent("Drafts & outbox", value: "\(addStore.drafts.count)") + } + .foregroundStyle(.primary) + .accessibilityIdentifier("radroots.support.outbox") + } - Section("My posts") { - if store.snapshot?.cards.isEmpty != false { - Text("No current posts in this local network.") - .foregroundStyle(.secondary) - } - ForEach(store.snapshot?.cards ?? []) { card in - NavigationLink { - RadrootsTodayDetailView(card: card, canRevise: true, revise: revise) - } label: { - RadrootsTodayCardView(card: card) - } - } - } + Section("My posts") { + if store.snapshot?.cards.isEmpty != false { + Text("No current posts in this local network.") + .foregroundStyle(.secondary) + } + ForEach(store.snapshot?.cards ?? []) { card in + NavigationLink { + RadrootsTodayDetailView( + card: card, + canRevise: card.localOperationID != nil, + revise: revise + ) + } label: { + RadrootsTodayCardView(card: card) + } + } + } - Section { - NavigationLink("Settings") { - RadrootsSettingsView( - snapshot: runtimeSnapshot, - todayStore: todayStore, - addStore: addStore - ) - } - .accessibilityIdentifier("radroots.support.settings") - } + Section { + NavigationLink("Settings") { + RadrootsSettingsView( + snapshot: runtimeSnapshot, + todayStore: todayStore, + addStore: addStore + ) } - .refreshable { await store.reload() } + .accessibilityIdentifier("radroots.support.settings") + } } + .refreshable { await store.reload() } + } } struct RadrootsProfileRow: View { - let profile: RadrootsProfileSummary + let profile: RadrootsProfileSummary - var body: some View { - HStack(spacing: 12) { - RadrootsStableAvatarView(profile: profile, size: 48) - VStack(alignment: .leading, spacing: 3) { - Text(profile.preferredName) - .font(.headline) - if let nip05 = profile.nip05 { - Text(nip05) - .font(.caption) - .foregroundStyle(.secondary) - } else { - Text(Self.abbreviate(profile.authorPublicKey)) - .font(.caption.monospaced()) - .foregroundStyle(.secondary) - } - } + var body: some View { + HStack(spacing: 12) { + RadrootsStableAvatarView(profile: profile, size: 48) + VStack(alignment: .leading, spacing: 3) { + Text(profile.preferredName) + .font(.headline) + if let nip05 = profile.nip05 { + Text(nip05) + .font(.caption) + .foregroundStyle(.secondary) + } else { + Text(Self.abbreviate(profile.authorPublicKey)) + .font(.caption.monospaced()) + .foregroundStyle(.secondary) } - .accessibilityElement(children: .combine) - .accessibilityLabel("\(profile.preferredName), \(Self.abbreviate(profile.authorPublicKey))") + } } + .accessibilityElement(children: .combine) + .accessibilityLabel("\(profile.preferredName), \(Self.abbreviate(profile.authorPublicKey))") + } - private static func abbreviate(_ key: String) -> String { - guard key.count > 16 else { return key } - return "\(key.prefix(8))…\(key.suffix(8))" - } + private static func abbreviate(_ key: String) -> String { + guard key.count > 16 else { return key } + return "\(key.prefix(8))…\(key.suffix(8))" + } } struct RadrootsProfileView: View { - let profile: RadrootsProfileSummary + let profile: RadrootsProfileSummary - var body: some View { - List { - Section { - VStack(spacing: 12) { - RadrootsStableAvatarView(profile: profile, size: 88) - Text(profile.preferredName) - .font(.title2.weight(.semibold)) - Text(abbreviatedPublicKey) - .font(.caption.monospaced()) - .foregroundStyle(.secondary) - } - .frame(maxWidth: .infinity) - .accessibilityElement(children: .combine) - } - if let about = profile.about, !about.isEmpty { - Section("About") { Text(about) } - } - Section("Nostr profile") { - if let nip05 = profile.nip05 { - LabeledContent("NIP-05", value: nip05) - } - if let website = safeHTTPS(profile.website) { - Link(destination: website) { - LabeledContent("Website", value: website.host ?? website.absoluteString) - } - } - if let address = profile.lightningAddress { - LabeledContent("Lightning", value: address) - } - } + var body: some View { + List { + Section { + VStack(spacing: 12) { + RadrootsStableAvatarView(profile: profile, size: 88) + Text(profile.preferredName) + .font(.title2.weight(.semibold)) + Text(abbreviatedPublicKey) + .font(.caption.monospaced()) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity) + .accessibilityElement(children: .combine) + } + if let about = profile.about, !about.isEmpty { + Section("About") { Text(about) } + } + Section("Nostr profile") { + if let nip05 = profile.nip05 { + LabeledContent("NIP-05", value: nip05) } - .navigationTitle("Profile") - .navigationBarTitleDisplayMode(.inline) - .accessibilityIdentifier("radroots.profile.\(profile.authorPublicKey)") + if let website = safeHTTPS(profile.website) { + Link(destination: website) { + LabeledContent("Website", value: website.host ?? website.absoluteString) + } + } + if let address = profile.lightningAddress { + LabeledContent("Lightning", value: address) + } + } } + .navigationTitle("Profile") + .navigationBarTitleDisplayMode(.inline) + .accessibilityIdentifier("radroots.profile.\(profile.authorPublicKey)") + } - private var abbreviatedPublicKey: String { - guard profile.authorPublicKey.count > 16 else { return profile.authorPublicKey } - return "\(profile.authorPublicKey.prefix(8))…\(profile.authorPublicKey.suffix(8))" - } + private var abbreviatedPublicKey: String { + guard profile.authorPublicKey.count > 16 else { return profile.authorPublicKey } + return "\(profile.authorPublicKey.prefix(8))…\(profile.authorPublicKey.suffix(8))" + } - private func safeHTTPS(_ value: String?) -> URL? { - guard let value, - let url = URL(string: value), - url.scheme?.lowercased() == "https", - url.host != nil, - url.user == nil, - url.password == nil - else { - return nil - } - return url + private func safeHTTPS(_ value: String?) -> URL? { + guard let value, + let url = URL(string: value), + url.scheme?.lowercased() == "https", + url.host != nil, + url.user == nil, + url.password == nil + else { + return nil } + return url + } } struct RadrootsStableAvatarView: View { - let profile: RadrootsProfileSummary - let size: CGFloat + let profile: RadrootsProfileSummary + let size: CGFloat - var body: some View { - let identity = RadrootsStableVisualIdentity(publicKeyHex: profile.authorPublicKey) - ZStack { - Circle().fill(Self.palette[identity.paletteIndex]) - Text(String(profile.preferredName.prefix(1)).uppercased()) - .font(.system(size: size * 0.4, weight: .semibold, design: .rounded)) - .foregroundStyle(.white) - } - .frame(width: size, height: size) - .accessibilityHidden(true) + var body: some View { + let identity = RadrootsStableVisualIdentity(publicKeyHex: profile.authorPublicKey) + ZStack { + Circle().fill(Self.palette[identity.paletteIndex]) + Text(String(profile.preferredName.prefix(1)).uppercased()) + .font(.system(size: size * 0.4, weight: .semibold, design: .rounded)) + .foregroundStyle(.white) } + .frame(width: size, height: size) + .accessibilityHidden(true) + } - private static let palette: [Color] = [ - .indigo, .mint, .orange, .purple, .teal, .pink, - .blue, .green, .red, .cyan, .brown, .yellow, - ] + private static let palette: [Color] = [ + .indigo, .mint, .orange, .purple, .teal, .pink, + .blue, .green, .red, .cyan, .brown, .yellow, + ] } struct RadrootsSettingsView: View { - let snapshot: RadrootsRuntimeSnapshot - @ObservedObject var todayStore: RadrootsTodayStore - @ObservedObject var addStore: RadrootsAddStore - @EnvironmentObject private var diagnosticsStore: RadrootsDiagnosticsStore + let snapshot: RadrootsRuntimeSnapshot + @ObservedObject var todayStore: RadrootsTodayStore + @ObservedObject var addStore: RadrootsAddStore + @EnvironmentObject private var diagnosticsStore: RadrootsDiagnosticsStore - var body: some View { - List { - Section("Identity") { - LabeledContent("Local signer", value: snapshot.identity.hostSignerConfigured ? "Ready" : "Needs attention") - LabeledContent("Public key", value: abbreviatedPublicKey) - .accessibilityIdentifier("radroots.settings.identity.public_key") - .accessibilityValue(snapshot.identity.publicKeyHex) - } - Section("Nostr relays") { - if snapshot.relay?.relays.isEmpty != false { - Text("No relay is configured for this profile.") - .foregroundStyle(.secondary) - } - ForEach(snapshot.relay?.relays ?? [], id: \.url) { relay in - VStack(alignment: .leading, spacing: 4) { - Text(relay.url).font(.caption.monospaced()) - Text("\(relay.access.replacingOccurrences(of: "_", with: " ")) · read \(relay.readState) · write \(relay.writeState)") - .font(.caption2) - .foregroundStyle(.secondary) - } - } - Button("Retry local network") { Task { await todayStore.reload() } } - .accessibilityIdentifier("radroots.settings.retry.network") - } - Section("Blossom photos") { - if let configuration = addStore.blossomConfiguration { - LabeledContent("Origin", value: configuration.primaryOrigin) - .accessibilityIdentifier("radroots.settings.blossom.origin") - LabeledContent("Configuration", value: abbreviated(configuration.configFingerprint)) - .accessibilityIdentifier("radroots.settings.blossom.fingerprint") - } else { - Text("No photo service is configured for this network profile.") - .foregroundStyle(.secondary) - } - if let evidence = addStore.blossomEvidence { - LabeledContent("Service state", value: display(evidence.state)) - .accessibilityIdentifier("radroots.settings.blossom.state") - LabeledContent("Connection", value: display(evidence.transportSecurity)) - if evidence.lastSuccessfulState != "none" { - LabeledContent("Last success", value: display(evidence.lastSuccessfulState)) - } - if let status = evidence.httpStatus { - LabeledContent("HTTP status", value: String(status)) - .accessibilityIdentifier("radroots.settings.blossom.http_status") - } - if let errorCode = evidence.errorCode { - LabeledContent("Last error", value: display(errorCode)) - .accessibilityIdentifier("radroots.settings.blossom.error_code") - } - if let serverErrorCode = evidence.serverErrorCode { - LabeledContent("Server error", value: display(serverErrorCode)) - .accessibilityIdentifier("radroots.settings.blossom.server_error_code") - } - if evidence.attempts > 0 { - LabeledContent("Attempts", value: String(evidence.attempts)) - } - if evidence.possibleOrphan { - Text("The server may contain an upload whose verification did not complete.") - .foregroundStyle(.orange) - } - } - LabeledContent("Photo library", value: addStore.mediaSupport.library ? "Ready" : "Unavailable") - LabeledContent("Camera", value: addStore.mediaSupport.camera ? "Ready" : "Unavailable") - Button { - Task { await addStore.checkPhotoService() } - } label: { - if addStore.isCheckingBlossom { - ProgressView() - } else { - Text("Check photo service") - } - } - .disabled(addStore.isCheckingBlossom || addStore.blossomConfiguration == nil) - .accessibilityIdentifier("radroots.settings.retry.blossom") - } - Section("Runtime") { - LabeledContent("Crate", value: snapshot.crateName) - LabeledContent("Version", value: snapshot.crateVersion) - LabeledContent("State", value: snapshot.isClosed ? "Closed" : "Running") - } - Section { - if let message = diagnosticsStore.message { - Text(message) - .foregroundStyle(.secondary) - } - Button("Prepare diagnostics export") { - Task { await diagnosticsStore.prepare(snapshot: snapshot) } - } - .disabled(diagnosticsStore.isPreparing) - .accessibilityIdentifier("radroots.settings.diagnostics") - } header: { - Text("Privacy-safe diagnostics") - } footer: { - Text("Exports contain bounded lifecycle codes and runtime status only. Posts, keys, credentials, endpoint URLs, and local paths are excluded.") - } + var body: some View { + List { + Section("Identity") { + LabeledContent( + "Local signer", + value: snapshot.identity.hostSignerConfigured ? "Ready" : "Needs attention") + LabeledContent("Public key", value: abbreviatedPublicKey) + .accessibilityIdentifier("radroots.settings.identity.public_key") + .accessibilityValue(snapshot.identity.publicKeyHex) + } + Section("Nostr relays") { + if snapshot.relay?.relays.isEmpty != false { + Text("No relay is configured for this profile.") + .foregroundStyle(.secondary) + } + ForEach(snapshot.relay?.relays ?? [], id: \.url) { relay in + VStack(alignment: .leading, spacing: 4) { + Text(relay.url).font(.caption.monospaced()) + Text("\(relay.access.label) · read \(relay.readState) · write \(relay.writeState)") + .font(.caption2) + .foregroundStyle(.secondary) + } + } + Button("Retry local network") { Task { await todayStore.reload() } } + .accessibilityIdentifier("radroots.settings.retry.network") + } + Section("Blossom photos") { + if let configuration = addStore.blossomConfiguration { + LabeledContent("Origin", value: configuration.primaryOrigin) + .accessibilityIdentifier("radroots.settings.blossom.origin") + LabeledContent("Configuration", value: abbreviated(configuration.configFingerprint)) + .accessibilityIdentifier("radroots.settings.blossom.fingerprint") + } else { + Text("No photo service is configured for this network profile.") + .foregroundStyle(.secondary) + } + if let evidence = addStore.blossomEvidence { + LabeledContent("Service state", value: display(evidence.state)) + .accessibilityIdentifier("radroots.settings.blossom.state") + LabeledContent("Connection", value: display(evidence.transportSecurity)) + if evidence.lastSuccessfulState != "none" { + LabeledContent("Last success", value: display(evidence.lastSuccessfulState)) + } + if let status = evidence.httpStatus { + LabeledContent("HTTP status", value: String(status)) + .accessibilityIdentifier("radroots.settings.blossom.http_status") + } + if let errorCode = evidence.errorCode { + LabeledContent("Last error", value: display(errorCode)) + .accessibilityIdentifier("radroots.settings.blossom.error_code") + } + if let serverErrorCode = evidence.serverErrorCode { + LabeledContent("Server error", value: display(serverErrorCode)) + .accessibilityIdentifier("radroots.settings.blossom.server_error_code") + } + if evidence.attempts > 0 { + LabeledContent("Attempts", value: String(evidence.attempts)) + } + if evidence.possibleOrphan { + Text("The server may contain an upload whose verification did not complete.") + .foregroundStyle(.orange) + } } - .navigationTitle("Settings") - .radrootsDocumentExporter(preparedExport: $diagnosticsStore.preparedExport) { result in - diagnosticsStore.completeExport(result) + LabeledContent( + "Photo library", value: addStore.mediaSupport.library ? "Ready" : "Unavailable") + LabeledContent("Camera", value: addStore.mediaSupport.camera ? "Ready" : "Unavailable") + Button { + Task { await addStore.checkPhotoService() } + } label: { + if addStore.isCheckingBlossom { + ProgressView() + } else { + Text("Check photo service") + } } - .accessibilityIdentifier("radroots.support.settings.view") + .disabled(addStore.isCheckingBlossom || addStore.blossomConfiguration == nil) + .accessibilityIdentifier("radroots.settings.retry.blossom") + } + Section("Runtime") { + LabeledContent("Crate", value: snapshot.crateName) + LabeledContent("Version", value: snapshot.crateVersion) + LabeledContent("State", value: snapshot.isClosed ? "Closed" : "Running") + } + Section { + if let message = diagnosticsStore.message { + Text(message) + .foregroundStyle(.secondary) + } + Button("Prepare diagnostics export") { + Task { await diagnosticsStore.prepare(snapshot: snapshot) } + } + .disabled(diagnosticsStore.isPreparing) + .accessibilityIdentifier("radroots.settings.diagnostics") + } header: { + Text("Privacy-safe diagnostics") + } footer: { + Text( + "Exports contain bounded lifecycle codes and runtime status only. Posts, keys, credentials, endpoint URLs, and local paths are excluded." + ) + } } - - private var abbreviatedPublicKey: String { - let key = snapshot.identity.publicKeyHex - guard key.count > 16 else { return key } - return "\(key.prefix(8))…\(key.suffix(8))" + .navigationTitle("Settings") + .radrootsDocumentExporter(preparedExport: $diagnosticsStore.preparedExport) { result in + diagnosticsStore.completeExport(result) } + .accessibilityIdentifier("radroots.support.settings.view") + } - private func abbreviated(_ value: String) -> String { - guard value.count > 16 else { return value } - return "\(value.prefix(8))…\(value.suffix(8))" - } + private var abbreviatedPublicKey: String { + let key = snapshot.identity.publicKeyHex + guard key.count > 16 else { return key } + return "\(key.prefix(8))…\(key.suffix(8))" + } - private func display(_ value: String) -> String { - value.replacingOccurrences(of: "_", with: " ") - } + private func abbreviated(_ value: String) -> String { + guard value.count > 16 else { return value } + return "\(value.prefix(8))…\(value.suffix(8))" + } + + private func display(_ value: String) -> String { + value.replacingOccurrences(of: "_", with: " ") + } } diff --git a/Radroots/Views/RadrootsTodayView.swift b/Radroots/Views/RadrootsTodayView.swift @@ -1,376 +1,381 @@ import SwiftUI struct RadrootsTodayView: View { - let snapshot: RadrootsRuntimeSnapshot - @ObservedObject var store: RadrootsTodayStore - @ObservedObject var searchStore: RadrootsSearchStore - @ObservedObject var meStore: RadrootsMeStore - @ObservedObject var addStore: RadrootsAddStore - let revise: (RadrootsTodayCard) -> Void - @State private var showsAccount = false - @State private var showsContextPicker = false - @State private var showsSearch = false + let snapshot: RadrootsRuntimeSnapshot + @ObservedObject var store: RadrootsTodayStore + @ObservedObject var searchStore: RadrootsSearchStore + @ObservedObject var meStore: RadrootsMeStore + @ObservedObject var addStore: RadrootsAddStore + let revise: (RadrootsTodayCard) -> Void + @State private var showsAccount = false + @State private var showsContextPicker = false + @State private var showsSearch = false - var body: some View { - Group { - switch store.state { - case .idle where store.cards.isEmpty, - .loading where store.cards.isEmpty: - ProgressView("Loading Today…") - .accessibilityIdentifier("radroots.today.loading") - case .empty: - ContentUnavailableView { - Label("Nothing here yet", systemImage: "leaf") - } description: { - Text("Pull to refresh or add the first update to this local network.") - } actions: { - Button("Refresh") { Task { await store.reload() } } - } - .accessibilityIdentifier("radroots.today.empty") - case let .failed(message) where store.cards.isEmpty: - unavailableView( - title: "Today is unavailable", - message: message, - systemImage: "exclamationmark.triangle" - ) - .accessibilityIdentifier("radroots.today.error") - case let .offline(message) where store.cards.isEmpty: - unavailableView( - title: "You’re offline", - message: message, - systemImage: "wifi.slash" - ) - .accessibilityIdentifier("radroots.today.offline") - default: - feed - } - } - .navigationTitle("Today") - .toolbar { toolbarContent } - .sheet(isPresented: $showsContextPicker) { - RadrootsContextPicker(store: store) - } - .sheet(isPresented: $showsAccount, onDismiss: { meStore.stop() }) { - RadrootsMeSheet( - runtimeSnapshot: snapshot, - context: store.selectedContext, - store: meStore, - todayStore: store, - addStore: addStore, - revise: revise - ) - } - .sheet(isPresented: $showsSearch, onDismiss: { searchStore.stop() }) { - RadrootsSearchSheet( - snapshot: snapshot, - context: store.selectedContext, - store: searchStore, - revise: revise - ) + var body: some View { + Group { + switch store.state { + case .idle where store.cards.isEmpty, + .loading where store.cards.isEmpty: + ProgressView("Loading Today…") + .accessibilityIdentifier("radroots.today.loading") + case .empty: + ContentUnavailableView { + Label("Nothing here yet", systemImage: "leaf") + } description: { + Text("Pull to refresh or add the first update to this local network.") + } actions: { + Button("Refresh") { Task { await store.reload() } } } - .task { await store.start() } - .accessibilityIdentifier("radroots.today.root") + .accessibilityIdentifier("radroots.today.empty") + case .failed(let message) where store.cards.isEmpty: + unavailableView( + title: "Today is unavailable", + message: message, + systemImage: "exclamationmark.triangle" + ) + .accessibilityIdentifier("radroots.today.error") + case .offline(let message) where store.cards.isEmpty: + unavailableView( + title: "You’re offline", + message: message, + systemImage: "wifi.slash" + ) + .accessibilityIdentifier("radroots.today.offline") + default: + feed + } } + .navigationTitle("Today") + .toolbar { toolbarContent } + .sheet(isPresented: $showsContextPicker) { + RadrootsContextPicker(store: store) + } + .sheet(isPresented: $showsAccount, onDismiss: { meStore.stop() }) { + RadrootsMeSheet( + runtimeSnapshot: snapshot, + context: store.selectedContext, + store: meStore, + todayStore: store, + addStore: addStore, + revise: revise + ) + } + .sheet(isPresented: $showsSearch, onDismiss: { searchStore.stop() }) { + RadrootsSearchSheet( + snapshot: snapshot, + context: store.selectedContext, + store: searchStore, + revise: revise + ) + } + .task { await store.start() } + .accessibilityIdentifier("radroots.today.root") + } - private var feed: some View { - List { - if case let .offline(message) = store.state { - statusBanner(message: message, systemImage: "wifi.slash") - } else if case let .failed(message) = store.state { - statusBanner(message: message, systemImage: "exclamationmark.triangle") - } - - ForEach(store.cards) { card in - NavigationLink(value: card) { - RadrootsTodayCardView(card: card) - } - .accessibilityIdentifier("radroots.today.card.\(card.id)") - .onAppear { - guard card.id == store.cards.last?.id, store.canLoadNextPage else { return } - Task { await store.loadNextPage() } - } - } + private var feed: some View { + List { + if case .offline(let message) = store.state { + statusBanner(message: message, systemImage: "wifi.slash") + } else if case .failed(let message) = store.state { + statusBanner(message: message, systemImage: "exclamationmark.triangle") + } - if store.isLoadingNextPage { - HStack { - Spacer() - ProgressView("Loading more…") - Spacer() - } - .accessibilityIdentifier("radroots.today.loading_more") - } + ForEach(store.cards) { card in + NavigationLink(value: card) { + RadrootsTodayCardView(card: card) } - .listStyle(.plain) - .refreshable { await store.reload() } - .navigationDestination(for: RadrootsTodayCard.self) { card in - RadrootsTodayDetailView( - card: card, - canRevise: card.authorPublicKey == snapshot.identity.publicKeyHex, - revise: revise - ) + .accessibilityIdentifier("radroots.today.card.\(card.id)") + .onAppear { + guard card.id == store.cards.last?.id, store.canLoadNextPage else { return } + Task { await store.loadNextPage() } } - .accessibilityIdentifier("radroots.today.feed") - } + } - @ToolbarContentBuilder - private var toolbarContent: some ToolbarContent { - ToolbarItem(placement: .topBarLeading) { - Button { - showsContextPicker = true - } label: { - Label(store.selectedContext?.label ?? "Local network", systemImage: "location.circle") - } - .accessibilityLabel("Choose local network") - .accessibilityValue(store.selectedContext?.label ?? "None") - .accessibilityIdentifier("radroots.support.context") - } - ToolbarItem(placement: .topBarTrailing) { - Button { - showsSearch = true - } label: { - Label("Search", systemImage: "magnifyingglass") - } - .accessibilityIdentifier("radroots.support.search") - } - ToolbarItem(placement: .topBarTrailing) { - Button { - showsAccount = true - } label: { - Label("Account", systemImage: "person.crop.circle") - } - .accessibilityIdentifier("radroots.support.account") + if store.isLoadingNextPage { + HStack { + Spacer() + ProgressView("Loading more…") + Spacer() } + .accessibilityIdentifier("radroots.today.loading_more") + } + } + .listStyle(.plain) + .refreshable { await store.reload() } + .navigationDestination(for: RadrootsTodayCard.self) { card in + RadrootsTodayDetailView( + card: card, + canRevise: card.authorPublicKey == snapshot.identity.publicKeyHex + && card.localOperationID != nil, + revise: revise + ) } + .accessibilityIdentifier("radroots.today.feed") + } - private func unavailableView( - title: String, - message: String, - systemImage: String - ) -> some View { - ContentUnavailableView { - Label(title, systemImage: systemImage) - } description: { - Text(message) - } actions: { - Button("Try again") { Task { await store.reload() } } - } + @ToolbarContentBuilder + private var toolbarContent: some ToolbarContent { + ToolbarItem(placement: .topBarLeading) { + Button { + showsContextPicker = true + } label: { + Label(store.selectedContext?.label ?? "Local network", systemImage: "location.circle") + } + .accessibilityLabel("Choose local network") + .accessibilityValue(store.selectedContext?.label ?? "None") + .accessibilityIdentifier("radroots.support.context") } + ToolbarItem(placement: .topBarTrailing) { + Button { + showsSearch = true + } label: { + Label("Search", systemImage: "magnifyingglass") + } + .accessibilityIdentifier("radroots.support.search") + } + ToolbarItem(placement: .topBarTrailing) { + Button { + showsAccount = true + } label: { + Label("Account", systemImage: "person.crop.circle") + } + .accessibilityIdentifier("radroots.support.account") + } + } - private func statusBanner(message: String, systemImage: String) -> some View { - Label(message, systemImage: systemImage) - .font(.footnote) - .foregroundStyle(.secondary) - .accessibilityIdentifier("radroots.today.status") + private func unavailableView( + title: String, + message: String, + systemImage: String + ) -> some View { + ContentUnavailableView { + Label(title, systemImage: systemImage) + } description: { + Text(message) + } actions: { + Button("Try again") { Task { await store.reload() } } } + } + + private func statusBanner(message: String, systemImage: String) -> some View { + Label(message, systemImage: systemImage) + .font(.footnote) + .foregroundStyle(.secondary) + .accessibilityIdentifier("radroots.today.status") + } } private struct RadrootsContextPicker: View { - @ObservedObject var store: RadrootsTodayStore - @Environment(\.dismiss) private var dismiss + @ObservedObject var store: RadrootsTodayStore + @Environment(\.dismiss) private var dismiss - var body: some View { - NavigationStack { - List(store.contexts) { context in - Button { - store.selectContext(id: context.id) - dismiss() - } label: { - HStack { - VStack(alignment: .leading, spacing: 4) { - Text(context.label) - .foregroundStyle(.primary) - if let locality = context.locality { - Text(locality) - .font(.caption) - .foregroundStyle(.secondary) - } - } - Spacer() - if context.id == store.selectedContextID { - Image(systemName: "checkmark") - .accessibilityHidden(true) - } - } - } - .accessibilityLabel(context.label) - .accessibilityValue(context.id == store.selectedContextID ? "Selected" : "") - .accessibilityIdentifier("radroots.context.\(context.id)") + var body: some View { + NavigationStack { + List(store.contexts) { context in + Button { + store.selectContext(id: context.id) + dismiss() + } label: { + HStack { + VStack(alignment: .leading, spacing: 4) { + Text(context.label) + .foregroundStyle(.primary) + if let locality = context.locality { + Text(locality) + .font(.caption) + .foregroundStyle(.secondary) + } } - .navigationTitle("Local network") - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("Done") { dismiss() } - } + Spacer() + if context.id == store.selectedContextID { + Image(systemName: "checkmark") + .accessibilityHidden(true) } + } + } + .accessibilityLabel(context.label) + .accessibilityValue(context.id == store.selectedContextID ? "Selected" : "") + .accessibilityIdentifier("radroots.context.\(context.id)") + } + .navigationTitle("Local network") + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("Done") { dismiss() } } - .presentationDetents([.medium, .large]) - .accessibilityIdentifier("radroots.context.picker") + } } + .presentationDetents([.medium, .large]) + .accessibilityIdentifier("radroots.context.picker") + } } struct RadrootsTodayCardView: View { - let card: RadrootsTodayCard + let card: RadrootsTodayCard - var body: some View { - VStack(alignment: .leading, spacing: 12) { - HStack(alignment: .firstTextBaseline) { - Text(card.authorName) - .font(.subheadline.weight(.semibold)) - Spacer() - Text(card.type.label) - .font(.caption.weight(.semibold)) - .padding(.horizontal, 8) - .padding(.vertical, 4) - .background(.tint.opacity(0.12), in: Capsule()) - } + var body: some View { + VStack(alignment: .leading, spacing: 12) { + HStack(alignment: .firstTextBaseline) { + Text(card.authorName) + .font(.subheadline.weight(.semibold)) + Spacer() + Text(card.type.label) + .font(.caption.weight(.semibold)) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(.tint.opacity(0.12), in: Capsule()) + } - if let title = card.title { - Text(title) - .font(.headline) - } - if !card.content.isEmpty { - Text(card.content) - .font(card.type == .ask ? .headline : .body) - } + if let title = card.title { + Text(title) + .font(.headline) + } + if !card.content.isEmpty { + Text(card.content) + .font(card.type == .ask ? .headline : .body) + } - if card.type == .event { - eventMetadata - } - if card.type == .foodAvailability { - foodMetadata - } + if card.type == .event { + eventMetadata + } + if card.type == .foodAvailability { + foodMetadata + } - ForEach(card.media) { media in - RadrootsTrustedMediaView(media: media) - } + ForEach(card.media) { media in + RadrootsTrustedMediaView(media: media) + } - HStack(spacing: 12) { - Text(Date(timeIntervalSince1970: TimeInterval(card.authoredAtUnixSeconds)), style: .relative) - if card.lifecycle != .active { - Label(card.lifecycle.rawValue.capitalized, systemImage: "clock") - } - if let operationState = card.localOperationState { - Label(operationState.replacingOccurrences(of: "_", with: " ").capitalized, systemImage: "arrow.triangle.2.circlepath") - } - } - .font(.caption) - .foregroundStyle(.secondary) + HStack(spacing: 12) { + Text( + Date(timeIntervalSince1970: TimeInterval(card.authoredAtUnixSeconds)), style: .relative) + if card.lifecycle != .active { + Label(card.lifecycle.rawValue.capitalized, systemImage: "clock") + } + if let operationState = card.localOperationState { + Label( + operationState.replacingOccurrences(of: "_", with: " ").capitalized, + systemImage: "arrow.triangle.2.circlepath") } - .padding(.vertical, 8) - .accessibilityElement(children: .combine) - .accessibilityLabel(card.accessibilitySummary) + } + .font(.caption) + .foregroundStyle(.secondary) } + .padding(.vertical, 8) + .accessibilityElement(children: .combine) + .accessibilityLabel(card.accessibilitySummary) + } - private var eventMetadata: some View { - VStack(alignment: .leading, spacing: 4) { - if let start = card.eventStartUnixSeconds { - Label( - Date(timeIntervalSince1970: TimeInterval(start)).formatted(date: .abbreviated, time: .shortened), - systemImage: "calendar" - ) - } - if let location = card.location { - Label(location, systemImage: "mappin.and.ellipse") - } - } - .font(.subheadline) + private var eventMetadata: some View { + VStack(alignment: .leading, spacing: 4) { + if let start = card.eventStartUnixSeconds { + Label( + Date(timeIntervalSince1970: TimeInterval(start)).formatted( + date: .abbreviated, time: .shortened), + systemImage: "calendar" + ) + } + if let location = card.location { + Label(location, systemImage: "mappin.and.ellipse") + } } + .font(.subheadline) + } - private var foodMetadata: some View { - HStack(spacing: 12) { - if let price = card.priceSummary { - Label(price, systemImage: "tag") - } - if let quantity = card.quantity, let unit = card.priceUnit { - Label("\(quantity) \(unit) available", systemImage: "basket") - } - if let location = card.location { - Label(location, systemImage: "mappin.and.ellipse") - } - } - .font(.subheadline) + private var foodMetadata: some View { + HStack(spacing: 12) { + if let price = card.priceSummary { + Label(price, systemImage: "tag") + } + if let quantity = card.quantity, let unit = card.priceUnit { + Label("\(quantity) \(unit) available", systemImage: "basket") + } + if let location = card.location { + Label(location, systemImage: "mappin.and.ellipse") + } } + .font(.subheadline) + } } struct RadrootsTrustedMediaView: View { - let media: RadrootsMediaReference + let media: RadrootsMediaReference - var body: some View { - Group { - if let url = media.trustedURL { - AsyncImage(url: url) { phase in - switch phase { - case let .success(image): - image.resizable().scaledToFill() - case .failure: - mediaState("Media could not be loaded", systemImage: "photo.badge.exclamationmark") - case .empty: - ProgressView() - @unknown default: - mediaState("Media unavailable", systemImage: "photo") - } - } - } else { - switch media.verification { - case .pending: - mediaState("Verifying media", systemImage: "hourglass") - case .failed: - mediaState("Media failed verification", systemImage: "shield.slash") - case .unavailable: - mediaState("Media not verified", systemImage: "shield.lefthalf.filled") - case .verified: - mediaState("Media URL is not trusted", systemImage: "lock.trianglebadge.exclamationmark") - } - } + var body: some View { + Group { + if let url = media.trustedURL { + AsyncImage(url: url) { phase in + switch phase { + case .success(let image): + image.resizable().scaledToFill() + case .failure: + mediaState("Media could not be loaded", systemImage: "photo.badge.exclamationmark") + case .empty: + ProgressView() + @unknown default: + mediaState("Media unavailable", systemImage: "photo") + } } - .frame(maxWidth: .infinity, minHeight: 120, maxHeight: 260) - .background(.quaternary, in: RoundedRectangle(cornerRadius: 12)) - .clipShape(RoundedRectangle(cornerRadius: 12)) - .accessibilityLabel(media.alt ?? media.verification.rawValue.capitalized) + } else { + switch media.verification { + case .pending: + mediaState("Verifying media", systemImage: "hourglass") + case .failed: + mediaState("Media failed verification", systemImage: "shield.slash") + case .unavailable: + mediaState("Media not verified", systemImage: "shield.lefthalf.filled") + case .verified: + mediaState("Media URL is not trusted", systemImage: "lock.trianglebadge.exclamationmark") + } + } } + .frame(maxWidth: .infinity, minHeight: 120, maxHeight: 260) + .background(.quaternary, in: RoundedRectangle(cornerRadius: 12)) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .accessibilityLabel(media.alt ?? media.verification.rawValue.capitalized) + } - private func mediaState(_ message: String, systemImage: String) -> some View { - ContentUnavailableView(message, systemImage: systemImage) - .font(.caption) - } + private func mediaState(_ message: String, systemImage: String) -> some View { + ContentUnavailableView(message, systemImage: systemImage) + .font(.caption) + } } struct RadrootsTodayDetailView: View { - let card: RadrootsTodayCard - let canRevise: Bool - let revise: (RadrootsTodayCard) -> Void + let card: RadrootsTodayCard + let canRevise: Bool + let revise: (RadrootsTodayCard) -> Void - var body: some View { - List { - Section { - RadrootsTodayCardView(card: card) - } - if !card.thread.isEmpty { - Section("Conversation") { - ForEach(card.thread) { entry in - VStack(alignment: .leading, spacing: 4) { - Text(entry.authorProfile?.preferredName ?? entry.authorPublicKey) - .font(.subheadline.weight(.semibold)) - Text(entry.content) - Text(entry.type.rawValue.capitalized) - .font(.caption) - .foregroundStyle(.secondary) - } - .accessibilityElement(children: .combine) - } - } + var body: some View { + List { + Section { + RadrootsTodayCardView(card: card) + } + if !card.thread.isEmpty { + Section("Conversation") { + ForEach(card.thread) { entry in + VStack(alignment: .leading, spacing: 4) { + Text(entry.authorProfile?.preferredName ?? entry.authorPublicKey) + .font(.subheadline.weight(.semibold)) + Text(entry.content) + Text(entry.type.rawValue.capitalized) + .font(.caption) + .foregroundStyle(.secondary) } + .accessibilityElement(children: .combine) + } } - .navigationTitle(card.type.label) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - if canRevise { - ToolbarItem(placement: .topBarTrailing) { - Button("Revise") { revise(card) } - .accessibilityIdentifier("radroots.today.revise") - } - } + } + } + .navigationTitle(card.type.label) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + if canRevise { + ToolbarItem(placement: .topBarTrailing) { + Button("Revise") { revise(card) } + .accessibilityIdentifier("radroots.today.revise") } - .accessibilityIdentifier("radroots.today.detail.\(card.id)") + } } + .accessibilityIdentifier("radroots.today.detail.\(card.id)") + } } diff --git a/RadrootsFFI/api/RadrootsKitBindings.symbols.json b/RadrootsFFI/api/RadrootsKitBindings.symbols.json @@ -1 +1 @@ -{"generator":"Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)","module":{"name":"RadrootsKitBindings","platform":{"architecture":"arm64","environment":"simulator","operatingSystem":{"minimumVersion":{"major":18,"minor":0},"name":"ios"},"vendor":"apple"}},"relationships":[{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A10HostSignerP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A10HostSignerP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeObserverP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeObserverP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:10Foundation14LocalizedErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s5ErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s5ErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s9EscapableP"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV11safeMessageSSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV12capabilityIdSSSgvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersion4code8category9retryable15recoveryActions11operationId010capabilityN011safeMessageACs6UInt16V_S2SSbSaySSGSSSgAOSStcfc","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV15recoveryActionsSaySSGvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV4codeSSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV8categorySSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV9retryableSbvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12phase1Search7context5query5limit9asOfUnixSSayAA03FfiF12ResultRecordVGAA0m12LocalNetworkO0V_SSs6UInt16Vs6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12probeBlossomAA03FfiF14EvidenceRecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12uptimeMilliss5Int64VyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14identityStatusAA011FfiIdentityF6RecordVyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14phase1SettingsAA09FfiMobileF6RecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14sdkRelayStatusAA03FfifG12ReportRecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14withHostSigner27applicationSupportDirectory12publicKeyHex016sourceGenerationM00nO15CreatedAtUnixMs13protectedData04hostG0ACSS_S2Ss6UInt64VAA09ProtectedU12AvailabilityOAA0afG0_ptYaKFZ","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedlM2MsAA03FfiG12StatusRecordVSS_AA0r3AddG5InputVs6UInt64VAOSgAOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1SyncToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfifG6RecordVAA0n12LocalNetworkO0V_s6UInt16Vs6UInt64VSgSSSgtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffif4HostH0O_AA0of8EndpointJ0OSSSaySSGtKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1AddSchemasSayAA03FfiF12SchemaRecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1DraftHeads5limitSayAA03FfiF12StatusRecordVGs6UInt16V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAA0qf6PolicyS0VALtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16sdkStorageStatusAA03FfifG6RecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAKtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC17phase1DraftStatus7draftIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1LocalNetwork7contextAA03FfifG6RecordVAG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1RefreshToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18sdkBlossomEvidenceAA03FfifG6RecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18setAppInfoPlatform8platform8bundleId7version11buildNumber0M3ShaySSSg_A4JtF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1CancelProfile11operationId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1CardAddParitySayAA03FfifgH6RecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1ProfileStatus11operationIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedG14ArtifactRecordVAA0l12LocalNetworkO0V_SSAA0lG9OperationCtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiK12StatusRecordVAA0ogK5InputV_SSSgs6UInt64VSgtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1AdvanceProfile11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1CancelRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1RevisionStatus11operationIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21configureDeviceRelays08writableG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21configurePublicRelays08writableG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1AdvanceRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1ReplaceSettings5inputAA03FfiG16TransitionRecordVAA0ifgK0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1MediaCacheStatus7contextAA03FfifgH6RecordVAA0j12LocalNetworkK0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1UploadDraftMedia5inputAA03FfiG12StatusRecordVAA0j7BlossomF5InputV_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfigH5InputV_s6UInt64VtKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC23sdkBlossomConfigurationAA03FfifG6RecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC24configureSimulatorRelays08loopbackG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC24phase1SaveRevisionIntent5inputAA03FfiG12StatusRecordVAA0jg5InputL0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveProfileMetadata5inputAA03FfiG12StatusRecordVAA0jgh5InputL0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0qgH5InputVs6UInt64VANtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0lghO0VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0k7BlossomfI0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC27applicationSupportDirectory12publicKeyHex016sourceGenerationJ00kL15CreatedAtUnixMs13protectedDataACSS_S2Ss6UInt64VAA09ProtectedR12AvailabilityOtYaKcfc","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC27phase1VerifiedMediaArtifact7context10artifactIdAA03FfifgH6RecordVSgAA0l12LocalNetworkM0V_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC4infoAA03FfiD10InfoRecordVyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8infoJsonSSyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8phase1Me7context9asOfUnixSAA03FfiF6RecordVAA0k12LocalNetworkL0V_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8shutdownAA17FfiShutdownRecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A8AppErrorO16errorDescriptionSSSgvp","target":"s:19RadrootsKitBindings0A8AppErrorO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A8AppErrorO7FailureyAcA0aE6RecordV_tcACmF","target":"s:19RadrootsKitBindings0A8AppErrorO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersion9publicKey7profile5cardsACs6UInt16V_SSAA0d7ProfileF0VSgSayAA0d9TodayCardF0VGtcfc","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV5cardsSayAA0d9TodayCardF0VGvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV7profileAA0d7ProfileF0VSgvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings12FfiDraftKindO10retractionyA2CmF","target":"s:19RadrootsKitBindings12FfiDraftKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings12FfiDraftKindO3addyA2CmF","target":"s:19RadrootsKitBindings12FfiDraftKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO6failedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO7pendingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO8orphanedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO8verifiedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO9preparingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO9uploadingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO10deliveringyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO11readyToSignyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaPreparingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaUploadingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO18partiallyDeliveredyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO5draftyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO6queuedyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO6signedyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO7signingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO8completeyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO8terminalyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO9cancelledyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO9retryableyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO13multilineTextyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO4dateyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO4textyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO5mediayA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO6choiceyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO7decimalyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO8dateTimeyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO8locationyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV10identifierSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11commandTypeAA0de7CommandI0Ovp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11eventTimingAA0d5EventI4KindOSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV12eventEndDateSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventTimezoneSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0de7CommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0d13PreparedMediaG0VGtcfc","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV14eventStartDateSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV4unitSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV5mediaSayAA0d13PreparedMediaG0VGvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV5titleSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV7contentSSvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV7summarySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8currencySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8locationSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8quantitySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV12shuttingDownSbvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV12uptimeMilliss5Int64Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersion5build13startedUnixMs12uptimeMillis12shuttingDown8platformACs6UInt16V_AA0d5BuildfG0Vs5Int64VAOSbAA0de8PlatformG0VSgtcfc","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13startedUnixMss5Int64Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV5buildAA0d5BuildfG0Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV8platformAA0de8PlatformG0VSgvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV11displayNameSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersion15authorPublicKey4name11displayName5about7picture6banner5nip057website16lightningAddressACs6UInt16V_S2SSgA2pA0d14MediaReferenceF0VSgAs3Ptcfc","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV16lightningAddressSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV4nameSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV5aboutSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV5nip05SSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV6bannerAA0d14MediaReferenceF0VSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV7pictureAA0d14MediaReferenceF0VSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV7websiteSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO13partialEffectyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO17replacementFailedyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO17retractionPendingyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO18replacementPendingyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO8completeyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO9cancelledyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO5replyyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO7commentyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO7profileyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO8deletionyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO11photoUpdateyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO16foodAvailabilityyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO3askyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO5eventyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO6updateyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO11createEventyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO12createUpdateyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO17createPhotoUpdateyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO22createFoodAvailabilityyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO9createAskyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersion2id5label4kind8required7choices8maxBytesACs6UInt16V_S2SAA0deF4KindOSbSaySSGs6UInt64VSgtcfc","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV2idSSvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV5labelSSvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV7choicesSaySSGvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxBytess6UInt64VSgvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV8requiredSbvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC11isCancelledSbyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC11operationIdSSyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC6cancelyyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationCACyKcfc","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO18replaceThenRetractyA2CmF","target":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO22addressableReplacementyA2CmF","target":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13alreadyClosedSbvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersion5state13alreadyClosedACs6UInt16V_SSSbtcfc","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV5stateSSvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV11operationIdSSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV12signatureHexSSSgvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersion7outcome11operationId013signerRequestK09publicKey7purpose12signatureHex17completedAtUnixMsACs6UInt16V_AA0dE7OutcomeOS3SAA0dE7PurposeOSSSgs6UInt64Vtcfc","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV15signerRequestIdSSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV17completedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV7outcomeAA0dE7OutcomeOvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV7purposeAA0dE7PurposeOvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV9publicKeySSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV11commandTypeAA0de7CommandI0Ovp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersion11commandType5label6fieldsACs6UInt16V_AA0de7CommandK0OSSSayAA0de5FieldG0VGtcfc","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV5labelSSvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV6fieldsSayAA0de5FieldG0VGvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO14physicalDeviceyA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO6nativeyA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO9simulatoryA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV11libRevisionSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV12crateVersionSSvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13buildTimeUnixs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersion9crateName0jI05rustc7profile11libRevision08consumerO013buildTimeUnixACs6UInt16V_S3SSgA3Ns6UInt64VSgtcfc","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV16consumerRevisionSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV5rustcSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV7profileSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV9crateNameSSvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV10identifierSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11eventTimingAA0d5EventI4KindOSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV12eventEndDateSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventTimezoneSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0d10AddCommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0def5MediaG0VGtcfc","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV14eventStartDateSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV4unitSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV5mediaSayAA0def5MediaG0VGvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV5titleSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV7contentSSvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV7summarySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8currencySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8locationSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8quantitySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiEventTimingKindO5timedyA2CmF","target":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiEventTimingKindO6allDayyA2CmF","target":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10contractIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10rankDigestSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11contextRanks5UInt8Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11foodSummarySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13authorProfileAA0diG0VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13priceCurrencySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersion6cardId0J4Type011sourceEventK00M7Address15authorPublicKey08contractK05title7content15authoredAtUnixS09effectivewX1S010eventStartX1S0z3EndX1S8location11priceAmount13priceCurrency9priceUnit8quantity11foodSummary013foodPublishedwX1S10foodStatus11contextRank15inclusionReason5media9lifecycle10rankDigest0P7Profile6thread014localOperationK019localOperationStateACs6UInt16V_SSAA0defL0OS2SSgS2SA10_SSs6UInt64VA12_A12_SgA13_A10_A10_A10_A10_A10_A10_A13_A10_s5UInt8VSSSayAA0d14MediaReferenceG0VGAA0dF14LifecycleStateOA10_AA0d7ProfileG0VSgSayAA0d11ThreadEntryG0VGA10_A10_tcfc","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceAddressSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceEventIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authoredAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15inclusionReasonSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV16effectiveAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV16localOperationIdSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV19localOperationStateSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV5mediaSayAA0d14MediaReferenceG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV5titleSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV6threadSayAA0d11ThreadEntryG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV7contentSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8cardTypeAA0defI0Ovp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8locationSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8quantitySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV9lifecycleAA0dF14LifecycleStateOvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV9priceUnitSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV10nextCursorSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersion9asOfUnixS5items10nextCursorACs6UInt16V_s6UInt64VSayAA0de4CardG0VGSSSgtcfc","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV5itemsSayAA0de4CardG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV9asOfUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10projectionAA0de7RefreshG0Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10relayStateAA0de5RelayfI0Ovp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV12pagesFetcheds6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersion10relayState12pagesFetched14eventsObserved0N8Admitted0N8Rejected10projectionACs6UInt16V_AA0de5RelayfK0OALs6UInt64VA2pA0de7RefreshG0Vtcfc","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsAdmitteds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsObserveds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsRejecteds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO11invalidatedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO11unavailableyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6failedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6lockedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6signedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO8rejectedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO8timedOutyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO9cancelledyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningPurposeO10nostrEventyA2CmF","target":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningPurposeO13blossomUploadyA2CmF","target":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV06signerF2IdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV10artifactIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV11operationIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13eventIdDigest10Foundation4DataVvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13operationKindSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersion13operationKind0I2Id08artifactK006signerfK09publicKey7purpose14deadlineUnixMs05eventK6Digest013expectedEventK009createdAtR1S4kind4tags7contentACs6UInt16V_S5SAA0dE7PurposeOs6UInt64V10Foundation4DataVSSAWs6UInt32VSaySaySSGGSStcfc","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV14createdAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV14deadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV15expectedEventIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4kinds6UInt32Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4tagsSaySaySSGGvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV7contentSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV7purposeAA0dE7PurposeOvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV9publicKeySSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV12availabilityAA0d12AvailabilityF0Ovp","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersion12availabilityACs6UInt16V_AA0d12AvailabilityF0Otcfc","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV10configuredSbvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV12availabilitySSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersion2id8compiled10configured12availability8maturityACs6UInt16V_SSS2bS2Stcfc","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV2idSSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV8compiledSbvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV8maturitySSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersion3url5stage14uploadAttempts16verifiedAtUnixMs14possibleOrphan16orphanReasonCode0t8RecordedopQ0ACs6UInt16V_SSAA0dF5StageOs5UInt8Vs6UInt64VSgSbSSSgATtcfc","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14possibleOrphanSbvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14uploadAttemptss5UInt8Vvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16orphanReasonCodeSSSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16verifiedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV22orphanRecordedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV3urlSSvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV5stageAA0dF5StageOvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO4cardyA2CmF","target":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO7profileyA2CmF","target":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV11buildNumberSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersion8platform8bundleId7version11buildNumber0N3ShaACs6UInt16V_SSSgA4Ltcfc","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV7versionSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8buildShaSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8bundleIdSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8platformSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersion7draftId8revision15authorPublicKey4kind11commandType4form5state04cardK009operationK015createdAtUnixMs07updatedxyZ05media10settlementACs6UInt16V_SSs6UInt64VSSAA0dE4KindOAA0d10AddCommandR0OAA0de4FormG0VSgAA0D11OutboxStateOS2SSgA2USayAA0de5MediaG0VGAA0d19OperationSettlementG0VSgtcfc","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15createdAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4formAA0de4FormG0VSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4kindAA0dE4KindOvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5mediaSayAA0de5MediaG0VGvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5stateAA0D11OutboxStateOvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV7draftIdSSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO6lockedyA2CmF","target":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO8unlockedyA2CmF","target":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12cancellationAA0d12CancellationF0Ovp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12satisfactionAA0D17RelaySatisfactionOvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersion9relayUrls12satisfaction22deliveryDeadlineUnixMs12cancellationACs6UInt16V_SaySSGAA0D17RelaySatisfactionOs6UInt64VAA0d12CancellationF0Otcfc","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV22deliveryDeadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV9relayUrlsSaySSGvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11allAcceptedyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11anyAcceptedyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12allDeliveredyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12anyDeliveredyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV10writeStateSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersion8relayUrl6access9readState05writeN00M17LastAttemptUnixMs0opqrS00m4NextqrS00otqrS0ACs6UInt16V_S4Ss6UInt64VSgA3Qtcfc","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readLastAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readNextAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeLastAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeNextAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV6accessSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV8relayUrlSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV9readStateSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5mediayA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5relayyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5todayyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO6draftsyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7initialyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7profileyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8identityyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8settingsyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO9lifecycleyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersion3app3sdk0K6ClosedACs6UInt16V_AA0d3AppfG0VAA0d5BuildfG0VSbtcfc","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3appAA0d3AppfG0Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3sdkAA0d5BuildfG0Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV9sdkClosedSbvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13authorProfileAA0diG0VSgvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13parentEventIdSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersion7eventId15authorPublicKey7content15authoredAtUnixS7profile4root011parentEventK00L7ProfileACs6UInt16V_S3Ss6UInt64VAA0deW0OS2SAA0dwG0VSgtcfc","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authoredAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4rootSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7contentSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7eventIdSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7profileAA0dE7ProfileOvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV10artifactIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV11operationIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersion7draftId16expectedRevision5media20authorizationContent0O14CreatedAtUnixS0O15LifetimeSeconds09operationK008artifactK0015signingDeadlineS2Ms0X12Cancellation08verifiedrsZ007updatedrsZ0ACs6UInt16V_SSs6UInt64VAA0d13PreparedMediaG0VSSA2TS2SAtA0D18CancellationPolicyOA2Ttcfc","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16verifiedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV19signingCancellationAA0dI6PolicyOvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV20authorizationContentSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV21signingDeadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV27authorizationCreatedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV28authorizationLifetimeSecondss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV5mediaAA0d13PreparedMediaG0Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV7draftIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO16localCooperativeyA2CmF","target":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO24preservePublishedRequestyA2CmF","target":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4pastyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4soldyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO6activeyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV10generations6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersion2id5label9relayUrls8locality15followedAuthors10generationACs6UInt16V_S2SSaySSGSSSgAMs6UInt64Vtcfc","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV15followedAuthorsSaySSGvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2idSSvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV5labelSSvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV8localitySSSgvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV9relayUrlsSaySSGvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersion15opaqueReference14fileDescriptor6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_SSs6UInt64VS2SAQs6UInt32VASSSAQtcfc","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV14fileDescriptors6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15opaqueReferenceSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15preparedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV3altSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6sha256SSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV9mediaTypeSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV10resultTypeAA0defI0Ovp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersion10resultType8stableId4card7profileACs6UInt16V_AA0defK0OSSAA0d9TodayCardG0VSgAA0d7ProfileG0VSgtcfc","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV4cardAA0d9TodayCardG0VSgvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV7profileAA0d7ProfileG0VSgvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV8stableIdSSvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC11unsubscribeyyF","target":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC8isActiveSbyF","target":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12sourceEventss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12visibleCardss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersion6update12sourceEvents12visibleCards8profiles13threadEntries17contentGeneration7changedACs6UInt16V_AA0dE16ProjectionUpdateOs6UInt64VA4QSbtcfc","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13threadEntriess6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV17contentGenerations6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV6updateAA0dE16ProjectionUpdateOvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV7changedSbvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV8profiless6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersion7draftId16expectedRevision5mediaACs6UInt16V_SSs6UInt64VAA0D18PreparedMediaInputVtcfc","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV5mediaAA0D18PreparedMediaInputVvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV7draftIdSSvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV11commandTypeAA0df7CommandJ0Ovp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersion8cardType07commandL0ACs6UInt16V_AA0d5TodayeL0OAA0df7CommandL0Otcfc","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV8cardTypeAA0d5TodayeJ0Ovp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO11beginImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO12cancelImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO14completeImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO4lockyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6selectyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6unlockyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO7recoveryA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV04lockF0AA0de4LockF0Ovp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV06activeE2IdSSSgvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV10identitiesSayAA0d8SettingseG0VGvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersion10identities06activeE2Id04lockF0022pendingImportOperationL0ACs6UInt16V_SayAA0d8SettingseG0VGSSSgAA0de4LockF0OANtcfc","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV24pendingImportOperationIdSSSgvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10deliveryIdSSSgvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV11operationIdSSvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersion11operationId8revision15authorPublicKey5state08deliveryK015createdAtUnixMs07updatedstU010settlementACs6UInt16V_SSs6UInt64VSSAA0D11OutboxStateOSSSgA2pA0d19OperationSettlementG0VSgtcfc","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15createdAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV5stateAA0D11OutboxStateOvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV10sourceKinds6UInt32Vvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11replacementAA0d8AddDraftF0Vvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersion11commandType6cardId011sourceEventM00N4Kind0N7Address15authorPublicKey11replacementACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSSAA0dw5DraftF0Vtcfc","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceAddressSSSgvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceEventIdSSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV10generations6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersion10generation4kind8entityIdACs6UInt16V_s6UInt64VAA0deF4KindOSSSgtcfc","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV8entityIdSSSgvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersion7backend8openMode8shutdown9integrityACs6UInt16V_S4Stcfc","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV7backendSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8openModeSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8shutdownSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV9integritySSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7offlineyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7partialyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO8completeyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersion15opaqueReference3url6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_S4Ss6UInt64Vs6UInt32VASSSAQtcfc","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15opaqueReferenceSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15preparedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3altSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3urlSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6sha256SSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV9mediaTypeSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersion9publicKey20hostSignerConfiguredACs6UInt16V_SSSbtcfc","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV20hostSignerConfiguredSbvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV12verificationAA0dE17VerificationStateOvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersion20referenceFingerprint3url6sha2569mediaType5width6height8byteSize3alt12verificationACs6UInt16V_S3SSgAPs6UInt32VSgASs6UInt64VSgApA0dE17VerificationStateOtcfc","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV20referenceFingerprintSSvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3altSSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3urlSSvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV5widths6UInt32VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6heights6UInt32VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6sha256SSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV8byteSizes6UInt64VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV9mediaTypeSSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersion8revision8identity6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d13IdentityStateG0VAA0d16RelayPreferencesG0VAA0d7BlossomwG0VAA0d5Mediao6PolicyG0VAA0d5LocalqzG0Vtcfc","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8identityAA0d13IdentityStateG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV10targetKinds6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV12targetCardIdSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersion11commandType12targetCardId0l5EventN00L4Kind0L7Address6reasonACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSStcfc","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetAddressSSSgvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetEventIdSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV6reasonSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV10retractionAA0d5DraftfG0VSgvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11operationIdSSvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11replacementAA0d5DraftfG0Vvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersion11operationId11replacement10retraction6policy5phaseACs6UInt16V_SSAA0d5DraftfG0VAMSgAA0dE6PolicyOAA0dE5PhaseOtcfc","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV5phaseAA0dE5PhaseOvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV6policyAA0dE6PolicyOvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10errorPhaseSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10httpStatuss6UInt16VSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersion6origin17configFingerprint5state19lastSuccessfulState17transportSecurity16observedAtUnixMs10httpStatus9errorCode011serverErrorZ00Y5Phase9retryable14possibleOrphan8attemptsACs6UInt16V_S5Ss6UInt64VSgASSgSSSgA2XS2bs5UInt8Vtcfc","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV14possibleOrphanSbvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV15serverErrorCodeSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV16observedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17configFingerprintSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17transportSecuritySSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV19lastSuccessfulStateSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV5stateSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV6originSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV8attemptss5UInt8Vvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9errorCodeSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9retryableSbvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV10identityIdSSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersion4kind11operationId08identityL09publicKeyACs6UInt16V_AA0deF4KindOSSSgA2Mtcfc","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV9publicKeySSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO8readOnlyyA2CmF","target":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO9readWriteyA2CmF","target":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersion3url6accessACs6UInt16V_SSAA0de6AccessF0Otcfc","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV3urlSSvp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV6accessAA0de6AccessF0Ovp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersion16expectedRevision6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d16RelayPreferencesG0VAA0d7BlossomuG0VAA0d5Mediao6PolicyG0VAA0d5LocalqxG0Vtcfc","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO11incrementalyA2CmF","target":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO7rebuildyA2CmF","target":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO11unavailableyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO4busyyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO5readyyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO6lockedyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV10totalBytess6UInt64Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13artifactCounts6UInt32Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersion13artifactCount10totalBytes24configurationFingerprintACs6UInt16V_s6UInt32Vs6UInt64VSSSgtcfc","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV24configurationFingerprintSSSgvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO11unavailableyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO6failedyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO7pendingyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO8verifiedyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersion11environment9endpointsACs6UInt16V_AA0D24MobileNetworkEnvironmentOSayAA0de10PreferenceG0VGtcfc","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV9endpointsSayAA0de10PreferenceG0VGvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersion2id9publicKeyACs6UInt16V_S2Stcfc","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2idSSvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO11unavailableyA2CmF","target":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO9availableyA2CmF","target":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersion7profile5state16readAvailability05writeN06relaysACs6UInt16V_S4SSayAA0defH0VGtcfc","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV16readAvailabilitySSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV17writeAvailabilitySSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV5stateSSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV6relaysSayAA0defH0VGvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV7profileSSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO12publicWebPkiyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO19loopbackDevelopmentyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO25privateNetworkDevelopmentyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13primaryOriginSSvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersion11environment9authority13primaryOrigin15fallbackOriginsACs6UInt16V_AA0D24MobileNetworkEnvironmentOAA0dE19AuthorityPreferenceOSSSaySSGtcfc","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV15fallbackOriginsSaySSGvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV9authorityAA0dE19AuthorityPreferenceOvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersion15mediaCacheBytes0kL9ArtifactsACs6UInt16V_s6UInt64Vs6UInt32Vtcfc","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV15mediaCacheBytess6UInt64Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV19mediaCacheArtifactss6UInt32Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersion22allowCellularDownloads0kL7Uploads0K19BackgroundTransfersACs6UInt16V_S3btcfc","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV20allowCellularUploadsSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV22allowCellularDownloadsSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV24allowBackgroundTransfersSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO14physicalDeviceyA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO6publicyA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO9simulatoryA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersion8settings22runtimeRestartRequired013outboxRequeueM0022mediaCacheInvalidationM0ACs6UInt16V_AA0d6MobileeG0VS3btcfc","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV21outboxRequeueRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV22runtimeRestartRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV30mediaCacheInvalidationRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV8settingsAA0d6MobileeG0Vvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13deliveryPlanss6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13indeterminates6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersion9artifacts6signed8admitted7pending9retryable13indeterminate14failedTerminal9cancelled13deliveryPlans0S9Satisfied0S7Pending0S9Retryable0S9Exhausted0s6FailedQ00S9CancelledACs6UInt16V_A15Utcfc","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV14failedTerminals6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV15deliveryPendings6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryCancelleds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryExhausteds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryRetryables6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliverySatisfieds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV22deliveryFailedTerminals6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV6signeds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV7pendings6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV8admitteds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9artifactss6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9cancelleds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9retryables6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO12publicWebPkiyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO19loopbackDevelopmentyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO25privateNetworkDevelopmentyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13primaryOriginSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersion8hostKind17endpointAuthority13primaryOrigin15fallbackOrigins17configFingerprintACs6UInt16V_S3SSaySSGSStcfc","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV15fallbackOriginsSaySSGvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17configFingerprintSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17endpointAuthoritySSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV8hostKindSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV11displayNameSSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersion4name11displayName5about7picture6banner5nip053botACs6UInt16V_S2SSgAnA0d13PreparedMediaG0VSgAqNSbSgtcfc","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV3botSbSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4nameSSvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5aboutSSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5nip05SSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV6bannerAA0d13PreparedMediaG0VSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV7pictureAA0d13PreparedMediaG0VSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV10artifactIdSSvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersion11operationId08artifactL08byteSize9mediaType5width6heightACs6UInt16V_SSSgSSs6UInt64VSSs6UInt32VAQtcfc","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV9mediaTypeSSvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A10HostSignerP12signerStatusAA0eG6RecordVyYaF","target":"s:19RadrootsKitBindings0A10HostSignerP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A10HostSignerP4sign7requestAA0D13SigningResultVAA0dH7RequestV_tYaF","target":"s:19RadrootsKitBindings0A10HostSignerP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeObserverP8onChange6changeyAA03FfidG6RecordV_tF","target":"s:19RadrootsKitBindings0A15RuntimeObserverP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12phase1Search7context5query5limit9asOfUnixSSayAA03FfiG12ResultRecordVGAA0n12LocalNetworkP0V_SSs6UInt16Vs6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12probeBlossomAA03FfiG14EvidenceRecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12uptimeMilliss5Int64VyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14identityStatusAA011FfiIdentityG6RecordVyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14phase1SettingsAA09FfiMobileG6RecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14sdkRelayStatusAA03FfigH12ReportRecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0s3AddH5InputVs6UInt64VAOSgAOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SyncToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfigH6RecordVAA0o12LocalNetworkP0V_s6UInt16Vs6UInt64VSgSSSgtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffig4HostI0O_AA0pg8EndpointK0OSSSaySSGtKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1AddSchemasSayAA03FfiG12SchemaRecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1DraftHeads5limitSayAA03FfiG12StatusRecordVGs6UInt16V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAA0rg6PolicyT0VALtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16sdkStorageStatusAA03FfigH6RecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAKtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1DraftStatus7draftIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1LocalNetwork7contextAA03FfigH6RecordVAG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1RefreshToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18sdkBlossomEvidenceAA03FfigH6RecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18setAppInfoPlatform8platform8bundleId7version11buildNumber0N3ShaySSSg_A4JtF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CancelProfile11operationId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CardAddParitySayAA03FfighI6RecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1ProfileStatus11operationIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedH14ArtifactRecordVAA0m12LocalNetworkP0V_SSAA0mH9OperationCtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiL12StatusRecordVAA0phL5InputV_SSSgs6UInt64VSgtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1AdvanceProfile11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1CancelRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1RevisionStatus11operationIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configureDeviceRelays08writableH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configurePublicRelays08writableH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1AdvanceRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1ReplaceSettings5inputAA03FfiH16TransitionRecordVAA0jghL0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiI12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1MediaCacheStatus7contextAA03FfighI6RecordVAA0k12LocalNetworkL0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1UploadDraftMedia5inputAA03FfiH12StatusRecordVAA0k7BlossomG5InputV_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfihI5InputV_s6UInt64VtKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP23sdkBlossomConfigurationAA03FfigH6RecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP24configureSimulatorRelays08loopbackH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP24phase1SaveRevisionIntent5inputAA03FfiH12StatusRecordVAA0kh5InputM0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveProfileMetadata5inputAA03FfiH12StatusRecordVAA0khi5InputM0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistednO2MsAA03FfiI12StatusRecordVSS_AA0rhI5InputVs6UInt64VANtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0mhiP0VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0l7BlossomgJ0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP27phase1VerifiedMediaArtifact7context10artifactIdAA03FfighI6RecordVSgAA0m12LocalNetworkN0V_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP4infoAA03FfiD10InfoRecordVyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8infoJsonSSyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8phase1Me7context9asOfUnixSAA03FfiG6RecordVAA0l12LocalNetworkM0V_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8shutdownAA17FfiShutdownRecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11isCancelledSbyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11operationIdSSyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP6cancelyyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP11unsubscribeyyF","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP8isActiveSbyF","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"}],"schema":"radroots.swift-api-snapshot.v1","symbols":[{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uniffiEnsureRadrootsMobileFfiInitialized"},{"kind":"text","spelling":"()"}],"kind":"swift.func","path":["uniffiEnsureRadrootsMobileFfiInitialized()"],"precise":"s:19RadrootsKitBindings012uniffiEnsureA20MobileFfiInitializedyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uniffiForeignFutureHandleCountRadrootsMobileCore"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Si","spelling":"Int"}],"kind":"swift.func","path":["uniffiForeignFutureHandleCountRadrootsMobileCore()"],"precise":"s:19RadrootsKitBindings030uniffiForeignFutureHandleCountA10MobileCoreSiyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsHostSigner"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsHostSigner"],"precise":"s:19RadrootsKitBindings0A10HostSignerP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"}],"kind":"swift.method","path":["RadrootsHostSigner","signerStatus()"],"precise":"s:19RadrootsKitBindings0A10HostSignerP12signerStatusAA0eG6RecordVyYaF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sign"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"request"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"}],"kind":"swift.method","path":["RadrootsHostSigner","sign(request:)"],"precise":"s:19RadrootsKitBindings0A10HostSignerP4sign7requestAA0D13SigningResultVAA0dH7RequestV_tYaF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsErrorRecord"}],"kind":"swift.struct","path":["RadrootsErrorRecord"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["RadrootsErrorRecord","operationId"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"safeMessage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","safeMessage"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV11safeMessageSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"capabilityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["RadrootsErrorRecord","capabilityId"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV12capabilityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"code"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"category"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveryActions"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"capabilityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"safeMessage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["RadrootsErrorRecord","init(schemaVersion:code:category:retryable:recoveryActions:operationId:capabilityId:safeMessage:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersion4code8category9retryable15recoveryActions11operationId010capabilityN011safeMessageACs6UInt16V_S2SSbSaySSGSSSgAOSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["RadrootsErrorRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"recoveryActions"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["RadrootsErrorRecord","recoveryActions"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV15recoveryActionsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["RadrootsErrorRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"code"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","code"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV4codeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["RadrootsErrorRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"category"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","category"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV8categorySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["RadrootsErrorRecord","retryable"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV9retryableSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsRuntimeObserver"],"precise":"s:19RadrootsKitBindings0A15RuntimeObserverP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"onChange"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"change"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["RadrootsRuntimeObserver","onChange(change:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeObserverP8onChange6changeyAA03FfidG6RecordV_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntimeProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsRuntimeProtocol"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Search"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"query"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Search(context:query:limit:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12phase1Search7context5query5limit9asOfUnixSSayAA03FfiG12ResultRecordVGAA0n12LocalNetworkP0V_SSs6UInt16Vs6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"probeBlossom"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","probeBlossom()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12probeBlossomAA03FfiG14EvidenceRecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","uptimeMillis()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12uptimeMilliss5Int64VyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","identityStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14identityStatusAA011FfiIdentityG6RecordVyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Settings"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Settings()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14phase1SettingsAA09FfiMobileG6RecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkRelayStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkRelayStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14sdkRelayStatusAA03FfigH12ReportRecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveDraft(draftId:input:authoredAtUnixS:expectedRevision:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0s3AddH5InputVs6UInt64VAOSgAOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SyncToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SyncToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SyncToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1TodayPage"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1TodayPage(context:limit:asOfUnixS:cursor:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfigH6RecordVAA0o12LocalNetworkP0V_s6UInt16Vs6UInt64VSgSSSgtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkCapabilities"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkCapabilities()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureBlossom"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBlossomHostKindO","spelling":"FfiBlossomHostKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","spelling":"FfiBlossomEndpointAuthority"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureBlossom(hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffig4HostI0O_AA0pg8EndpointK0OSSSaySSGtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AddSchemas"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AddSchemas()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1AddSchemasSayAA03FfiG12SchemaRecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftHeads"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1DraftHeads(limit:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1DraftHeads5limitSayAA03FfiG12StatusRecordVGs6UInt16V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"queuedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1QueueDraft(draftId:expectedRevision:policy:queuedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAA0rg6PolicyT0VALtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkStorageStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkStorageStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16sdkStorageStatusAA03FfigH6RecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"subscribeChanges"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"observer"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A15RuntimeObserverP","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","spelling":"FfiSubscriptionHandle"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","subscribeChanges(observer:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelledAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelDraft(draftId:expectedRevision:cancelledAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAKtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1DraftStatus(draftId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1DraftStatus7draftIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1LocalNetwork"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1LocalNetwork(context:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1LocalNetwork7contextAA03FfigH6RecordVAG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RefreshToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RefreshToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1RefreshToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomEvidence"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkBlossomEvidence()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18sdkBlossomEvidenceAA03FfigH6RecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"setAppInfoPlatform"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","setAppInfoPlatform(platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18setAppInfoPlatform8platform8bundleId7version11buildNumber0N3ShaySSSg_A4JtF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelProfile(operationId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CancelProfile11operationId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CardAddParity"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CardAddParity()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CardAddParitySayAA03FfighI6RecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ProfileStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ProfileStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1ProfileStatus11operationIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RetrieveMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiMediaOperationC","spelling":"FfiMediaOperation"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RetrieveMedia(context:referenceFingerprint:operation:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedH14ArtifactRecordVAA0m12LocalNetworkP0V_SSAA0mH9OperationCtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"existingDraftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveAddIntent(input:existingDraftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiL12StatusRecordVAA0phL5InputV_SSSgs6UInt64VSgtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceProfile(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1AdvanceProfile11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1CancelRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1QueueAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RevisionStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RevisionStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1RevisionStatus11operationIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureDeviceRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureDeviceRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configureDeviceRelays08writableH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurePublicRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configurePublicRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configurePublicRelays08writableH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1AdvanceRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ReplaceSettings"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ReplaceSettings(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1ReplaceSettings5inputAA03FfiH16TransitionRecordVAA0jghL0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SignQueuedDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SignQueuedDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiI12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1MediaCacheStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1MediaCacheStatus(context:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1MediaCacheStatus7contextAA03FfighI6RecordVAA0k12LocalNetworkL0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RecoverAddIntent(draftId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadDraftMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1UploadDraftMedia(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1UploadDraftMedia5inputAA03FfiH12StatusRecordVAA0k7BlossomG5InputV_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ValidateAddDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ValidateAddDraft(input:authoredAtUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfihI5InputV_s6UInt64VtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverDraftQueue"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveredAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RecoverDraftQueue(draftId:recoveredAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomConfiguration"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkBlossomConfiguration()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP23sdkBlossomConfigurationAA03FfigH6RecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureSimulatorRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"loopbackRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureSimulatorRelays(loopbackRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP24configureSimulatorRelays08loopbackH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRevisionIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveRevisionIntent(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP24phase1SaveRevisionIntent5inputAA03FfiH12StatusRecordVAA0kh5InputM0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveProfileMetadata"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveProfileMetadata(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveProfileMetadata5inputAA03FfiH12StatusRecordVAA0khi5InputM0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRetractionDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveRetractionDraft(draftId:input:authoredAtUnixS:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistednO2MsAA03FfiI12StatusRecordVSS_AA0rhI5InputVs6UInt64VANtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ApplyIdentityCommand"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"command"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ApplyIdentityCommand(expectedRevision:command:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0mhiP0VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadAddMediaIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1UploadAddMediaIntent(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0l7BlossomgJ0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1VerifiedMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1VerifiedMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP27phase1VerifiedMediaArtifact7context10artifactIdAA03FfighI6RecordVSgAA0m12LocalNetworkN0V_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1InvalidateMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaConfiguration"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1InvalidateMediaConfiguration(context:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"info"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","info()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP4infoAA03FfiD10InfoRecordVyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"infoJson"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","infoJson()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8infoJsonSSyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Me"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Me(context:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8phase1Me7context9asOfUnixSAA03FfiG6RecordVAA0l12LocalNetworkM0V_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","shutdown()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8shutdownAA17FfiShutdownRecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntime"}],"kind":"swift.class","path":["RadrootsRuntime"],"precise":"s:19RadrootsKitBindings0A7RuntimeC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Search"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"query"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Search(context:query:limit:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12phase1Search7context5query5limit9asOfUnixSSayAA03FfiF12ResultRecordVGAA0m12LocalNetworkO0V_SSs6UInt16Vs6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"probeBlossom"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.method","path":["RadrootsRuntime","probeBlossom()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12probeBlossomAA03FfiF14EvidenceRecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.method","path":["RadrootsRuntime","uptimeMillis()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12uptimeMilliss5Int64VyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","identityStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14identityStatusAA011FfiIdentityF6RecordVyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Settings"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Settings()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14phase1SettingsAA09FfiMobileF6RecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkRelayStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkRelayStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14sdkRelayStatusAA03FfifG12ReportRecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"withHostSigner"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"applicationSupportDirectory"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKeyHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationCreatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"protectedData"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","spelling":"ProtectedDataAvailability"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostSigner"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A10HostSignerP","spelling":"RadrootsHostSigner"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A7RuntimeC","spelling":"RadrootsRuntime"}],"kind":"swift.type.method","path":["RadrootsRuntime","withHostSigner(applicationSupportDirectory:publicKeyHex:sourceGenerationHex:sourceGenerationCreatedAtUnixMs:protectedData:hostSigner:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14withHostSigner27applicationSupportDirectory12publicKeyHex016sourceGenerationM00nO15CreatedAtUnixMs13protectedData04hostG0ACSS_S2Ss6UInt64VAA09ProtectedU12AvailabilityOAA0afG0_ptYaKFZ"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveDraft(draftId:input:authoredAtUnixS:expectedRevision:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedlM2MsAA03FfiG12StatusRecordVSS_AA0r3AddG5InputVs6UInt64VAOSgAOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SyncToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SyncToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1SyncToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1TodayPage"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1TodayPage(context:limit:asOfUnixS:cursor:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfifG6RecordVAA0n12LocalNetworkO0V_s6UInt16Vs6UInt64VSgSSSgtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkCapabilities"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","sdkCapabilities()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureBlossom"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBlossomHostKindO","spelling":"FfiBlossomHostKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","spelling":"FfiBlossomEndpointAuthority"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureBlossom(hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffif4HostH0O_AA0of8EndpointJ0OSSSaySSGtKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AddSchemas"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AddSchemas()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1AddSchemasSayAA03FfiF12SchemaRecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftHeads"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1DraftHeads(limit:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1DraftHeads5limitSayAA03FfiF12StatusRecordVGs6UInt16V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"queuedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1QueueDraft(draftId:expectedRevision:policy:queuedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAA0qf6PolicyS0VALtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkStorageStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","sdkStorageStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16sdkStorageStatusAA03FfifG6RecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"subscribeChanges"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"observer"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A15RuntimeObserverP","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","spelling":"FfiSubscriptionHandle"}],"kind":"swift.method","path":["RadrootsRuntime","subscribeChanges(observer:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelledAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelDraft(draftId:expectedRevision:cancelledAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAKtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1DraftStatus(draftId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC17phase1DraftStatus7draftIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1LocalNetwork"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1LocalNetwork(context:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1LocalNetwork7contextAA03FfifG6RecordVAG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RefreshToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RefreshToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1RefreshToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomEvidence"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkBlossomEvidence()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18sdkBlossomEvidenceAA03FfifG6RecordVSgyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"setAppInfoPlatform"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.method","path":["RadrootsRuntime","setAppInfoPlatform(platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18setAppInfoPlatform8platform8bundleId7version11buildNumber0M3ShaySSSg_A4JtF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelProfile(operationId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1CancelProfile11operationId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CardAddParity"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CardAddParity()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1CardAddParitySayAA03FfifgH6RecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ProfileStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ProfileStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1ProfileStatus11operationIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RetrieveMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiMediaOperationC","spelling":"FfiMediaOperation"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RetrieveMedia(context:referenceFingerprint:operation:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedG14ArtifactRecordVAA0l12LocalNetworkO0V_SSAA0lG9OperationCtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"existingDraftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveAddIntent(input:existingDraftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiK12StatusRecordVAA0ogK5InputV_SSSgs6UInt64VSgtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceProfile(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1AdvanceProfile11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1CancelRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1QueueAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RevisionStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RevisionStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1RevisionStatus11operationIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureDeviceRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureDeviceRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21configureDeviceRelays08writableG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurePublicRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configurePublicRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21configurePublicRelays08writableG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1AdvanceRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ReplaceSettings"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ReplaceSettings(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1ReplaceSettings5inputAA03FfiG16TransitionRecordVAA0ifgK0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SignQueuedDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SignQueuedDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1MediaCacheStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1MediaCacheStatus(context:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1MediaCacheStatus7contextAA03FfifgH6RecordVAA0j12LocalNetworkK0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RecoverAddIntent(draftId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadDraftMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1UploadDraftMedia(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1UploadDraftMedia5inputAA03FfiG12StatusRecordVAA0j7BlossomF5InputV_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ValidateAddDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ValidateAddDraft(input:authoredAtUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfigH5InputV_s6UInt64VtKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverDraftQueue"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveredAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RecoverDraftQueue(draftId:recoveredAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomConfiguration"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkBlossomConfiguration()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC23sdkBlossomConfigurationAA03FfifG6RecordVSgyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureSimulatorRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"loopbackRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureSimulatorRelays(loopbackRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC24configureSimulatorRelays08loopbackG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRevisionIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveRevisionIntent(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC24phase1SaveRevisionIntent5inputAA03FfiG12StatusRecordVAA0jg5InputL0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveProfileMetadata"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveProfileMetadata(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveProfileMetadata5inputAA03FfiG12StatusRecordVAA0jgh5InputL0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRetractionDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveRetractionDraft(draftId:input:authoredAtUnixS:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0qgH5InputVs6UInt64VANtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ApplyIdentityCommand"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"command"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ApplyIdentityCommand(expectedRevision:command:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0lghO0VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadAddMediaIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1UploadAddMediaIntent(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0k7BlossomfI0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"convenience"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"applicationSupportDirectory"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKeyHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationCreatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"protectedData"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","spelling":"ProtectedDataAvailability"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.init","path":["RadrootsRuntime","init(applicationSupportDirectory:publicKeyHex:sourceGenerationHex:sourceGenerationCreatedAtUnixMs:protectedData:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC27applicationSupportDirectory12publicKeyHex016sourceGenerationJ00kL15CreatedAtUnixMs13protectedDataACSS_S2Ss6UInt64VAA09ProtectedR12AvailabilityOtYaKcfc"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1VerifiedMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","phase1VerifiedMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC27phase1VerifiedMediaArtifact7context10artifactIdAA03FfifgH6RecordVSgAA0l12LocalNetworkM0V_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["RadrootsRuntime","phase1InvalidateMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaConfiguration"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1InvalidateMediaConfiguration(context:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"info"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.method","path":["RadrootsRuntime","info()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC4infoAA03FfiD10InfoRecordVyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"infoJson"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["RadrootsRuntime","infoJson()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8infoJsonSSyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Me"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Me(context:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8phase1Me7context9asOfUnixSAA03FfiF6RecordVAA0k12LocalNetworkL0V_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"}],"kind":"swift.method","path":["RadrootsRuntime","shutdown()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8shutdownAA17FfiShutdownRecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsAppError"}],"kind":"swift.enum","path":["RadrootsAppError"],"precise":"s:19RadrootsKitBindings0A8AppErrorO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorDescription"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"? { "},{"kind":"keyword","spelling":"get"},{"kind":"text","spelling":" }"}],"kind":"swift.property","path":["RadrootsAppError","errorDescription"],"precise":"s:19RadrootsKitBindings0A8AppErrorO16errorDescriptionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"Failure"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"report"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":")"}],"kind":"swift.enum.case","path":["RadrootsAppError","Failure(report:)"],"precise":"s:19RadrootsKitBindings0A8AppErrorO7FailureyAcA0aE6RecordV_tcACmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMeRecord"}],"kind":"swift.struct","path":["FfiMeRecord"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cards"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiMeRecord","init(schemaVersion:publicKey:profile:cards:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersion9publicKey7profile5cardsACs6UInt16V_SSAA0d7ProfileF0VSgSayAA0d9TodayCardF0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMeRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMeRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMeRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cards"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiMeRecord","cards"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV5cardsSayAA0d9TodayCardF0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMeRecord","profile"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV7profileAA0d7ProfileF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMeRecord","publicKey"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initLogging"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"dir"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"fileName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"isStdout"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["initLogging(dir:fileName:isStdout:)"],"precise":"s:19RadrootsKitBindings11initLogging3dir8fileName8isStdoutySSSg_AFSbSgtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftKind"}],"kind":"swift.enum","path":["FfiDraftKind"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retraction"}],"kind":"swift.enum.case","path":["FfiDraftKind","retraction"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO10retractionyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"add"}],"kind":"swift.enum.case","path":["FfiDraftKind","add"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO3addyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaStage"}],"kind":"swift.enum","path":["FfiMediaStage"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["FfiMediaStage","failed"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"}],"kind":"swift.enum.case","path":["FfiMediaStage","pending"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO7pendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphaned"}],"kind":"swift.enum.case","path":["FfiMediaStage","orphaned"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO8orphanedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verified"}],"kind":"swift.enum.case","path":["FfiMediaStage","verified"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO8verifiedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparing"}],"kind":"swift.enum.case","path":["FfiMediaStage","preparing"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO9preparingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uploading"}],"kind":"swift.enum.case","path":["FfiMediaStage","uploading"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO9uploadingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiOutboxState"}],"kind":"swift.enum","path":["FfiOutboxState"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"delivering"}],"kind":"swift.enum.case","path":["FfiOutboxState","delivering"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO10deliveringyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readyToSign"}],"kind":"swift.enum.case","path":["FfiOutboxState","readyToSign"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO11readyToSignyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaPreparing"}],"kind":"swift.enum.case","path":["FfiOutboxState","mediaPreparing"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaPreparingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaUploading"}],"kind":"swift.enum.case","path":["FfiOutboxState","mediaUploading"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaUploadingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partiallyDelivered"}],"kind":"swift.enum.case","path":["FfiOutboxState","partiallyDelivered"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO18partiallyDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draft"}],"kind":"swift.enum.case","path":["FfiOutboxState","draft"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO5draftyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"queued"}],"kind":"swift.enum.case","path":["FfiOutboxState","queued"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO6queuedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"}],"kind":"swift.enum.case","path":["FfiOutboxState","signed"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO6signedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signing"}],"kind":"swift.enum.case","path":["FfiOutboxState","signing"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO7signingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiOutboxState","complete"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"terminal"}],"kind":"swift.enum.case","path":["FfiOutboxState","terminal"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO8terminalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["FfiOutboxState","cancelled"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"}],"kind":"swift.enum.case","path":["FfiOutboxState","retryable"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO9retryableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddFieldKind"}],"kind":"swift.enum","path":["FfiAddFieldKind"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"multilineText"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","multilineText"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO13multilineTextyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"date"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","date"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO4dateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"text"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","text"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO4textyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","media"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO5mediayA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"choice"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","choice"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO6choiceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"decimal"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","decimal"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO7decimalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"dateTime"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","dateTime"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO8dateTimeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","location"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO8locationyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddDraftInput"}],"kind":"swift.struct","path":["FfiAddDraftInput"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","foodStatus"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","identifier"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV10identifierSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiAddDraftInput","commandType"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11commandTypeAA0de7CommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventTiming"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11eventTimingAA0d5EventI4KindOSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","priceAmount"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventEndDate"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV12eventEndDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventEndUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventTimezone"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventTimezoneSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiAddDraftInput","init(schemaVersion:commandType:content:identifier:title:summary:location:eventTiming:eventStartDate:eventEndDate:eventStartUnixS:eventEndUnixS:eventTimezone:priceAmount:currency:unit:quantity:foodPublishedAtUnixS:foodStatus:media:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0de7CommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0d13PreparedMediaG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddDraftInput","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventStartDate"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV14eventStartDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventStartUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddDraftInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddDraftInput","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","unit"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV4unitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddDraftInput","media"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV5mediaSayAA0d13PreparedMediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","title"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddDraftInput","content"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","summary"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV7summarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","currency"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8currencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","location"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","quantity"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAppInfoRecord"}],"kind":"swift.struct","path":["FfiAppInfoRecord"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shuttingDown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiAppInfoRecord","shuttingDown"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV12shuttingDownSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.property","path":["FfiAppInfoRecord","uptimeMillis"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV12uptimeMilliss5Int64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"build"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"startedUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"uptimeMillis"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"shuttingDown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAppInfoRecord","init(schemaVersion:build:startedUnixMs:uptimeMillis:shuttingDown:platform:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersion5build13startedUnixMs12uptimeMillis12shuttingDown8platformACs6UInt16V_AA0d5BuildfG0Vs5Int64VAOSbAA0de8PlatformG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAppInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"startedUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.property","path":["FfiAppInfoRecord","startedUnixMs"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13startedUnixMss5Int64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAppInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAppInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"build"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"}],"kind":"swift.property","path":["FfiAppInfoRecord","build"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV5buildAA0d5BuildfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppInfoRecord","platform"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV8platformAA0de8PlatformG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileRecord"}],"kind":"swift.struct","path":["FfiProfileRecord"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","displayName"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV11displayNameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"website"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"lightningAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileRecord","init(schemaVersion:authorPublicKey:name:displayName:about:picture:banner:nip05:website:lightningAddress:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersion15authorPublicKey4name11displayName5about7picture6banner5nip057website16lightningAddressACs6UInt16V_S2SSgA2pA0d14MediaReferenceF0VSgAs3Ptcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lightningAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","lightningAddress"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV16lightningAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","name"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV4nameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","about"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV5aboutSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","nip05"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV5nip05SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","banner"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV6bannerAA0d14MediaReferenceF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","picture"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV7pictureAA0d14MediaReferenceF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"website"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","website"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV7websiteSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionPhase"}],"kind":"swift.enum","path":["FfiRevisionPhase"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partialEffect"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","partialEffect"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO13partialEffectyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacementFailed"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","replacementFailed"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO17replacementFailedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retractionPending"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","retractionPending"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO17retractionPendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacementPending"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","replacementPending"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO18replacementPendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","complete"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","cancelled"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiThreadProfile"}],"kind":"swift.enum","path":["FfiThreadProfile"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"reply"}],"kind":"swift.enum.case","path":["FfiThreadProfile","reply"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO5replyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"comment"}],"kind":"swift.enum.case","path":["FfiThreadProfile","comment"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO7commentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiThreadProfile","profile"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deletion"}],"kind":"swift.enum.case","path":["FfiThreadProfile","deletion"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO8deletionyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayCardType"}],"kind":"swift.enum","path":["FfiTodayCardType"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"photoUpdate"}],"kind":"swift.enum.case","path":["FfiTodayCardType","photoUpdate"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO11photoUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodAvailability"}],"kind":"swift.enum.case","path":["FfiTodayCardType","foodAvailability"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO16foodAvailabilityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ask"}],"kind":"swift.enum.case","path":["FfiTodayCardType","ask"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO3askyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"event"}],"kind":"swift.enum.case","path":["FfiTodayCardType","event"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO5eventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"update"}],"kind":"swift.enum.case","path":["FfiTodayCardType","update"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO6updateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddCommandType"}],"kind":"swift.enum","path":["FfiAddCommandType"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createEvent"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createEvent"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO11createEventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createUpdate"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createUpdate"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO12createUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createPhotoUpdate"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createPhotoUpdate"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO17createPhotoUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createFoodAvailability"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createFoodAvailability"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO22createFoodAvailabilityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createAsk"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createAsk"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO9createAskyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddFieldRecord"}],"kind":"swift.struct","path":["FfiAddFieldRecord"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings15FfiAddFieldKindO","spelling":"FfiAddFieldKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"required"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"choices"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"maxBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAddFieldRecord","init(schemaVersion:id:label:kind:required:choices:maxBytes:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersion2id5label4kind8required7choices8maxBytesACs6UInt16V_S2SAA0deF4KindOSbSaySSGs6UInt64VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddFieldRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddFieldRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddFieldRecord","id"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddFieldRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings15FfiAddFieldKindO","spelling":"FfiAddFieldKind"}],"kind":"swift.property","path":["FfiAddFieldRecord","kind"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddFieldRecord","label"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"choices"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddFieldRecord","choices"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV7choicesSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"maxBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddFieldRecord","maxBytes"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxBytess6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"required"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiAddFieldRecord","required"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV8requiredSbvp"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaOperation"}],"kind":"swift.class","path":["FfiMediaOperation"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isCancelled"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiMediaOperation","isCancelled()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC11isCancelledSbyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["FfiMediaOperation","operationId()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC11operationIdSSyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancel"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiMediaOperation","cancel()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC6cancelyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"convenience"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.init","path":["FfiMediaOperation","init()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationCACyKcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionPolicy"}],"kind":"swift.enum","path":["FfiRevisionPolicy"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replaceThenRetract"}],"kind":"swift.enum.case","path":["FfiRevisionPolicy","replaceThenRetract"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO18replaceThenRetractyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"addressableReplacement"}],"kind":"swift.enum.case","path":["FfiRevisionPolicy","addressableReplacement"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO22addressableReplacementyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiShutdownRecord"}],"kind":"swift.struct","path":["FfiShutdownRecord"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alreadyClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiShutdownRecord","alreadyClosed"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13alreadyClosedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alreadyClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiShutdownRecord","init(schemaVersion:state:alreadyClosed:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersion5state13alreadyClosedACs6UInt16V_SSSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiShutdownRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiShutdownRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiShutdownRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiShutdownRecord","state"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningResult"}],"kind":"swift.struct","path":["HostSigningResult"],"precise":"s:19RadrootsKitBindings17HostSigningResultV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","operationId"],"precise":"s:19RadrootsKitBindings17HostSigningResultV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signatureHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["HostSigningResult","signatureHex"],"precise":"s:19RadrootsKitBindings17HostSigningResultV12signatureHexSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"outcome"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningOutcomeO","spelling":"HostSigningOutcome"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signatureHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"completedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["HostSigningResult","init(schemaVersion:outcome:operationId:signerRequestId:publicKey:purpose:signatureHex:completedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersion7outcome11operationId013signerRequestK09publicKey7purpose12signatureHex17completedAtUnixMsACs6UInt16V_AA0dE7OutcomeOS3SAA0dE7PurposeOSSSgs6UInt64Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["HostSigningResult","schemaVersion"],"precise":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","signerRequestId"],"precise":"s:19RadrootsKitBindings17HostSigningResultV15signerRequestIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"completedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningResult","completedAtUnixMs"],"precise":"s:19RadrootsKitBindings17HostSigningResultV17completedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["HostSigningResult","==(_:_:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["HostSigningResult","hash(into:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"outcome"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningOutcomeO","spelling":"HostSigningOutcome"}],"kind":"swift.property","path":["HostSigningResult","outcome"],"precise":"s:19RadrootsKitBindings17HostSigningResultV7outcomeAA0dE7OutcomeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"}],"kind":"swift.property","path":["HostSigningResult","purpose"],"precise":"s:19RadrootsKitBindings17HostSigningResultV7purposeAA0dE7PurposeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","publicKey"],"precise":"s:19RadrootsKitBindings17HostSigningResultV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initLoggingStdout"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["initLoggingStdout()"],"precise":"s:19RadrootsKitBindings17initLoggingStdoutyyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddSchemaRecord"}],"kind":"swift.struct","path":["FfiAddSchemaRecord"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiAddSchemaRecord","commandType"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV11commandTypeAA0de7CommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fields"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiAddSchemaRecord","init(schemaVersion:commandType:label:fields:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersion11commandType5label6fieldsACs6UInt16V_AA0de7CommandK0OSSSayAA0de5FieldG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddSchemaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddSchemaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddSchemaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddSchemaRecord","label"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fields"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddSchemaRecord","fields"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV6fieldsSayAA0de5FieldG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomHostKind"}],"kind":"swift.enum","path":["FfiBlossomHostKind"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"physicalDevice"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","physicalDevice"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO14physicalDeviceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"native"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","native"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO6nativeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"simulator"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","simulator"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO9simulatoryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBuildInfoRecord"}],"kind":"swift.struct","path":["FfiBuildInfoRecord"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"libRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","libRevision"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV11libRevisionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"crateVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBuildInfoRecord","crateVersion"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV12crateVersionSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildTimeUnix"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","buildTimeUnix"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13buildTimeUnixs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"crateName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"crateVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"rustc"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"libRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"consumerRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildTimeUnix"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiBuildInfoRecord","init(schemaVersion:crateName:crateVersion:rustc:profile:libRevision:consumerRevision:buildTimeUnix:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersion9crateName0jI05rustc7profile11libRevision08consumerO013buildTimeUnixACs6UInt16V_S3SSgA3Ns6UInt64VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBuildInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"consumerRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","consumerRevision"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV16consumerRevisionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBuildInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBuildInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rustc"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","rustc"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV5rustcSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","profile"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV7profileSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"crateName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBuildInfoRecord","crateName"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV9crateNameSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftFormRecord"}],"kind":"swift.struct","path":["FfiDraftFormRecord"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","foodStatus"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","identifier"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV10identifierSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiDraftFormRecord","commandType"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventTiming"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11eventTimingAA0d5EventI4KindOSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","priceAmount"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventEndDate"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV12eventEndDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventEndUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventTimezone"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventTimezoneSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiDraftFormRecord","init(schemaVersion:commandType:content:identifier:title:summary:location:eventTiming:eventStartDate:eventEndDate:eventStartUnixS:eventEndUnixS:eventTimezone:priceAmount:currency:unit:quantity:foodPublishedAtUnixS:foodStatus:media:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0d10AddCommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0def5MediaG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftFormRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventStartDate"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV14eventStartDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventStartUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftFormRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftFormRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","unit"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV4unitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiDraftFormRecord","media"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV5mediaSayAA0def5MediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","title"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormRecord","content"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","summary"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV7summarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","currency"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8currencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","location"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","quantity"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiEventTimingKind"}],"kind":"swift.enum","path":["FfiEventTimingKind"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"timed"}],"kind":"swift.enum.case","path":["FfiEventTimingKind","timed"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO5timedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allDay"}],"kind":"swift.enum.case","path":["FfiEventTimingKind","allDay"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO6allDayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayCardRecord"}],"kind":"swift.struct","path":["FfiTodayCardRecord"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contractId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","contractId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10contractIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodStatus"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rankDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","rankDigest"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10rankDigestSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contextRank"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiTodayCardRecord","contextRank"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11contextRanks5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodSummary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodSummary"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11foodSummarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceAmount"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","authorProfile"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13authorProfileAA0diG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","eventEndUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceCurrency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceCurrency"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13priceCurrencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"contractId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"effectiveAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceCurrency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceUnit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodSummary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"contextRank"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"inclusionReason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"lifecycle"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","spelling":"FfiCardLifecycleState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"rankDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"thread"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"localOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"localOperationState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiTodayCardRecord","init(schemaVersion:cardId:cardType:sourceEventId:sourceAddress:authorPublicKey:contractId:title:content:authoredAtUnixS:effectiveAtUnixS:eventStartUnixS:eventEndUnixS:location:priceAmount:priceCurrency:priceUnit:quantity:foodSummary:foodPublishedAtUnixS:foodStatus:contextRank:inclusionReason:media:lifecycle:rankDigest:authorProfile:thread:localOperationId:localOperationState:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersion6cardId0J4Type011sourceEventK00M7Address15authorPublicKey08contractK05title7content15authoredAtUnixS09effectivewX1S010eventStartX1S0z3EndX1S8location11priceAmount13priceCurrency9priceUnit8quantity11foodSummary013foodPublishedwX1S10foodStatus11contextRank15inclusionReason5media9lifecycle10rankDigest0P7Profile6thread014localOperationK019localOperationStateACs6UInt16V_SSAA0defL0OS2SSgS2SA10_SSs6UInt64VA12_A12_SgA13_A10_A10_A10_A10_A10_A10_A13_A10_s5UInt8VSSSayAA0d14MediaReferenceG0VGAA0dF14LifecycleStateOA10_AA0d7ProfileG0VSgSayAA0d11ThreadEntryG0VGA10_A10_tcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayCardRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","sourceAddress"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","sourceEventId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayCardRecord","authoredAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authoredAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","eventStartUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"inclusionReason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","inclusionReason"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15inclusionReasonSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"effectiveAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayCardRecord","effectiveAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV16effectiveAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","localOperationId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV16localOperationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localOperationState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","localOperationState"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV19localOperationStateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayCardRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayCardRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayCardRecord","media"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV5mediaSayAA0d14MediaReferenceG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","title"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","cardId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"thread"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayCardRecord","thread"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV6threadSayAA0d11ThreadEntryG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","content"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"}],"kind":"swift.property","path":["FfiTodayCardRecord","cardType"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8cardTypeAA0defI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","location"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","quantity"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lifecycle"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","spelling":"FfiCardLifecycleState"}],"kind":"swift.property","path":["FfiTodayCardRecord","lifecycle"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV9lifecycleAA0dF14LifecycleStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceUnit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceUnit"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV9priceUnitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayPageRecord"}],"kind":"swift.struct","path":["FfiTodayPageRecord"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nextCursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayPageRecord","nextCursor"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV10nextCursorSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"items"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"nextCursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiTodayPageRecord","init(schemaVersion:asOfUnixS:items:nextCursor:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersion9asOfUnixS5items10nextCursorACs6UInt16V_s6UInt64VSayAA0de4CardG0VGSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayPageRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayPageRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayPageRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"items"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayPageRecord","items"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV5itemsSayAA0de4CardG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayPageRecord","asOfUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV9asOfUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodaySyncRecord"}],"kind":"swift.struct","path":["FfiTodaySyncRecord"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"projection"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.property","path":["FfiTodaySyncRecord","projection"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10projectionAA0de7RefreshG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","spelling":"FfiTodayRelaySyncState"}],"kind":"swift.property","path":["FfiTodaySyncRecord","relayState"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10relayStateAA0de5RelayfI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pagesFetched"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodaySyncRecord","pagesFetched"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV12pagesFetcheds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","spelling":"FfiTodayRelaySyncState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pagesFetched"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsObserved"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsAdmitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsRejected"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"projection"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiTodaySyncRecord","init(schemaVersion:relayState:pagesFetched:eventsObserved:eventsAdmitted:eventsRejected:projection:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersion10relayState12pagesFetched14eventsObserved0N8Admitted0N8Rejected10projectionACs6UInt16V_AA0de5RelayfK0OALs6UInt64VA2pA0de7RefreshG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodaySyncRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsAdmitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsAdmitted"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsAdmitteds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsObserved"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsObserved"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsObserveds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsRejected"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsRejected"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsRejecteds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodaySyncRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodaySyncRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningOutcome"}],"kind":"swift.enum","path":["HostSigningOutcome"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"invalidated"}],"kind":"swift.enum.case","path":["HostSigningOutcome","invalidated"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO11invalidatedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["HostSigningOutcome","unavailable"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["HostSigningOutcome","failed"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["HostSigningOutcome","locked"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"}],"kind":"swift.enum.case","path":["HostSigningOutcome","signed"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6signedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rejected"}],"kind":"swift.enum.case","path":["HostSigningOutcome","rejected"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO8rejectedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"timedOut"}],"kind":"swift.enum.case","path":["HostSigningOutcome","timedOut"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO8timedOutyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["HostSigningOutcome","cancelled"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningPurpose"}],"kind":"swift.enum","path":["HostSigningPurpose"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nostrEvent"}],"kind":"swift.enum.case","path":["HostSigningPurpose","nostrEvent"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO10nostrEventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossomUpload"}],"kind":"swift.enum.case","path":["HostSigningPurpose","blossomUpload"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO13blossomUploadyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningRequest"}],"kind":"swift.struct","path":["HostSigningRequest"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","signerRequestId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV06signerF2IdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","artifactId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","operationId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventIdDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"}],"kind":"swift.property","path":["HostSigningRequest","eventIdDigest"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13eventIdDigest10Foundation4DataVvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","operationKind"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13operationKindSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventIdDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"createdAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"tags"},{"kind":"text","spelling":": [["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]], "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["HostSigningRequest","init(schemaVersion:operationKind:operationId:artifactId:signerRequestId:publicKey:purpose:deadlineUnixMs:eventIdDigest:expectedEventId:createdAtUnixS:kind:tags:content:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersion13operationKind0I2Id08artifactK006signerfK09publicKey7purpose14deadlineUnixMs05eventK6Digest013expectedEventK009createdAtR1S4kind4tags7contentACs6UInt16V_S5SAA0dE7PurposeOs6UInt64V10Foundation4DataVSSAWs6UInt32VSaySaySSGGSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["HostSigningRequest","schemaVersion"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningRequest","createdAtUnixS"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV14createdAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningRequest","deadlineUnixMs"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV14deadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","expectedEventId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV15expectedEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["HostSigningRequest","==(_:_:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["HostSigningRequest","hash(into:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["HostSigningRequest","kind"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4kinds6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"tags"},{"kind":"text","spelling":": [["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]]"}],"kind":"swift.property","path":["HostSigningRequest","tags"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4tagsSaySaySSGGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","content"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"}],"kind":"swift.property","path":["HostSigningRequest","purpose"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV7purposeAA0dE7PurposeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","publicKey"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"SignerStatusRecord"}],"kind":"swift.struct","path":["SignerStatusRecord"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","spelling":"SignerAvailabilityRecord"}],"kind":"swift.property","path":["SignerStatusRecord","availability"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV12availabilityAA0d12AvailabilityF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","spelling":"SignerAvailabilityRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["SignerStatusRecord","init(schemaVersion:availability:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersion12availabilityACs6UInt16V_AA0d12AvailabilityF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["SignerStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["SignerStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["SignerStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCapabilityRecord"}],"kind":"swift.struct","path":["FfiCapabilityRecord"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiCapabilityRecord","configured"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV10configuredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","availability"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV12availabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"compiled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"maturity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiCapabilityRecord","init(schemaVersion:id:compiled:configured:availability:maturity:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersion2id8compiled10configured12availability8maturityACs6UInt16V_SSS2bS2Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiCapabilityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiCapabilityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","id"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiCapabilityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"compiled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiCapabilityRecord","compiled"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV8compiledSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"maturity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","maturity"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV8maturitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftMediaRecord"}],"kind":"swift.struct","path":["FfiDraftMediaRecord"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"stage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings13FfiMediaStageO","spelling":"FfiMediaStage"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"uploadAttempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"orphanReasonCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"orphanRecordedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiDraftMediaRecord","init(schemaVersion:url:stage:uploadAttempts:verifiedAtUnixMs:possibleOrphan:orphanReasonCode:orphanRecordedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersion3url5stage14uploadAttempts16verifiedAtUnixMs14possibleOrphan16orphanReasonCode0t8RecordedopQ0ACs6UInt16V_SSAA0dF5StageOs5UInt8Vs6UInt64VSgSbSSSgATtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftMediaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiDraftMediaRecord","possibleOrphan"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14possibleOrphanSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uploadAttempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiDraftMediaRecord","uploadAttempts"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14uploadAttemptss5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphanReasonCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","orphanReasonCode"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16orphanReasonCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","verifiedAtUnixMs"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16verifiedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphanRecordedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","orphanRecordedAtUnixMs"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV22orphanRecordedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftMediaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftMediaRecord","url"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftMediaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"stage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings13FfiMediaStageO","spelling":"FfiMediaStage"}],"kind":"swift.property","path":["FfiDraftMediaRecord","stage"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV5stageAA0dF5StageOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSearchResultType"}],"kind":"swift.enum","path":["FfiSearchResultType"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"card"}],"kind":"swift.enum.case","path":["FfiSearchResultType","card"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO4cardyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiSearchResultType","profile"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAppPlatformRecord"}],"kind":"swift.struct","path":["FfiAppPlatformRecord"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","buildNumber"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV11buildNumberSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAppPlatformRecord","init(schemaVersion:platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersion8platform8bundleId7version11buildNumber0N3ShaACs6UInt16V_SSSgA4Ltcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAppPlatformRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAppPlatformRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAppPlatformRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","version"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV7versionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","buildSha"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8buildShaSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","bundleId"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8bundleIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","platform"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8platformSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftStatusRecord"}],"kind":"swift.struct","path":["FfiDraftStatusRecord"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","settlement"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiDraftStatusRecord","commandType"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings12FfiDraftKindO","spelling":"FfiDraftKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"form"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiDraftStatusRecord","init(schemaVersion:draftId:revision:authorPublicKey:kind:commandType:form:state:cardId:operationId:createdAtUnixMs:updatedAtUnixMs:media:settlement:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersion7draftId8revision15authorPublicKey4kind11commandType4form5state04cardK009operationK015createdAtUnixMs07updatedxyZ05media10settlementACs6UInt16V_SSs6UInt64VSSAA0dE4KindOAA0d10AddCommandR0OAA0de4FormG0VSgAA0D11OutboxStateOS2SSgA2USayAA0de5MediaG0VGAA0d19OperationSettlementG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","createdAtUnixMs"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15createdAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"form"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","form"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4formAA0de4FormG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings12FfiDraftKindO","spelling":"FfiDraftKind"}],"kind":"swift.property","path":["FfiDraftStatusRecord","kind"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4kindAA0dE4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiDraftStatusRecord","media"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5mediaSayAA0de5MediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"}],"kind":"swift.property","path":["FfiDraftStatusRecord","state"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5stateAA0D11OutboxStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","cardId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","draftId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","revision"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityLockState"}],"kind":"swift.enum","path":["FfiIdentityLockState"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["FfiIdentityLockState","locked"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unlocked"}],"kind":"swift.enum.case","path":["FfiIdentityLockState","unlocked"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO8unlockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiQueuePolicyRecord"}],"kind":"swift.struct","path":["FfiQueuePolicyRecord"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","cancellation"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12cancellationAA0d12CancellationF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"satisfaction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","spelling":"FfiRelaySatisfaction"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","satisfaction"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12satisfactionAA0D17RelaySatisfactionOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"satisfaction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","spelling":"FfiRelaySatisfaction"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiQueuePolicyRecord","init(schemaVersion:relayUrls:satisfaction:deliveryDeadlineUnixMs:cancellation:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersion9relayUrls12satisfaction22deliveryDeadlineUnixMs12cancellationACs6UInt16V_SaySSGAA0D17RelaySatisfactionOs6UInt64VAA0d12CancellationF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","deliveryDeadlineUnixMs"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV22deliveryDeadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiQueuePolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiQueuePolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","relayUrls"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV9relayUrlsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelaySatisfaction"}],"kind":"swift.enum","path":["FfiRelaySatisfaction"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allAccepted"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","allAccepted"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11allAcceptedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"anyAccepted"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","anyAccepted"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11anyAcceptedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allDelivered"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","allDelivered"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12allDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"anyDelivered"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","anyDelivered"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12anyDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayStatusRecord"}],"kind":"swift.struct","path":["FfiRelayStatusRecord"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeState"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV10writeStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"writeState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"writeLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"readNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"writeNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiRelayStatusRecord","init(schemaVersion:relayUrl:access:readState:writeState:readLastAttemptUnixMs:writeLastAttemptUnixMs:readNextAttemptUnixMs:writeNextAttemptUnixMs:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersion8relayUrl6access9readState05writeN00M17LastAttemptUnixMs0opqrS00m4NextqrS00otqrS0ACs6UInt16V_S4Ss6UInt64VSgA3Qtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readLastAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readLastAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readNextAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readNextAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeLastAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeLastAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeNextAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeNextAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","access"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV6accessSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","relayUrl"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV8relayUrlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readState"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV9readStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeChangeKind"}],"kind":"swift.enum","path":["FfiRuntimeChangeKind"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","media"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5mediayA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relay"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","relay"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5relayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"today"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","today"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5todayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"drafts"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","drafts"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO6draftsyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initial"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","initial"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7initialyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","profile"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identity"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","identity"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8identityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settings"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","settings"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8settingsyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lifecycle"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","lifecycle"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO9lifecycleyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.struct","path":["FfiRuntimeInfoRecord"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"app"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sdk"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sdkClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRuntimeInfoRecord","init(schemaVersion:app:sdk:sdkClosed:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersion3app3sdk0K6ClosedACs6UInt16V_AA0d3AppfG0VAA0d5BuildfG0VSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRuntimeInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"app"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","app"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3appAA0d3AppfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdk"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","sdk"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3sdkAA0d5BuildfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRuntimeInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","sdkClosed"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV9sdkClosedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiThreadEntryRecord"}],"kind":"swift.struct","path":["FfiThreadEntryRecord"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authorProfile"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13authorProfileAA0diG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"parentEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","parentEventId"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13parentEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiThreadProfileO","spelling":"FfiThreadProfile"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"root"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"parentEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiThreadEntryRecord","init(schemaVersion:eventId:authorPublicKey:content:authoredAtUnixS:profile:root:parentEventId:authorProfile:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersion7eventId15authorPublicKey7content15authoredAtUnixS7profile4root011parentEventK00L7ProfileACs6UInt16V_S3Ss6UInt64VAA0deW0OS2SAA0dwG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiThreadEntryRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authoredAtUnixS"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authoredAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiThreadEntryRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiThreadEntryRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"root"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","root"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4rootSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","content"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","eventId"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7eventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiThreadProfileO","spelling":"FfiThreadProfile"}],"kind":"swift.property","path":["FfiThreadEntryRecord","profile"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7profileAA0dE7ProfileOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomUploadInput"}],"kind":"swift.struct","path":["FfiBlossomUploadInput"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","artifactId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","operationId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationContent"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationCreatedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationLifetimeSeconds"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signingDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signingCancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomUploadInput","init(schemaVersion:draftId:expectedRevision:media:authorizationContent:authorizationCreatedAtUnixS:authorizationLifetimeSeconds:operationId:artifactId:signingDeadlineUnixMs:signingCancellation:verifiedAtUnixMs:updatedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersion7draftId16expectedRevision5media20authorizationContent0O14CreatedAtUnixS0O15LifetimeSeconds09operationK008artifactK0015signingDeadlineS2Ms0X12Cancellation08verifiedrsZ007updatedrsZ0ACs6UInt16V_SSs6UInt64VAA0d13PreparedMediaG0VSSA2TS2SAtA0D18CancellationPolicyOA2Ttcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomUploadInput","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","expectedRevision"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","verifiedAtUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16verifiedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signingCancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"}],"kind":"swift.property","path":["FfiBlossomUploadInput","signingCancellation"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV19signingCancellationAA0dI6PolicyOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationContent"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationContent"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV20authorizationContentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signingDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","signingDeadlineUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV21signingDeadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationCreatedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationCreatedAtUnixS"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV27authorizationCreatedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationLifetimeSeconds"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationLifetimeSeconds"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV28authorizationLifetimeSecondss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomUploadInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomUploadInput","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"}],"kind":"swift.property","path":["FfiBlossomUploadInput","media"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV5mediaAA0d13PreparedMediaG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","draftId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCancellationPolicy"}],"kind":"swift.enum","path":["FfiCancellationPolicy"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localCooperative"}],"kind":"swift.enum.case","path":["FfiCancellationPolicy","localCooperative"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO16localCooperativeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preservePublishedRequest"}],"kind":"swift.enum.case","path":["FfiCancellationPolicy","preservePublishedRequest"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO24preservePublishedRequestyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCardLifecycleState"}],"kind":"swift.enum","path":["FfiCardLifecycleState"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"past"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","past"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4pastyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sold"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","sold"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4soldyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"active"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","active"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO6activeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.struct","path":["FfiLocalNetworkRecord"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","generation"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV10generations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"locality"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"followedAuthors"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiLocalNetworkRecord","init(schemaVersion:id:label:relayUrls:locality:followedAuthors:generation:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersion2id5label9relayUrls8locality15followedAuthors10generationACs6UInt16V_S2SSaySSGSSSgAMs6UInt64Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"followedAuthors"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","followedAuthors"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV15followedAuthorsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiLocalNetworkRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","id"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiLocalNetworkRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","label"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locality"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","locality"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV8localitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","relayUrls"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV9relayUrlsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiPreparedMediaInput"}],"kind":"swift.struct","path":["FfiPreparedMediaInput"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fileDescriptor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiPreparedMediaInput","init(schemaVersion:opaqueReference:fileDescriptor:sha256:mediaType:byteSize:width:height:alt:preparedAtUnixS:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersion15opaqueReference14fileDescriptor6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_SSs6UInt64VS2SAQs6UInt32VASSSAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiPreparedMediaInput","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fileDescriptor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","fileDescriptor"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV14fileDescriptors6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","opaqueReference"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15opaqueReferenceSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","preparedAtUnixS"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15preparedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiPreparedMediaInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","alt"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV3altSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiPreparedMediaInput","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiPreparedMediaInput","width"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiPreparedMediaInput","height"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","sha256"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6sha256SSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","byteSize"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","mediaType"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSearchResultRecord"}],"kind":"swift.struct","path":["FfiSearchResultRecord"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"resultType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiSearchResultTypeO","spelling":"FfiSearchResultType"}],"kind":"swift.property","path":["FfiSearchResultRecord","resultType"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV10resultTypeAA0defI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"resultType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiSearchResultTypeO","spelling":"FfiSearchResultType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"stableId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"card"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiSearchResultRecord","init(schemaVersion:resultType:stableId:card:profile:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersion10resultType8stableId4card7profileACs6UInt16V_AA0defK0OSSAA0d9TodayCardG0VSgAA0d7ProfileG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSearchResultRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSearchResultRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"card"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiSearchResultRecord","card"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV4cardAA0d9TodayCardG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSearchResultRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiSearchResultRecord","profile"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV7profileAA0d7ProfileG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"stableId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSearchResultRecord","stableId"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV8stableIdSSvp"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSubscriptionHandle"}],"kind":"swift.class","path":["FfiSubscriptionHandle"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unsubscribe"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiSubscriptionHandle","unsubscribe()"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC11unsubscribeyyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isActive"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiSubscriptionHandle","isActive()"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC8isActiveSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.struct","path":["FfiTodayRefreshRecord"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEvents"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","sourceEvents"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12sourceEventss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"visibleCards"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","visibleCards"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12visibleCardss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEvents"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"visibleCards"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profiles"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"threadEntries"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"contentGeneration"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"changed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiTodayRefreshRecord","init(schemaVersion:update:sourceEvents:visibleCards:profiles:threadEntries:contentGeneration:changed:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersion6update12sourceEvents12visibleCards8profiles13threadEntries17contentGeneration7changedACs6UInt16V_AA0dE16ProjectionUpdateOs6UInt64VA4QSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"threadEntries"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","threadEntries"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13threadEntriess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contentGeneration"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","contentGeneration"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV17contentGenerations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayRefreshRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayRefreshRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","update"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV6updateAA0dE16ProjectionUpdateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"changed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","changed"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV7changedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profiles"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","profiles"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV8profiless6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomUploadIntent"}],"kind":"swift.struct","path":["FfiBlossomUploadIntent"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomUploadIntent","init(schemaVersion:draftId:expectedRevision:media:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersion7draftId16expectedRevision5mediaACs6UInt16V_SSs6UInt64VAA0D18PreparedMediaInputVtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","expectedRevision"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomUploadIntent","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomUploadIntent","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","media"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV5mediaAA0D18PreparedMediaInputVvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","draftId"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCardAddParityRecord"}],"kind":"swift.struct","path":["FfiCardAddParityRecord"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiCardAddParityRecord","commandType"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV11commandTypeAA0df7CommandJ0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiCardAddParityRecord","init(schemaVersion:cardType:commandType:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersion8cardType07commandL0ACs6UInt16V_AA0d5TodayeL0OAA0df7CommandL0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiCardAddParityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiCardAddParityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiCardAddParityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"}],"kind":"swift.property","path":["FfiCardAddParityRecord","cardType"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV8cardTypeAA0d5TodayeJ0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityCommandKind"}],"kind":"swift.enum","path":["FfiIdentityCommandKind"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"beginImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","beginImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO11beginImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","cancelImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO12cancelImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"completeImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","completeImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO14completeImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lock"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","lock"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO4lockyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"select"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","select"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6selectyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unlock"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","unlock"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6unlockyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"recover"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","recover"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO7recoveryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityStateRecord"}],"kind":"swift.struct","path":["FfiIdentityStateRecord"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lockState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiIdentityLockStateO","spelling":"FfiIdentityLockState"}],"kind":"swift.property","path":["FfiIdentityStateRecord","lockState"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV04lockF0AA0de4LockF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"activeIdentityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityStateRecord","activeIdentityId"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV06activeE2IdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identities"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiIdentityStateRecord","identities"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV10identitiesSayAA0d8SettingseG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identities"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"activeIdentityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"lockState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiIdentityLockStateO","spelling":"FfiIdentityLockState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pendingImportOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiIdentityStateRecord","init(schemaVersion:identities:activeIdentityId:lockState:pendingImportOperationId:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersion10identities06activeE2Id04lockF0022pendingImportOperationL0ACs6UInt16V_SayAA0d8SettingseG0VGSSSgAA0de4LockF0OANtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityStateRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pendingImportOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityStateRecord","pendingImportOperationId"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV24pendingImportOperationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityStateRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityStateRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileStatusRecord"}],"kind":"swift.struct","path":["FfiProfileStatusRecord"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileStatusRecord","deliveryId"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10deliveryIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileStatusRecord","settlement"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileStatusRecord","init(schemaVersion:operationId:revision:authorPublicKey:state:deliveryId:createdAtUnixMs:updatedAtUnixMs:settlement:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersion11operationId8revision15authorPublicKey5state08deliveryK015createdAtUnixMs07updatedstU010settlementACs6UInt16V_SSs6UInt64VSSAA0D11OutboxStateOSSSgA2pA0d19OperationSettlementG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileStatusRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","createdAtUnixMs"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15createdAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"}],"kind":"swift.property","path":["FfiProfileStatusRecord","state"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV5stateAA0D11OutboxStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","revision"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionInputRecord"}],"kind":"swift.struct","path":["FfiRevisionInputRecord"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiRevisionInputRecord","sourceKind"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV10sourceKinds6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiRevisionInputRecord","commandType"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"}],"kind":"swift.property","path":["FfiRevisionInputRecord","replacement"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11replacementAA0d8AddDraftF0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRevisionInputRecord","init(schemaVersion:commandType:cardId:sourceEventId:sourceKind:sourceAddress:authorPublicKey:replacement:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersion11commandType6cardId011sourceEventM00N4Kind0N7Address15authorPublicKey11replacementACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSSAA0dw5DraftF0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRevisionInputRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRevisionInputRecord","sourceAddress"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","sourceEventId"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRevisionInputRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRevisionInputRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","cardId"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeChangeRecord"}],"kind":"swift.struct","path":["FfiRuntimeChangeRecord"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","generation"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV10generations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","spelling":"FfiRuntimeChangeKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"entityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiRuntimeChangeRecord","init(schemaVersion:generation:kind:entityId:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersion10generation4kind8entityIdACs6UInt16V_s6UInt64VAA0deF4KindOSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRuntimeChangeRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRuntimeChangeRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","spelling":"FfiRuntimeChangeKind"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","kind"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"entityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","entityId"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV8entityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiStorageStatusRecord"}],"kind":"swift.struct","path":["FfiStorageStatusRecord"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"backend"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"openMode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"shutdown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"integrity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiStorageStatusRecord","init(schemaVersion:backend:openMode:shutdown:integrity:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersion7backend8openMode8shutdown9integrityACs6UInt16V_S4Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiStorageStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiStorageStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiStorageStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"backend"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","backend"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV7backendSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"openMode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","openMode"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8openModeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","shutdown"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8shutdownSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"integrity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","integrity"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV9integritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayRelaySyncState"}],"kind":"swift.enum","path":["FfiTodayRelaySyncState"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"offline"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","offline"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7offlineyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partial"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","partial"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7partialyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","complete"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftFormMediaRecord"}],"kind":"swift.struct","path":["FfiDraftFormMediaRecord"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiDraftFormMediaRecord","init(schemaVersion:opaqueReference:url:sha256:mediaType:byteSize:width:height:alt:preparedAtUnixS:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersion15opaqueReference3url6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_S4Ss6UInt64Vs6UInt32VASSSAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","opaqueReference"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15opaqueReferenceSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","preparedAtUnixS"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15preparedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftFormMediaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","alt"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3altSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","url"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftFormMediaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","width"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","height"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","sha256"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6sha256SSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","byteSize"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","mediaType"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.struct","path":["FfiIdentityStatusRecord"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostSignerConfigured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiIdentityStatusRecord","init(schemaVersion:publicKey:hostSignerConfigured:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersion9publicKey20hostSignerConfiguredACs6UInt16V_SSSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hostSignerConfigured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","hostSignerConfigured"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV20hostSignerConfiguredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","publicKey"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaReferenceRecord"}],"kind":"swift.struct","path":["FfiMediaReferenceRecord"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verification"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","spelling":"FfiMediaVerificationState"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","verification"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV12verificationAA0dE17VerificationStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"verification"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","spelling":"FfiMediaVerificationState"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMediaReferenceRecord","init(schemaVersion:referenceFingerprint:url:sha256:mediaType:width:height:byteSize:alt:verification:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersion20referenceFingerprint3url6sha2569mediaType5width6height8byteSize3alt12verificationACs6UInt16V_S3SSgAPs6UInt32VSgASs6UInt64VSgApA0dE17VerificationStateOtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","referenceFingerprint"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV20referenceFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaReferenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","alt"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3altSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","url"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaReferenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","width"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV5widths6UInt32VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","height"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6heights6UInt32VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","sha256"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6sha256SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","byteSize"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV8byteSizes6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","mediaType"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV9mediaTypeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.struct","path":["FfiMobileSettingsRecord"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","localStorage"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","mediaNetwork"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMobileSettingsRecord","init(schemaVersion:revision:identity:relays:blossom:mediaNetwork:localStorage:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersion8revision8identity6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d13IdentityStateG0VAA0d16RelayPreferencesG0VAA0d7BlossomwG0VAA0d5Mediao6PolicyG0VAA0d5LocalqzG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMobileSettingsRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMobileSettingsRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","relays"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","blossom"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","identity"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8identityAA0d13IdentityStateG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","revision"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRetractionDraftInput"}],"kind":"swift.struct","path":["FfiRetractionDraftInput"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetKind"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV10targetKinds6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiRetractionDraftInput","commandType"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetCardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetCardId"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV12targetCardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetCardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"reason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRetractionDraftInput","init(schemaVersion:commandType:targetCardId:targetEventId:targetKind:targetAddress:reason:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersion11commandType12targetCardId0l5EventN00L4Kind0L7Address6reasonACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRetractionDraftInput","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetAddress"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetEventId"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRetractionDraftInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRetractionDraftInput","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"reason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","reason"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV6reasonSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.struct","path":["FfiRevisionStatusRecord"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retraction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","retraction"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV10retractionAA0d5DraftfG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","replacement"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11replacementAA0d5DraftfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retraction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiRevisionPolicyO","spelling":"FfiRevisionPolicy"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"phase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiRevisionPhaseO","spelling":"FfiRevisionPhase"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRevisionStatusRecord","init(schemaVersion:operationId:replacement:retraction:policy:phase:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersion11operationId11replacement10retraction6policy5phaseACs6UInt16V_SSAA0d5DraftfG0VAMSgAA0dE6PolicyOAA0dE5PhaseOtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRevisionStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRevisionStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiRevisionPhaseO","spelling":"FfiRevisionPhase"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","phase"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV5phaseAA0dE5PhaseOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiRevisionPolicyO","spelling":"FfiRevisionPolicy"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","policy"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV6policyAA0dE6PolicyOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.struct","path":["FfiBlossomEvidenceRecord"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorPhase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","errorPhase"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10errorPhaseSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"httpStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","httpStatus"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10httpStatuss6UInt16VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"origin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"lastSuccessfulState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"transportSecurity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"observedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"httpStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"errorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"serverErrorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"errorPhase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"attempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomEvidenceRecord","init(schemaVersion:origin:configFingerprint:state:lastSuccessfulState:transportSecurity:observedAtUnixMs:httpStatus:errorCode:serverErrorCode:errorPhase:retryable:possibleOrphan:attempts:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersion6origin17configFingerprint5state19lastSuccessfulState17transportSecurity16observedAtUnixMs10httpStatus9errorCode011serverErrorZ00Y5Phase9retryable14possibleOrphan8attemptsACs6UInt16V_S5Ss6UInt64VSgASSgSSSgA2XS2bs5UInt8Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","possibleOrphan"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV14possibleOrphanSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"serverErrorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","serverErrorCode"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV15serverErrorCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"observedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","observedAtUnixMs"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV16observedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","configFingerprint"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17configFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"transportSecurity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","transportSecurity"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17transportSecuritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lastSuccessfulState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","lastSuccessfulState"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV19lastSuccessfulStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomEvidenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomEvidenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","state"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"origin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","origin"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV6originSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"attempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","attempts"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV8attemptss5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","errorCode"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9errorCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","retryable"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9retryableSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityCommandRecord"}],"kind":"swift.struct","path":["FfiIdentityCommandRecord"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","identityId"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV10identityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","operationId"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","spelling":"FfiIdentityCommandKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"identityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiIdentityCommandRecord","init(schemaVersion:kind:operationId:identityId:publicKey:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersion4kind11operationId08identityL09publicKeyACs6UInt16V_AA0deF4KindOSSSgA2Mtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityCommandRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityCommandRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","spelling":"FfiIdentityCommandKind"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","kind"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","publicKey"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV9publicKeySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayAccessPreference"}],"kind":"swift.enum","path":["FfiRelayAccessPreference"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readOnly"}],"kind":"swift.enum.case","path":["FfiRelayAccessPreference","readOnly"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO8readOnlyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readWrite"}],"kind":"swift.enum.case","path":["FfiRelayAccessPreference","readWrite"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO9readWriteyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayPreferenceRecord"}],"kind":"swift.struct","path":["FfiRelayPreferenceRecord"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","spelling":"FfiRelayAccessPreference"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRelayPreferenceRecord","init(schemaVersion:url:access:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersion3url6accessACs6UInt16V_SSAA0de6AccessF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayPreferenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","url"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayPreferenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","spelling":"FfiRelayAccessPreference"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","access"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV6accessAA0de6AccessF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiReplaceSettingsRecord"}],"kind":"swift.struct","path":["FfiReplaceSettingsRecord"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","localStorage"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","mediaNetwork"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiReplaceSettingsRecord","init(schemaVersion:expectedRevision:relays:blossom:mediaNetwork:localStorage:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersion16expectedRevision6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d16RelayPreferencesG0VAA0d7BlossomuG0VAA0d5Mediao6PolicyG0VAA0d5LocalqxG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","expectedRevision"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiReplaceSettingsRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiReplaceSettingsRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","relays"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","blossom"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayProjectionUpdate"}],"kind":"swift.enum","path":["FfiTodayProjectionUpdate"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"incremental"}],"kind":"swift.enum.case","path":["FfiTodayProjectionUpdate","incremental"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO11incrementalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rebuild"}],"kind":"swift.enum.case","path":["FfiTodayProjectionUpdate","rebuild"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO7rebuildyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"SignerAvailabilityRecord"}],"kind":"swift.enum","path":["SignerAvailabilityRecord"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","unavailable"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"busy"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","busy"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO4busyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ready"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","ready"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO5readyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","locked"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.struct","path":["FfiMediaCacheStatusRecord"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"totalBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","totalBytes"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV10totalBytess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactCount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","artifactCount"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13artifactCounts6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactCount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"totalBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiMediaCacheStatusRecord","init(schemaVersion:artifactCount:totalBytes:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersion13artifactCount10totalBytes24configurationFingerprintACs6UInt16V_s6UInt32Vs6UInt64VSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","configurationFingerprint"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV24configurationFingerprintSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaCacheStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaCacheStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaOperationProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["FfiMediaOperationProtocol"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isCancelled"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","isCancelled()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11isCancelledSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","operationId()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11operationIdSSyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancel"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","cancel()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP6cancelyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaVerificationState"}],"kind":"swift.enum","path":["FfiMediaVerificationState"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","unavailable"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","failed"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","pending"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO7pendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verified"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","verified"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO8verifiedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.struct","path":["FfiRelayPreferencesRecord"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","environment"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpoints"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiRelayPreferencesRecord","init(schemaVersion:environment:endpoints:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersion11environment9endpointsACs6UInt16V_AA0D24MobileNetworkEnvironmentOSayAA0de10PreferenceG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayPreferencesRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayPreferencesRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"endpoints"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","endpoints"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV9endpointsSayAA0de10PreferenceG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSettingsIdentityRecord"}],"kind":"swift.struct","path":["FfiSettingsIdentityRecord"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiSettingsIdentityRecord","init(schemaVersion:id:publicKey:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersion2id9publicKeyACs6UInt16V_S2Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSettingsIdentityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","id"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSettingsIdentityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","publicKey"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ProtectedDataAvailability"}],"kind":"swift.enum","path":["ProtectedDataAvailability"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["ProtectedDataAvailability","unavailable"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"available"}],"kind":"swift.enum.case","path":["ProtectedDataAvailability","available"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO9availableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayStatusReportRecord"}],"kind":"swift.struct","path":["FfiRelayStatusReportRecord"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"writeAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiRelayStatusReportRecord","init(schemaVersion:profile:state:readAvailability:writeAvailability:relays:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersion7profile5state16readAvailability05writeN06relaysACs6UInt16V_S4SSayAA0defH0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","readAvailability"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV16readAvailabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","writeAvailability"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV17writeAvailabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayStatusReportRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayStatusReportRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","state"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","relays"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV6relaysSayAA0defH0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","profile"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV7profileSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomEndpointAuthority"}],"kind":"swift.enum","path":["FfiBlossomEndpointAuthority"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicWebPki"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","publicWebPki"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO12publicWebPkiyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"loopbackDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","loopbackDevelopment"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO19loopbackDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"privateNetworkDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","privateNetworkDevelopment"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO25privateNetworkDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.struct","path":["FfiBlossomPreferencesRecord"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","environment"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","primaryOrigin"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13primaryOriginSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","spelling":"FfiBlossomAuthorityPreference"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiBlossomPreferencesRecord","init(schemaVersion:environment:authority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersion11environment9authority13primaryOrigin15fallbackOriginsACs6UInt16V_AA0D24MobileNetworkEnvironmentOAA0dE19AuthorityPreferenceOSSSaySSGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","fallbackOrigins"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV15fallbackOriginsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomPreferencesRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomPreferencesRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","spelling":"FfiBlossomAuthorityPreference"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","authority"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV9authorityAA0dE19AuthorityPreferenceOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.struct","path":["FfiLocalStoragePolicyRecord"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheArtifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiLocalStoragePolicyRecord","init(schemaVersion:mediaCacheBytes:mediaCacheArtifacts:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersion15mediaCacheBytes0kL9ArtifactsACs6UInt16V_s6UInt64Vs6UInt32Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","mediaCacheBytes"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV15mediaCacheBytess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheArtifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","mediaCacheArtifacts"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV19mediaCacheArtifactss6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiLocalStoragePolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiLocalStoragePolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.struct","path":["FfiMediaNetworkPolicyRecord"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowCellularDownloads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowCellularUploads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowBackgroundTransfers"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMediaNetworkPolicyRecord","init(schemaVersion:allowCellularDownloads:allowCellularUploads:allowBackgroundTransfers:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersion22allowCellularDownloads0kL7Uploads0K19BackgroundTransfersACs6UInt16V_S3btcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowCellularUploads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowCellularUploads"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV20allowCellularUploadsSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowCellularDownloads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowCellularDownloads"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV22allowCellularDownloadsSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowBackgroundTransfers"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowBackgroundTransfers"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV24allowBackgroundTransfersSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaNetworkPolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaNetworkPolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.enum","path":["FfiMobileNetworkEnvironment"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"physicalDevice"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","physicalDevice"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO14physicalDeviceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"`public`"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","public"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO6publicyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"simulator"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","simulator"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO9simulatoryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.struct","path":["FfiSettingsTransitionRecord"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"settings"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"runtimeRestartRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"outboxRequeueRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheInvalidationRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiSettingsTransitionRecord","init(schemaVersion:settings:runtimeRestartRequired:outboxRequeueRequired:mediaCacheInvalidationRequired:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersion8settings22runtimeRestartRequired013outboxRequeueM0022mediaCacheInvalidationM0ACs6UInt16V_AA0d6MobileeG0VS3btcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"outboxRequeueRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","outboxRequeueRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV21outboxRequeueRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"runtimeRestartRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","runtimeRestartRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV22runtimeRestartRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSettingsTransitionRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheInvalidationRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","mediaCacheInvalidationRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV30mediaCacheInvalidationRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSettingsTransitionRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settings"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","settings"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV8settingsAA0d6MobileeG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiOperationSettlementRecord"}],"kind":"swift.struct","path":["FfiOperationSettlementRecord"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryPlans"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryPlans"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13deliveryPlanss6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"indeterminate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","indeterminate"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13indeterminates6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"admitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"indeterminate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"failedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryPlans"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliverySatisfied"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryPending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryRetryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryExhausted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryFailedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryCancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiOperationSettlementRecord","init(schemaVersion:artifacts:signed:admitted:pending:retryable:indeterminate:failedTerminal:cancelled:deliveryPlans:deliverySatisfied:deliveryPending:deliveryRetryable:deliveryExhausted:deliveryFailedTerminal:deliveryCancelled:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersion9artifacts6signed8admitted7pending9retryable13indeterminate14failedTerminal9cancelled13deliveryPlans0S9Satisfied0S7Pending0S9Retryable0S9Exhausted0s6FailedQ00S9CancelledACs6UInt16V_A15Utcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","failedTerminal"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV14failedTerminals6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryPending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryPending"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV15deliveryPendings6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryCancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryCancelled"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryCancelleds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryExhausted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryExhausted"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryExhausteds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryRetryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryRetryable"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryRetryables6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliverySatisfied"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliverySatisfied"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliverySatisfieds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryFailedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryFailedTerminal"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV22deliveryFailedTerminals6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiOperationSettlementRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiOperationSettlementRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","signed"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV6signeds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","pending"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV7pendings6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"admitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","admitted"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV8admitteds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","artifacts"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9artifactss6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","cancelled"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9cancelleds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","retryable"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9retryables6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomAuthorityPreference"}],"kind":"swift.enum","path":["FfiBlossomAuthorityPreference"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicWebPki"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","publicWebPki"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO12publicWebPkiyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"loopbackDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","loopbackDevelopment"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO19loopbackDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"privateNetworkDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","privateNetworkDevelopment"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO25privateNetworkDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomConfigurationRecord"}],"kind":"swift.struct","path":["FfiBlossomConfigurationRecord"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","primaryOrigin"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13primaryOriginSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomConfigurationRecord","init(schemaVersion:hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:configFingerprint:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersion8hostKind17endpointAuthority13primaryOrigin15fallbackOrigins17configFingerprintACs6UInt16V_S3SSaySSGSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","fallbackOrigins"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV15fallbackOriginsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","configFingerprint"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17configFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","endpointAuthority"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17endpointAuthoritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomConfigurationRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomConfigurationRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","hostKind"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV8hostKindSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileMetadataInputRecord"}],"kind":"swift.struct","path":["FfiProfileMetadataInputRecord"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","displayName"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV11displayNameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bot"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileMetadataInputRecord","init(schemaVersion:name:displayName:about:picture:banner:nip05:bot:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersion4name11displayName5about7picture6banner5nip053botACs6UInt16V_S2SSgAnA0d13PreparedMediaG0VSgAqNSbSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileMetadataInputRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"bot"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","bot"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV3botSbSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileMetadataInputRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","name"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4nameSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","about"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5aboutSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","nip05"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5nip05SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","banner"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV6bannerAA0d13PreparedMediaG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","picture"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV7pictureAA0d13PreparedMediaG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSubscriptionHandleProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["FfiSubscriptionHandleProtocol"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unsubscribe"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiSubscriptionHandleProtocol","unsubscribe()"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP11unsubscribeyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isActive"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiSubscriptionHandleProtocol","isActive()"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP8isActiveSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.struct","path":["FfiVerifiedMediaArtifactRecord"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","artifactId"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","operationId"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiVerifiedMediaArtifactRecord","init(schemaVersion:operationId:artifactId:byteSize:mediaType:width:height:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersion11operationId08artifactL08byteSize9mediaType5width6heightACs6UInt16V_SSSgSSs6UInt64VSSs6UInt32VAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiVerifiedMediaArtifactRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiVerifiedMediaArtifactRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","width"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","height"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","byteSize"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","mediaType"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logInfo"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logInfo(msg:)"],"precise":"s:19RadrootsKitBindings7logInfo3msgySS_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logDebug"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logDebug(msg:)"],"precise":"s:19RadrootsKitBindings8logDebug3msgySS_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logError"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logError(msg:)"],"precise":"s:19RadrootsKitBindings8logError3msgySS_tKF"}]} +{"generator":"Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)","module":{"name":"RadrootsKitBindings","platform":{"architecture":"arm64","environment":"simulator","operatingSystem":{"minimumVersion":{"major":18,"minor":0},"name":"ios"},"vendor":"apple"}},"relationships":[{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A10HostSignerP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A10HostSignerP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A11ErrorRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeObserverP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeObserverP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A7RuntimeC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:10Foundation14LocalizedErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s5ErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s5ErrorP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings0A8AppErrorO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings11FfiMeRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings12FfiDraftKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings13FfiMediaStageO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings14FfiOutboxStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings15FfiAddFieldKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAddDraftInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiProfileRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiThreadProfileO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiMediaOperationC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17FfiShutdownRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings17HostSigningResultV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiEventTimingKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningOutcomeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningPurposeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18HostSigningRequestV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings18SignerStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","target":"s:s9EscapableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:SH"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:SQ"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s16SendableMetatypeP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s8CopyableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s8SendableP"},{"kind":"conformsTo","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","target":"s:s9EscapableP"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV11safeMessageSSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV12capabilityIdSSSgvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersion4code8category9retryable15recoveryActions11operationId010capabilityN011safeMessageACs6UInt16V_S2SSbSaySSGSSSgAOSStcfc","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV15recoveryActionsSaySSGvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV4codeSSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV8categorySSvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A11ErrorRecordV9retryableSbvp","target":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12phase1Search7context5query5limit9asOfUnixSSayAA03FfiF12ResultRecordVGAA0m12LocalNetworkO0V_SSs6UInt16Vs6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12probeBlossomAA03FfiF14EvidenceRecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC12uptimeMilliss5Int64VyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14identityStatusAA011FfiIdentityF6RecordVyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14phase1SettingsAA09FfiMobileF6RecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14sdkRelayStatusAA03FfifG12ReportRecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC14withHostSigner27applicationSupportDirectory12publicKeyHex016sourceGenerationM00nO15CreatedAtUnixMs13protectedData04hostG0ACSS_S2Ss6UInt64VAA09ProtectedU12AvailabilityOAA0afG0_ptYaKFZ","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedlM2MsAA03FfiG12StatusRecordVSS_AA0r3AddG5InputVs6UInt64VAOSgAOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1SyncToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfifG6RecordVAA0n12LocalNetworkO0V_s6UInt16Vs6UInt64VSgSSSgtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffif4HostH0O_AA0of8EndpointJ0OSSSaySSGtKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1AddSchemasSayAA03FfiF12SchemaRecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1DraftHeads5limitSayAA03FfiF12StatusRecordVGs6UInt16V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAA0qf6PolicyS0VALtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16sdkStorageStatusAA03FfifG6RecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAKtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC17phase1DraftStatus7draftIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1LocalNetwork7contextAA03FfifG6RecordVAG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18phase1RefreshToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18sdkBlossomEvidenceAA03FfifG6RecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC18setAppInfoPlatform8platform8bundleId7version11buildNumber0M3ShaySSSg_A4JtF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1CancelProfile11operationId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1CardAddParitySayAA03FfifgH6RecordVGyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1ProfileStatus11operationIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedG14ArtifactRecordVAA0l12LocalNetworkO0V_SSAA0lG9OperationCtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiK12StatusRecordVAA0ogK5InputV_SSSgs6UInt64VSgtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1AdvanceProfile11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1CancelRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC20phase1RevisionStatus11operationIdAA03FfifG6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21configureDeviceRelays08writableG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21configurePublicRelays08writableG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1AdvanceRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1ReplaceSettings5inputAA03FfiG16TransitionRecordVAA0ifgK0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1MediaCacheStatus7contextAA03FfifgH6RecordVAA0j12LocalNetworkK0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1UploadDraftMedia5inputAA03FfiG12StatusRecordVAA0j7BlossomF5InputV_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfigH5InputV_s6UInt64VtKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC23sdkBlossomConfigurationAA03FfifG6RecordVSgyKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC24configureSimulatorRelays08loopbackG0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC24phase1SaveRevisionIntent5inputAA03FfiG12StatusRecordVAA0jg5InputL0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveProfileMetadata5inputAA03FfiG12StatusRecordVAA0jgh5InputL0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0qgH5InputVs6UInt64VANtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0lghO0VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0k7BlossomfI0V_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC27applicationSupportDirectory12publicKeyHex016sourceGenerationJ00kL15CreatedAtUnixMs13protectedDataACSS_S2Ss6UInt64VAA09ProtectedR12AvailabilityOtYaKcfc","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC27phase1VerifiedMediaArtifact7context10artifactIdAA03FfifgH6RecordVSgAA0l12LocalNetworkM0V_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC31phase1PrepareAddMediaBackground5inputAA24FfiNativeUploadJobRecordVAA0k7BlossomM6IntentV_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC32phase1CompleteAddMediaBackground5inputAA20FfiDraftStatusRecordVAA0K27NativeUploadCompletionInputV_tYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC4infoAA03FfiD10InfoRecordVyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8infoJsonSSyF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8phase1Me7context9asOfUnixSAA03FfiF6RecordVAA0k12LocalNetworkL0V_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A7RuntimeC8shutdownAA17FfiShutdownRecordVyYaKF","target":"s:19RadrootsKitBindings0A7RuntimeC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A8AppErrorO16errorDescriptionSSSgvp","target":"s:19RadrootsKitBindings0A8AppErrorO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings0A8AppErrorO7FailureyAcA0aE6RecordV_tcACmF","target":"s:19RadrootsKitBindings0A8AppErrorO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersion9publicKey7profile5cardsACs6UInt16V_SSAA0d7ProfileF0VSgSayAA0d9TodayCardF0VGtcfc","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV5cardsSayAA0d9TodayCardF0VGvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV7profileAA0d7ProfileF0VSgvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings11FfiMeRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings11FfiMeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings12FfiDraftKindO10retractionyA2CmF","target":"s:19RadrootsKitBindings12FfiDraftKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings12FfiDraftKindO3addyA2CmF","target":"s:19RadrootsKitBindings12FfiDraftKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO6failedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO7pendingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO8orphanedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO8verifiedyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO9preparingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings13FfiMediaStageO9uploadingyA2CmF","target":"s:19RadrootsKitBindings13FfiMediaStageO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO10deliveringyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO11readyToSignyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaPreparingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaUploadingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO18partiallyDeliveredyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO5draftyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO6queuedyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO6signedyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO7signingyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO8completeyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO8terminalyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO9cancelledyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings14FfiOutboxStateO9retryableyA2CmF","target":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO13multilineTextyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO4dateyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO4textyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO5mediayA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO6choiceyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO7decimalyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO8dateTimeyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings15FfiAddFieldKindO8locationyA2CmF","target":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV10identifierSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11commandTypeAA0de7CommandI0Ovp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11eventTimingAA0d5EventI4KindOSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV12eventEndDateSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventTimezoneSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0de7CommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0d13PreparedMediaG0VGtcfc","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV14eventStartDateSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV4unitSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV5mediaSayAA0d13PreparedMediaG0VGvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV5titleSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV7contentSSvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV7summarySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8currencySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8locationSSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAddDraftInputV8quantitySSSgvp","target":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV12shuttingDownSbvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV12uptimeMilliss5Int64Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersion5build13startedUnixMs12uptimeMillis12shuttingDown8platformACs6UInt16V_AA0d5BuildfG0Vs5Int64VAOSbAA0de8PlatformG0VSgtcfc","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV13startedUnixMss5Int64Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV5buildAA0d5BuildfG0Vvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiAppInfoRecordV8platformAA0de8PlatformG0VSgvp","target":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV11displayNameSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersion15authorPublicKey4name11displayName5about7picture6banner5nip057website16lightningAddressACs6UInt16V_S2SSgA2pA0d14MediaReferenceF0VSgAs3Ptcfc","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV16lightningAddressSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV4nameSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV5aboutSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV5nip05SSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV6bannerAA0d14MediaReferenceF0VSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV7pictureAA0d14MediaReferenceF0VSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiProfileRecordV7websiteSSSgvp","target":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO13partialEffectyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO17replacementFailedyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO17retractionPendingyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO18replacementPendingyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO8completeyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiRevisionPhaseO9cancelledyA2CmF","target":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO5replyyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO7commentyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO7profileyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiThreadProfileO8deletionyA2CmF","target":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO11photoUpdateyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO16foodAvailabilityyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO3askyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO5eventyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings16FfiTodayCardTypeO6updateyA2CmF","target":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO11createEventyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO12createUpdateyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO17createPhotoUpdateyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO22createFoodAvailabilityyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddCommandTypeO9createAskyA2CmF","target":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersion2id5label4kind8required7choices8maxBytes0O5ItemsACs6UInt16V_S2SAA0deF4KindOSbSaySSGs6UInt64VSgAMSgtcfc","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV2idSSvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV5labelSSvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV7choicesSaySSGvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxBytess6UInt64VSgvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxItemss6UInt16VSgvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiAddFieldRecordV8requiredSbvp","target":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC11isCancelledSbyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC11operationIdSSyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationC6cancelyyF","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiMediaOperationCACyKcfc","target":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO18replaceThenRetractyA2CmF","target":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiRevisionPolicyO22addressableReplacementyA2CmF","target":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13alreadyClosedSbvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersion5state13alreadyClosedACs6UInt16V_SSSbtcfc","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17FfiShutdownRecordV5stateSSvp","target":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV11operationIdSSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV12signatureHexSSSgvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersion7outcome11operationId013signerRequestK09publicKey7purpose12signatureHex17completedAtUnixMsACs6UInt16V_AA0dE7OutcomeOS3SAA0dE7PurposeOSSSgs6UInt64Vtcfc","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV15signerRequestIdSSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV17completedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV7outcomeAA0dE7OutcomeOvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV7purposeAA0dE7PurposeOvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings17HostSigningResultV9publicKeySSvp","target":"s:19RadrootsKitBindings17HostSigningResultV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV11commandTypeAA0de7CommandI0Ovp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersion11commandType5label6fieldsACs6UInt16V_AA0de7CommandK0OSSSayAA0de5FieldG0VGtcfc","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV5labelSSvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiAddSchemaRecordV6fieldsSayAA0de5FieldG0VGvp","target":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO14physicalDeviceyA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO6nativeyA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBlossomHostKindO9simulatoryA2CmF","target":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV11libRevisionSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV12crateVersionSSvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13buildTimeUnixs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersion9crateName0jI05rustc7profile11libRevision08consumerO013buildTimeUnixACs6UInt16V_S3SSgA3Ns6UInt64VSgtcfc","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV16consumerRevisionSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV5rustcSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV7profileSSSgvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiBuildInfoRecordV9crateNameSSvp","target":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV10identifierSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11eventTimingAA0d5EventI4KindOSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV12eventEndDateSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventTimezoneSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0d10AddCommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0def5MediaG0VGtcfc","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV14eventStartDateSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV4unitSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV5mediaSayAA0def5MediaG0VGvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV5titleSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV7contentSSvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV7summarySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8currencySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8locationSSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiDraftFormRecordV8quantitySSSgvp","target":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiEventTimingKindO5timedyA2CmF","target":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiEventTimingKindO6allDayyA2CmF","target":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10contractIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10foodStatusSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV10rankDigestSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11contextRanks5UInt8Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11foodSummarySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV11priceAmountSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13authorProfileAA0diG0VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13eventEndUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13priceCurrencySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersion6cardId0J4Type011sourceEventK00M7Address15authorPublicKey08contractK05title7content15authoredAtUnixS09effectivewX1S010eventStartX1S0z3EndX1S8location11priceAmount13priceCurrency9priceUnit8quantity11foodSummary013foodPublishedwX1S10foodStatus11contextRank15inclusionReason5media9lifecycle10rankDigest0P7Profile6thread014localOperationK019localOperationStateACs6UInt16V_SSAA0defL0OS2SSgS2SA10_SSs6UInt64VA12_A12_SgA13_A10_A10_A10_A10_A10_A10_A13_A10_s5UInt8VSSSayAA0d14MediaReferenceG0VGAA0dF14LifecycleStateOA10_AA0d7ProfileG0VSgSayAA0d11ThreadEntryG0VGA10_A10_tcfc","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceAddressSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceEventIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authoredAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15eventStartUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV15inclusionReasonSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV16effectiveAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV16localOperationIdSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV19localOperationStateSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV20foodPublishedAtUnixSs6UInt64VSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV5mediaSayAA0d14MediaReferenceG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV5titleSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV6threadSayAA0d11ThreadEntryG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV7contentSSvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8cardTypeAA0defI0Ovp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8locationSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV8quantitySSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV9lifecycleAA0dF14LifecycleStateOvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayCardRecordV9priceUnitSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV10nextCursorSSSgvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersion9asOfUnixS5items10nextCursorACs6UInt16V_s6UInt64VSayAA0de4CardG0VGSSSgtcfc","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV5itemsSayAA0de4CardG0VGvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodayPageRecordV9asOfUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10projectionAA0de7RefreshG0Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10relayStateAA0de5RelayfI0Ovp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV12pagesFetcheds6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersion10relayState12pagesFetched14eventsObserved0N8Admitted0N8Rejected10projectionACs6UInt16V_AA0de5RelayfK0OALs6UInt64VA2pA0de7RefreshG0Vtcfc","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsAdmitteds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsObserveds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsRejecteds6UInt64Vvp","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18FfiTodaySyncRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO11invalidatedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO11unavailableyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6failedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6lockedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO6signedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO8rejectedyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO8timedOutyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningOutcomeO9cancelledyA2CmF","target":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningPurposeO10nostrEventyA2CmF","target":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningPurposeO13blossomUploadyA2CmF","target":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV06signerF2IdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV10artifactIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV11operationIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13eventIdDigest10Foundation4DataVvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13operationKindSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersion13operationKind0I2Id08artifactK006signerfK09publicKey7purpose14deadlineUnixMs05eventK6Digest013expectedEventK009createdAtR1S4kind4tags7contentACs6UInt16V_S5SAA0dE7PurposeOs6UInt64V10Foundation4DataVSSAWs6UInt32VSaySaySSGGSStcfc","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV14createdAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV14deadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV15expectedEventIdSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4kinds6UInt32Vvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV4tagsSaySaySSGGvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV7contentSSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV7purposeAA0dE7PurposeOvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18HostSigningRequestV9publicKeySSvp","target":"s:19RadrootsKitBindings18HostSigningRequestV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV12availabilityAA0d12AvailabilityF0Ovp","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersion12availabilityACs6UInt16V_AA0d12AvailabilityF0Otcfc","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings18SignerStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV10configuredSbvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV12availabilitySSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersion2id8compiled10configured12availability8maturityACs6UInt16V_SSS2bS2Stcfc","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV2idSSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV8compiledSbvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiCapabilityRecordV8maturitySSvp","target":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersion3url5stage14uploadAttempts16verifiedAtUnixMs14possibleOrphan16orphanReasonCode0t8RecordedopQ0ACs6UInt16V_SSAA0dF5StageOs5UInt8Vs6UInt64VSgSbSSSgATtcfc","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14possibleOrphanSbvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14uploadAttemptss5UInt8Vvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16orphanReasonCodeSSSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16verifiedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV22orphanRecordedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV3urlSSvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiDraftMediaRecordV5stageAA0dF5StageOvp","target":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO4cardyA2CmF","target":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings19FfiSearchResultTypeO7profileyA2CmF","target":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV11buildNumberSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersion8platform8bundleId7version11buildNumber0N3ShaACs6UInt16V_SSSgA4Ltcfc","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV7versionSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8buildShaSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8bundleIdSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8platformSSSgvp","target":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10isRevisionSbvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersion7draftId8revision15authorPublicKey4kind11commandType4form5state04cardK009operationK015createdAtUnixMs07updatedxyZ05media10settlement10isRevisionACs6UInt16V_SSs6UInt64VSSAA0dE4KindOAA0d10AddCommandR0OAA0de4FormG0VSgAA0D11OutboxStateOS2SSgA2VSayAA0de5MediaG0VGAA0d19OperationSettlementG0VSgSbtcfc","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15createdAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4formAA0de4FormG0VSgvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4kindAA0dE4KindOvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5mediaSayAA0de5MediaG0VGvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5stateAA0D11OutboxStateOvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV7draftIdSSvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiDraftStatusRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO6lockedyA2CmF","target":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiIdentityLockStateO8unlockedyA2CmF","target":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12cancellationAA0d12CancellationF0Ovp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12satisfactionAA0D17RelaySatisfactionOvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersion9relayUrls12satisfaction22deliveryDeadlineUnixMs12cancellationACs6UInt16V_SaySSGAA0D17RelaySatisfactionOs6UInt64VAA0d12CancellationF0Otcfc","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV22deliveryDeadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV9relayUrlsSaySSGvp","target":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO8readOnlyyA2CmF","target":"s:19RadrootsKitBindings20FfiRelayAccessRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayAccessRecordO9readWriteyA2CmF","target":"s:19RadrootsKitBindings20FfiRelayAccessRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11allAcceptedyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11anyAcceptedyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12allDeliveredyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12anyDeliveredyA2CmF","target":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV10writeStateSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersion8relayUrl6access9readState05writeN00M17LastAttemptUnixMs0opqrS00m4NextqrS00otqrS0ACs6UInt16V_SSAA0de6AccessG0OS2Ss6UInt64VSgA3Stcfc","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readLastAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readNextAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeLastAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeNextAttemptUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV6accessAA0de6AccessG0Ovp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV8relayUrlSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRelayStatusRecordV9readStateSSvp","target":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5mediayA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5relayyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5todayyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO6draftsyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7initialyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7profileyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8identityyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8settingsyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO9lifecycleyA2CmF","target":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersion3app3sdk0K6ClosedACs6UInt16V_AA0d3AppfG0VAA0d5BuildfG0VSbtcfc","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3appAA0d3AppfG0Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3sdkAA0d5BuildfG0Vvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV9sdkClosedSbvp","target":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13authorProfileAA0diG0VSgvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13parentEventIdSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersion7eventId15authorPublicKey7content15authoredAtUnixS7profile4root011parentEventK00L7ProfileACs6UInt16V_S3Ss6UInt64VAA0deW0OS2SAA0dwG0VSgtcfc","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authoredAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4rootSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7contentSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7eventIdSSvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7profileAA0dE7ProfileOvp","target":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV10artifactIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV11operationIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersion7draftId16expectedRevision5media20authorizationContent0O14CreatedAtUnixS0O15LifetimeSeconds09operationK008artifactK0015signingDeadlineS2Ms0X12Cancellation08verifiedrsZ007updatedrsZ0ACs6UInt16V_SSs6UInt64VAA0d13PreparedMediaG0VSSA2TS2SAtA0D18CancellationPolicyOA2Ttcfc","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16verifiedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV19signingCancellationAA0dI6PolicyOvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV20authorizationContentSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV21signingDeadlineUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV27authorizationCreatedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV28authorizationLifetimeSecondss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV5mediaAA0d13PreparedMediaG0Vvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiBlossomUploadInputV7draftIdSSvp","target":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO16localCooperativeyA2CmF","target":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCancellationPolicyO24preservePublishedRequestyA2CmF","target":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4pastyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4soldyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiCardLifecycleStateO6activeyA2CmF","target":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV10generations6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersion2id5label9relayUrls8locality15followedAuthors10generationACs6UInt16V_S2SSaySSGSSSgAMs6UInt64Vtcfc","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV15followedAuthorsSaySSGvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2idSSvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV5labelSSvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV8localitySSSgvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV9relayUrlsSaySSGvp","target":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersion15opaqueReference14fileDescriptor6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_SSs6UInt64VS2SAQs6UInt32VASSSAQtcfc","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV14fileDescriptors6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15opaqueReferenceSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15preparedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV3altSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6sha256SSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiPreparedMediaInputV9mediaTypeSSvp","target":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV10resultTypeAA0defI0Ovp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersion10resultType8stableId4card7profileACs6UInt16V_AA0defK0OSSAA0d9TodayCardG0VSgAA0d7ProfileG0VSgtcfc","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV4cardAA0d9TodayCardG0VSgvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV7profileAA0d7ProfileG0VSgvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSearchResultRecordV8stableIdSSvp","target":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC11unsubscribeyyF","target":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiSubscriptionHandleC8isActiveSbyF","target":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12sourceEventss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12visibleCardss6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersion6update12sourceEvents12visibleCards8profiles13threadEntries17contentGeneration7changedACs6UInt16V_AA0dE16ProjectionUpdateOs6UInt64VA4QSbtcfc","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13threadEntriess6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV17contentGenerations6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV6updateAA0dE16ProjectionUpdateOvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV7changedSbvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV8profiless6UInt64Vvp","target":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersion7draftId16expectedRevision5mediaACs6UInt16V_SSs6UInt64VAA0D18PreparedMediaInputVtcfc","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV5mediaAA0D18PreparedMediaInputVvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV7draftIdSSvp","target":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV11commandTypeAA0df7CommandJ0Ovp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersion8cardType07commandL0ACs6UInt16V_AA0d5TodayeL0OAA0df7CommandL0Otcfc","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiCardAddParityRecordV8cardTypeAA0d5TodayeJ0Ovp","target":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO11beginImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO12cancelImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO14completeImportyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO4lockyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6selectyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6unlockyA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityCommandKindO7recoveryA2CmF","target":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV04lockF0AA0de4LockF0Ovp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV06activeE2IdSSSgvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV10identitiesSayAA0d8SettingseG0VGvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersion10identities06activeE2Id04lockF0022pendingImportOperationL0ACs6UInt16V_SayAA0d8SettingseG0VGSSSgAA0de4LockF0OANtcfc","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV24pendingImportOperationIdSSSgvp","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiIdentityStateRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10deliveryIdSSSgvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV11operationIdSSvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersion11operationId8revision15authorPublicKey5state08deliveryK015createdAtUnixMs07updatedstU010settlementACs6UInt16V_SSs6UInt64VSSAA0D11OutboxStateOSSSgA2pA0d19OperationSettlementG0VSgtcfc","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15createdAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15updatedAtUnixMss6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV5stateAA0D11OutboxStateOvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiProfileStatusRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11replacementAA0d8AddDraftF0Vvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersion6cardId011sourceEventK00L7Address15authorPublicKey11replacementACs6UInt16V_S3SSgSSAA0d8AddDraftF0Vtcfc","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceAddressSSSgvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceEventIdSSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV15authorPublicKeySSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRevisionInputRecordV6cardIdSSvp","target":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV10generations6UInt64Vvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersion10generation4kind8entityIdACs6UInt16V_s6UInt64VAA0deF4KindOSSSgtcfc","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV8entityIdSSSgvp","target":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersion7backend8openMode8shutdown9integrityACs6UInt16V_S4Stcfc","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV7backendSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8openModeSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8shutdownSSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiStorageStatusRecordV9integritySSvp","target":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7offlineyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7partialyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO8completeyA2CmF","target":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersion15opaqueReference3url6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_S4Ss6UInt64Vs6UInt32VASSSAQtcfc","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15opaqueReferenceSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15preparedAtUnixSs6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3altSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3urlSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6sha256SSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV9mediaTypeSSvp","target":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersion9publicKey20hostSignerConfiguredACs6UInt16V_SSSbtcfc","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV20hostSignerConfiguredSbvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV12verificationAA0dE17VerificationStateOvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersion20referenceFingerprint3url6sha2569mediaType5width6height8byteSize3alt12verificationACs6UInt16V_S3SSgAPs6UInt32VSgASs6UInt64VSgApA0dE17VerificationStateOtcfc","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV20referenceFingerprintSSvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3altSSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3urlSSvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV5widths6UInt32VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6heights6UInt32VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6sha256SSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV8byteSizes6UInt64VSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV9mediaTypeSSSgvp","target":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersion8revision8identity6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d13IdentityStateG0VAA0d16RelayPreferencesG0VAA0d7BlossomwG0VAA0d5Mediao6PolicyG0VAA0d5LocalqzG0Vtcfc","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8identityAA0d13IdentityStateG0Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8revisions6UInt64Vvp","target":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV10targetKinds6UInt32Vvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV11commandTypeAA0d10AddCommandI0Ovp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV12targetCardIdSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersion11commandType12targetCardId0l5EventN00L4Kind0L7Address6reasonACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSStcfc","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetAddressSSSgvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetEventIdSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRetractionDraftInputV6reasonSSvp","target":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV10retractionAA0d5DraftfG0VSgvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11operationIdSSvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11replacementAA0d5DraftfG0Vvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersion11operationId11replacement10retraction6policy5phaseACs6UInt16V_SSAA0d5DraftfG0VAMSgAA0dE6PolicyOAA0dE5PhaseOtcfc","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV5phaseAA0dE5PhaseOvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV6policyAA0dE6PolicyOvp","target":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10errorPhaseSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10httpStatuss6UInt16VSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersion6origin17configFingerprint5state19lastSuccessfulState17transportSecurity16observedAtUnixMs10httpStatus9errorCode011serverErrorZ00Y5Phase9retryable14possibleOrphan8attemptsACs6UInt16V_S5Ss6UInt64VSgASSgSSSgA2XS2bs5UInt8Vtcfc","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV14possibleOrphanSbvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV15serverErrorCodeSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV16observedAtUnixMss6UInt64VSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17configFingerprintSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17transportSecuritySSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV19lastSuccessfulStateSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV5stateSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV6originSSvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV8attemptss5UInt8Vvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9errorCodeSSSgvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9retryableSbvp","target":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV10identityIdSSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersion4kind11operationId08identityL09publicKeyACs6UInt16V_AA0deF4KindOSSSgA2Mtcfc","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4kindAA0deF4KindOvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV9publicKeySSSgvp","target":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV11operationIdSSvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV13schemaVersion11operationId5draft9remoteUrl19authorizationHeader14expectedSha2569mediaType8byteSizeACs6UInt16V_SSAA0d11DraftStatusH0VS4Ss6UInt64Vtcfc","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV14expectedSha256SSvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV19authorizationHeaderSSvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV5draftAA0d11DraftStatusH0Vvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV9mediaTypeSSvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV9remoteUrlSSvp","target":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO8readOnlyyA2CmF","target":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO9readWriteyA2CmF","target":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersion3url6accessACs6UInt16V_SSAA0de6AccessF0Otcfc","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV3urlSSvp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV6accessAA0de6AccessF0Ovp","target":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersion16expectedRevision6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d16RelayPreferencesG0VAA0d7BlossomuG0VAA0d5Mediao6PolicyG0VAA0d5LocalqxG0Vtcfc","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp","target":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO11incrementalyA2CmF","target":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO7rebuildyA2CmF","target":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO11unavailableyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO4busyyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO5readyyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings24SignerAvailabilityRecordO6lockedyA2CmF","target":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV10totalBytess6UInt64Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13artifactCounts6UInt32Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersion13artifactCount10totalBytes24configurationFingerprintACs6UInt16V_s6UInt32Vs6UInt64VSSSgtcfc","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV24configurationFingerprintSSSgvp","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO11unavailableyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO6failedyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO7pendingyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiMediaVerificationStateO8verifiedyA2CmF","target":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersion11environment9endpointsACs6UInt16V_AA0D24MobileNetworkEnvironmentOSayAA0de10PreferenceG0VGtcfc","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV9endpointsSayAA0de10PreferenceG0VGvp","target":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersion2id9publicKeyACs6UInt16V_S2Stcfc","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2idSSvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV9publicKeySSvp","target":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO11unavailableyA2CmF","target":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO9availableyA2CmF","target":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersion7profile5state16readAvailability05writeN06relaysACs6UInt16V_S4SSayAA0defH0VGtcfc","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV16readAvailabilitySSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV17writeAvailabilitySSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV5stateSSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV6relaysSayAA0defH0VGvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV7profileSSvp","target":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO12publicWebPkiyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO19loopbackDevelopmentyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO25privateNetworkDevelopmentyA2CmF","target":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13primaryOriginSSvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersion11environment9authority13primaryOrigin15fallbackOriginsACs6UInt16V_AA0D24MobileNetworkEnvironmentOAA0dE19AuthorityPreferenceOSSSaySSGtcfc","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV15fallbackOriginsSaySSGvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV9authorityAA0dE19AuthorityPreferenceOvp","target":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersion15mediaCacheBytes0kL9ArtifactsACs6UInt16V_s6UInt64Vs6UInt32Vtcfc","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV15mediaCacheBytess6UInt64Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV19mediaCacheArtifactss6UInt32Vvp","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersion22allowCellularDownloads0kL7Uploads0K19BackgroundTransfersACs6UInt16V_S3btcfc","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV20allowCellularUploadsSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV22allowCellularDownloadsSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV24allowBackgroundTransfersSbvp","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO14physicalDeviceyA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO6publicyA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO9simulatoryA2CmF","target":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersion8settings22runtimeRestartRequired013outboxRequeueM0022mediaCacheInvalidationM0ACs6UInt16V_AA0d6MobileeG0VS3btcfc","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV21outboxRequeueRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV22runtimeRestartRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV30mediaCacheInvalidationRequiredSbvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV8settingsAA0d6MobileeG0Vvp","target":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13deliveryPlanss6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13indeterminates6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersion9artifacts6signed8admitted7pending9retryable13indeterminate14failedTerminal9cancelled13deliveryPlans0S9Satisfied0S7Pending0S9Retryable0S9Exhausted0s6FailedQ00S9CancelledACs6UInt16V_A15Utcfc","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV14failedTerminals6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV15deliveryPendings6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryCancelleds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryExhausteds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryRetryables6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliverySatisfieds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV22deliveryFailedTerminals6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV6signeds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV7pendings6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV8admitteds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9artifactss6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9cancelleds6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9retryables6UInt16Vvp","target":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO12publicWebPkiyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO19loopbackDevelopmentyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO25privateNetworkDevelopmentyA2CmF","target":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13primaryOriginSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersion8hostKind17endpointAuthority13primaryOrigin15fallbackOrigins17configFingerprintACs6UInt16V_S3SSaySSGSStcfc","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV15fallbackOriginsSaySSGvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17configFingerprintSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17endpointAuthoritySSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV8hostKindSSvp","target":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV11displayNameSSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersion4name11displayName5about7picture6banner5nip053botACs6UInt16V_S2SSgAnA0d13PreparedMediaG0VSgAqNSbSgtcfc","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV3botSbSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4nameSSvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5aboutSSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5nip05SSSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV6bannerAA0d13PreparedMediaG0VSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV7pictureAA0d13PreparedMediaG0VSgvp","target":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV10statusCodes6UInt16Vvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV12responseBody10Foundation4DataVvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV13schemaVersion7draftId16expectedRevision5media10statusCode17responseMediaType0R15ContentEncoding0R4BodyACs6UInt16V_SSs6UInt64VAA0d8PreparedsH0VAMSSSgAR10Foundation4DataVtcfc","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV16expectedRevisions6UInt64Vvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV17responseMediaTypeSSSgvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV23responseContentEncodingSSSgvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV5mediaAA0d13PreparedMediaH0Vvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV7draftIdSSvp","target":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV10artifactIdSSvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV11operationIdSSSgvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersion11operationId08artifactL08byteSize9mediaType5width6heightACs6UInt16V_SSSgSSs6UInt64VSSs6UInt32VAQtcfc","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersions6UInt16Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV2eeoiySbAC_ACtFZ","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV4hash4intoys6HasherVz_tF","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV5widths6UInt32Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV6heights6UInt32Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV8byteSizes6UInt64Vvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"memberOf","source":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV9mediaTypeSSvp","target":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A10HostSignerP12signerStatusAA0eG6RecordVyYaF","target":"s:19RadrootsKitBindings0A10HostSignerP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A10HostSignerP4sign7requestAA0D13SigningResultVAA0dH7RequestV_tYaF","target":"s:19RadrootsKitBindings0A10HostSignerP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeObserverP8onChange6changeyAA03FfidG6RecordV_tF","target":"s:19RadrootsKitBindings0A15RuntimeObserverP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12phase1Search7context5query5limit9asOfUnixSSayAA03FfiG12ResultRecordVGAA0n12LocalNetworkP0V_SSs6UInt16Vs6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12probeBlossomAA03FfiG14EvidenceRecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP12uptimeMilliss5Int64VyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14identityStatusAA011FfiIdentityG6RecordVyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14phase1SettingsAA09FfiMobileG6RecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP14sdkRelayStatusAA03FfigH12ReportRecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0s3AddH5InputVs6UInt64VAOSgAOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SyncToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfigH6RecordVAA0o12LocalNetworkP0V_s6UInt16Vs6UInt64VSgSSSgtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffig4HostI0O_AA0pg8EndpointK0OSSSaySSGtKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1AddSchemasSayAA03FfiG12SchemaRecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1DraftHeads5limitSayAA03FfiG12StatusRecordVGs6UInt16V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAA0rg6PolicyT0VALtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16sdkStorageStatusAA03FfigH6RecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAKtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1DraftStatus7draftIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1LocalNetwork7contextAA03FfigH6RecordVAG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1RefreshToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18sdkBlossomEvidenceAA03FfigH6RecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP18setAppInfoPlatform8platform8bundleId7version11buildNumber0N3ShaySSSg_A4JtF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CancelProfile11operationId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CardAddParitySayAA03FfighI6RecordVGyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1ProfileStatus11operationIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedH14ArtifactRecordVAA0m12LocalNetworkP0V_SSAA0mH9OperationCtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiL12StatusRecordVAA0phL5InputV_SSSgs6UInt64VSgtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1AdvanceProfile11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1CancelRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1RevisionStatus11operationIdAA03FfigH6RecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configureDeviceRelays08writableH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configurePublicRelays08writableH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1AdvanceRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1ReplaceSettings5inputAA03FfiH16TransitionRecordVAA0jghL0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiI12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1MediaCacheStatus7contextAA03FfighI6RecordVAA0k12LocalNetworkL0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1UploadDraftMedia5inputAA03FfiH12StatusRecordVAA0k7BlossomG5InputV_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfihI5InputV_s6UInt64VtKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP23sdkBlossomConfigurationAA03FfigH6RecordVSgyKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP24configureSimulatorRelays08loopbackH0ySaySSG_tKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP24phase1SaveRevisionIntent5inputAA03FfiH12StatusRecordVAA0kh5InputM0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveProfileMetadata5inputAA03FfiH12StatusRecordVAA0khi5InputM0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistednO2MsAA03FfiI12StatusRecordVSS_AA0rhI5InputVs6UInt64VANtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0mhiP0VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0l7BlossomgJ0V_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP27phase1VerifiedMediaArtifact7context10artifactIdAA03FfighI6RecordVSgAA0m12LocalNetworkN0V_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP31phase1PrepareAddMediaBackground5inputAA24FfiNativeUploadJobRecordVAA0l7BlossomN6IntentV_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP32phase1CompleteAddMediaBackground5inputAA20FfiDraftStatusRecordVAA0L27NativeUploadCompletionInputV_tYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP4infoAA03FfiD10InfoRecordVyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8infoJsonSSyF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8phase1Me7context9asOfUnixSAA03FfiG6RecordVAA0l12LocalNetworkM0V_s6UInt64VtYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings0A15RuntimeProtocolP8shutdownAA17FfiShutdownRecordVyYaKF","target":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11isCancelledSbyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11operationIdSSyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP6cancelyyF","target":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP11unsubscribeyyF","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"kind":"requirementOf","source":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP8isActiveSbyF","target":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"}],"schema":"radroots.swift-api-snapshot.v1","symbols":[{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uniffiEnsureRadrootsMobileFfiInitialized"},{"kind":"text","spelling":"()"}],"kind":"swift.func","path":["uniffiEnsureRadrootsMobileFfiInitialized()"],"precise":"s:19RadrootsKitBindings012uniffiEnsureA20MobileFfiInitializedyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uniffiForeignFutureHandleCountRadrootsMobileCore"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Si","spelling":"Int"}],"kind":"swift.func","path":["uniffiForeignFutureHandleCountRadrootsMobileCore()"],"precise":"s:19RadrootsKitBindings030uniffiForeignFutureHandleCountA10MobileCoreSiyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsHostSigner"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsHostSigner"],"precise":"s:19RadrootsKitBindings0A10HostSignerP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"}],"kind":"swift.method","path":["RadrootsHostSigner","signerStatus()"],"precise":"s:19RadrootsKitBindings0A10HostSignerP12signerStatusAA0eG6RecordVyYaF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sign"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"request"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"}],"kind":"swift.method","path":["RadrootsHostSigner","sign(request:)"],"precise":"s:19RadrootsKitBindings0A10HostSignerP4sign7requestAA0D13SigningResultVAA0dH7RequestV_tYaF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsErrorRecord"}],"kind":"swift.struct","path":["RadrootsErrorRecord"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["RadrootsErrorRecord","operationId"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"safeMessage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","safeMessage"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV11safeMessageSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"capabilityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["RadrootsErrorRecord","capabilityId"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV12capabilityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"code"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"category"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveryActions"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"capabilityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"safeMessage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["RadrootsErrorRecord","init(schemaVersion:code:category:retryable:recoveryActions:operationId:capabilityId:safeMessage:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersion4code8category9retryable15recoveryActions11operationId010capabilityN011safeMessageACs6UInt16V_S2SSbSaySSGSSSgAOSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["RadrootsErrorRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"recoveryActions"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["RadrootsErrorRecord","recoveryActions"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV15recoveryActionsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["RadrootsErrorRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"code"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","code"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV4codeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["RadrootsErrorRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"category"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["RadrootsErrorRecord","category"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV8categorySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["RadrootsErrorRecord","retryable"],"precise":"s:19RadrootsKitBindings0A11ErrorRecordV9retryableSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsRuntimeObserver"],"precise":"s:19RadrootsKitBindings0A15RuntimeObserverP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"onChange"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"change"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["RadrootsRuntimeObserver","onChange(change:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeObserverP8onChange6changeyAA03FfidG6RecordV_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntimeProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["RadrootsRuntimeProtocol"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Search"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"query"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Search(context:query:limit:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12phase1Search7context5query5limit9asOfUnixSSayAA03FfiG12ResultRecordVGAA0n12LocalNetworkP0V_SSs6UInt16Vs6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"probeBlossom"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","probeBlossom()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12probeBlossomAA03FfiG14EvidenceRecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","uptimeMillis()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP12uptimeMilliss5Int64VyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","identityStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14identityStatusAA011FfiIdentityG6RecordVyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Settings"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Settings()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14phase1SettingsAA09FfiMobileG6RecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkRelayStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkRelayStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP14sdkRelayStatusAA03FfigH12ReportRecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveDraft(draftId:input:authoredAtUnixS:expectedRevision:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0s3AddH5InputVs6UInt64VAOSgAOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SyncToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SyncToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1SyncToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1TodayPage"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1TodayPage(context:limit:asOfUnixS:cursor:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfigH6RecordVAA0o12LocalNetworkP0V_s6UInt16Vs6UInt64VSgSSSgtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkCapabilities"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkCapabilities()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureBlossom"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBlossomHostKindO","spelling":"FfiBlossomHostKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","spelling":"FfiBlossomEndpointAuthority"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureBlossom(hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffig4HostI0O_AA0pg8EndpointK0OSSSaySSGtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AddSchemas"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AddSchemas()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1AddSchemasSayAA03FfiG12SchemaRecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftHeads"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1DraftHeads(limit:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1DraftHeads5limitSayAA03FfiG12StatusRecordVGs6UInt16V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"queuedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1QueueDraft(draftId:expectedRevision:policy:queuedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAA0rg6PolicyT0VALtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkStorageStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkStorageStatus()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16sdkStorageStatusAA03FfigH6RecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"subscribeChanges"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"observer"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A15RuntimeObserverP","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","spelling":"FfiSubscriptionHandle"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","subscribeChanges(observer:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelledAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelDraft(draftId:expectedRevision:cancelledAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VAKtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1DraftStatus(draftId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP17phase1DraftStatus7draftIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1LocalNetwork"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1LocalNetwork(context:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1LocalNetwork7contextAA03FfigH6RecordVAG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RefreshToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RefreshToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18phase1RefreshToday7context8nowUnixS6updateAA03FfihG6RecordVAA0m12LocalNetworkN0V_s6UInt64VAA0mH16ProjectionUpdateOtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomEvidence"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkBlossomEvidence()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18sdkBlossomEvidenceAA03FfigH6RecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"setAppInfoPlatform"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","setAppInfoPlatform(platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP18setAppInfoPlatform8platform8bundleId7version11buildNumber0N3ShaySSSg_A4JtF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelProfile(operationId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CancelProfile11operationId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CardAddParity"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CardAddParity()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1CardAddParitySayAA03FfighI6RecordVGyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ProfileStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ProfileStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1ProfileStatus11operationIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RetrieveMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiMediaOperationC","spelling":"FfiMediaOperation"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RetrieveMedia(context:referenceFingerprint:operation:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedH14ArtifactRecordVAA0m12LocalNetworkP0V_SSAA0mH9OperationCtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"existingDraftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveAddIntent(input:existingDraftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiL12StatusRecordVAA0phL5InputV_SSSgs6UInt64VSgtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceProfile(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1AdvanceProfile11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1CancelRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1QueueAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RevisionStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RevisionStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP20phase1RevisionStatus11operationIdAA03FfigH6RecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureDeviceRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureDeviceRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configureDeviceRelays08writableH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurePublicRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configurePublicRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21configurePublicRelays08writableH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1AdvanceRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1AdvanceRevision11operationIdAA03FfiH12StatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CancelAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ReplaceSettings"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ReplaceSettings(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1ReplaceSettings5inputAA03FfiH16TransitionRecordVAA0jghL0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SignQueuedDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SignQueuedDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiI12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1MediaCacheStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1MediaCacheStatus(context:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1MediaCacheStatus7contextAA03FfighI6RecordVAA0k12LocalNetworkL0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RecoverAddIntent(draftId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadDraftMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1UploadDraftMedia(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1UploadDraftMedia5inputAA03FfiH12StatusRecordVAA0k7BlossomG5InputV_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ValidateAddDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ValidateAddDraft(input:authoredAtUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfihI5InputV_s6UInt64VtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverDraftQueue"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveredAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1RecoverDraftQueue(draftId:recoveredAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomConfiguration"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","sdkBlossomConfiguration()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP23sdkBlossomConfigurationAA03FfigH6RecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureSimulatorRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"loopbackRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","configureSimulatorRelays(loopbackRelays:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP24configureSimulatorRelays08loopbackH0ySaySSG_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRevisionIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveRevisionIntent(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP24phase1SaveRevisionIntent5inputAA03FfiH12StatusRecordVAA0kh5InputM0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveProfileMetadata"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveProfileMetadata(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveProfileMetadata5inputAA03FfiH12StatusRecordVAA0khi5InputM0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRetractionDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1SaveRetractionDraft(draftId:input:authoredAtUnixS:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistednO2MsAA03FfiI12StatusRecordVSS_AA0rhI5InputVs6UInt64VANtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ApplyIdentityCommand"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"command"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1ApplyIdentityCommand(expectedRevision:command:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0mhiP0VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadAddMediaIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1UploadAddMediaIntent(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0l7BlossomgJ0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1VerifiedMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1VerifiedMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP27phase1VerifiedMediaArtifact7context10artifactIdAA03FfighI6RecordVSgAA0m12LocalNetworkN0V_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1InvalidateMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1PrepareAddMediaBackground"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","spelling":"FfiNativeUploadJobRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1PrepareAddMediaBackground(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP31phase1PrepareAddMediaBackground5inputAA24FfiNativeUploadJobRecordVAA0l7BlossomN6IntentV_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CompleteAddMediaBackground"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","spelling":"FfiNativeUploadCompletionInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1CompleteAddMediaBackground(input:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP32phase1CompleteAddMediaBackground5inputAA20FfiDraftStatusRecordVAA0L27NativeUploadCompletionInputV_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaConfiguration"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1InvalidateMediaConfiguration(context:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"info"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","info()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP4infoAA03FfiD10InfoRecordVyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"infoJson"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","infoJson()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8infoJsonSSyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Me"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","phase1Me(context:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8phase1Me7context9asOfUnixSAA03FfiG6RecordVAA0l12LocalNetworkM0V_s6UInt64VtYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"}],"kind":"swift.method","path":["RadrootsRuntimeProtocol","shutdown()"],"precise":"s:19RadrootsKitBindings0A15RuntimeProtocolP8shutdownAA17FfiShutdownRecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsRuntime"}],"kind":"swift.class","path":["RadrootsRuntime"],"precise":"s:19RadrootsKitBindings0A7RuntimeC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Search"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"query"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Search(context:query:limit:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12phase1Search7context5query5limit9asOfUnixSSayAA03FfiF12ResultRecordVGAA0m12LocalNetworkO0V_SSs6UInt16Vs6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"probeBlossom"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.method","path":["RadrootsRuntime","probeBlossom()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12probeBlossomAA03FfiF14EvidenceRecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.method","path":["RadrootsRuntime","uptimeMillis()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC12uptimeMilliss5Int64VyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","identityStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14identityStatusAA011FfiIdentityF6RecordVyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Settings"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Settings()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14phase1SettingsAA09FfiMobileF6RecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkRelayStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkRelayStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14sdkRelayStatusAA03FfifG12ReportRecordVSgyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"withHostSigner"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"applicationSupportDirectory"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKeyHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationCreatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"protectedData"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","spelling":"ProtectedDataAvailability"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostSigner"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A10HostSignerP","spelling":"RadrootsHostSigner"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A7RuntimeC","spelling":"RadrootsRuntime"}],"kind":"swift.type.method","path":["RadrootsRuntime","withHostSigner(applicationSupportDirectory:publicKeyHex:sourceGenerationHex:sourceGenerationCreatedAtUnixMs:protectedData:hostSigner:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC14withHostSigner27applicationSupportDirectory12publicKeyHex016sourceGenerationM00nO15CreatedAtUnixMs13protectedData04hostG0ACSS_S2Ss6UInt64VAA09ProtectedU12AvailabilityOAA0afG0_ptYaKFZ"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveDraft(draftId:input:authoredAtUnixS:expectedRevision:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1SaveDraft7draftId5input15authoredAtUnixS16expectedRevision09persistedlM2MsAA03FfiG12StatusRecordVSS_AA0r3AddG5InputVs6UInt64VAOSgAOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SyncToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SyncToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1SyncToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1TodayPage"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1TodayPage(context:limit:asOfUnixS:cursor:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15phase1TodayPage7context5limit9asOfUnixS6cursorAA03FfifG6RecordVAA0n12LocalNetworkO0V_s6UInt16Vs6UInt64VSgSSSgtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkCapabilities"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","sdkCapabilities()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC15sdkCapabilitiesSayAA19FfiCapabilityRecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureBlossom"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBlossomHostKindO","spelling":"FfiBlossomHostKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO","spelling":"FfiBlossomEndpointAuthority"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureBlossom(hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16configureBlossom8hostKind17endpointAuthority13primaryOrigin15fallbackOriginsyAA03Ffif4HostH0O_AA0of8EndpointJ0OSSSaySSGtKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AddSchemas"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AddSchemas()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1AddSchemasSayAA03FfiF12SchemaRecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftHeads"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"limit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1DraftHeads(limit:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1DraftHeads5limitSayAA03FfiF12StatusRecordVGs6UInt16V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"queuedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1QueueDraft(draftId:expectedRevision:policy:queuedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16phase1QueueDraft7draftId16expectedRevision6policy14queuedAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAA0qf6PolicyS0VALtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkStorageStatus"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","sdkStorageStatus()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16sdkStorageStatusAA03FfifG6RecordVyYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"subscribeChanges"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"observer"},{"kind":"text","spelling":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A15RuntimeObserverP","spelling":"RadrootsRuntimeObserver"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSubscriptionHandleC","spelling":"FfiSubscriptionHandle"}],"kind":"swift.method","path":["RadrootsRuntime","subscribeChanges(observer:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC16subscribeChanges8observerAA21FfiSubscriptionHandleCAA0aD8Observer_p_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelledAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelDraft(draftId:expectedRevision:cancelledAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC17phase1CancelDraft7draftId16expectedRevision17cancelledAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VAKtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1DraftStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1DraftStatus(draftId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC17phase1DraftStatus7draftIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1AdvanceDraft7draftId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1LocalNetwork"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1LocalNetwork(context:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1LocalNetwork7contextAA03FfifG6RecordVAG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RefreshToday"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"nowUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RefreshToday(context:nowUnixS:update:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18phase1RefreshToday7context8nowUnixS6updateAA03FfigF6RecordVAA0l12LocalNetworkM0V_s6UInt64VAA0lG16ProjectionUpdateOtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomEvidence"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkBlossomEvidence()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18sdkBlossomEvidenceAA03FfifG6RecordVSgyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"setAppInfoPlatform"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.method","path":["RadrootsRuntime","setAppInfoPlatform(platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC18setAppInfoPlatform8platform8bundleId7version11buildNumber0M3ShaySSSg_A4JtF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelProfile(operationId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1CancelProfile11operationId16expectedRevisionAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CardAddParity"},{"kind":"text","spelling":"() -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CardAddParity()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1CardAddParitySayAA03FfifgH6RecordVGyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ProfileStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ProfileStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1ProfileStatus11operationIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RetrieveMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiMediaOperationC","spelling":"FfiMediaOperation"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RetrieveMedia(context:referenceFingerprint:operation:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1RetrieveMedia7context20referenceFingerprint9operationAA011FfiVerifiedG14ArtifactRecordVAA0l12LocalNetworkO0V_SSAA0lG9OperationCtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"existingDraftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveAddIntent(input:existingDraftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC19phase1SaveAddIntent5input15existingDraftId16expectedRevisionAA03FfiK12StatusRecordVAA0ogK5InputV_SSSgs6UInt64VSgtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceProfile"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceProfile(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1AdvanceProfile11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1CancelRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1QueueAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1QueueAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1QueueAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RevisionStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RevisionStatus(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC20phase1RevisionStatus11operationIdAA03FfifG6RecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureDeviceRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureDeviceRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21configureDeviceRelays08writableG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurePublicRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"writableRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configurePublicRelays(writableRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21configurePublicRelays08writableG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1AdvanceRevision"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1AdvanceRevision(operationId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1AdvanceRevision11operationIdAA03FfiG12StatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CancelAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CancelAddIntent(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1CancelAddIntent7draftId16expectedRevisionAA20FfiDraftStatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ReplaceSettings"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ReplaceSettings(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1ReplaceSettings5inputAA03FfiG16TransitionRecordVAA0ifgK0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SignQueuedDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SignQueuedDraft(draftId:expectedRevision:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC21phase1SignQueuedDraft7draftId16expectedRevisionAA03FfiH12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1MediaCacheStatus"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1MediaCacheStatus(context:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1MediaCacheStatus7contextAA03FfifgH6RecordVAA0j12LocalNetworkK0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverAddIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RecoverAddIntent(draftId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1RecoverAddIntent7draftIdAA20FfiDraftStatusRecordVSS_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadDraftMedia"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1UploadDraftMedia(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1UploadDraftMedia5inputAA03FfiG12StatusRecordVAA0j7BlossomF5InputV_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ValidateAddDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ValidateAddDraft(input:authoredAtUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC22phase1ValidateAddDraft5input15authoredAtUnixSyAA03FfigH5InputV_s6UInt64VtKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1RecoverDraftQueue"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"recoveredAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1RecoverDraftQueue(draftId:recoveredAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC23phase1RecoverDraftQueue7draftId17recoveredAtUnixMsAA03FfiG12StatusRecordVSS_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkBlossomConfiguration"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","sdkBlossomConfiguration()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC23sdkBlossomConfigurationAA03FfifG6RecordVSgyKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configureSimulatorRelays"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"loopbackRelays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.method","path":["RadrootsRuntime","configureSimulatorRelays(loopbackRelays:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC24configureSimulatorRelays08loopbackG0ySaySSG_tKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRevisionIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveRevisionIntent(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC24phase1SaveRevisionIntent5inputAA03FfiG12StatusRecordVAA0jg5InputL0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveProfileMetadata"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveProfileMetadata(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveProfileMetadata5inputAA03FfiG12StatusRecordVAA0jgh5InputL0V_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1SaveRetractionDraft"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"persistedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1SaveRetractionDraft(draftId:input:authoredAtUnixS:persistedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC25phase1SaveRetractionDraft7draftId5input15authoredAtUnixS09persistedmN2MsAA03FfiH12StatusRecordVSS_AA0qgH5InputVs6UInt64VANtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1ApplyIdentityCommand"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"command"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1ApplyIdentityCommand(expectedRevision:command:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC26phase1ApplyIdentityCommand16expectedRevision7commandAA27FfiSettingsTransitionRecordVs6UInt64V_AA0lghO0VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1UploadAddMediaIntent"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1UploadAddMediaIntent(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC26phase1UploadAddMediaIntent5inputAA20FfiDraftStatusRecordVAA0k7BlossomfI0V_tYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"convenience"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"applicationSupportDirectory"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKeyHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceGenerationCreatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"protectedData"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO","spelling":"ProtectedDataAvailability"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.init","path":["RadrootsRuntime","init(applicationSupportDirectory:publicKeyHex:sourceGenerationHex:sourceGenerationCreatedAtUnixMs:protectedData:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC27applicationSupportDirectory12publicKeyHex016sourceGenerationJ00kL15CreatedAtUnixMs13protectedDataACSS_S2Ss6UInt64VAA09ProtectedR12AvailabilityOtYaKcfc"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1VerifiedMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.method","path":["RadrootsRuntime","phase1VerifiedMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC27phase1VerifiedMediaArtifact7context10artifactIdAA03FfifgH6RecordVSgAA0l12LocalNetworkM0V_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaArtifact"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["RadrootsRuntime","phase1InvalidateMediaArtifact(context:artifactId:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC29phase1InvalidateMediaArtifact7context10artifactIdSbAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1PrepareAddMediaBackground"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","spelling":"FfiNativeUploadJobRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1PrepareAddMediaBackground(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC31phase1PrepareAddMediaBackground5inputAA24FfiNativeUploadJobRecordVAA0k7BlossomM6IntentV_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1CompleteAddMediaBackground"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"input"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","spelling":"FfiNativeUploadCompletionInput"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1CompleteAddMediaBackground(input:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC32phase1CompleteAddMediaBackground5inputAA20FfiDraftStatusRecordVAA0K27NativeUploadCompletionInputV_tYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1InvalidateMediaConfiguration"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.method","path":["RadrootsRuntime","phase1InvalidateMediaConfiguration(context:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC34phase1InvalidateMediaConfiguration7context24configurationFingerprintSaySSGAA21FfiLocalNetworkRecordV_SStYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"info"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.method","path":["RadrootsRuntime","info()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC4infoAA03FfiD10InfoRecordVyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"infoJson"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["RadrootsRuntime","infoJson()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8infoJsonSSyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase1Me"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"context"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"}],"kind":"swift.method","path":["RadrootsRuntime","phase1Me(context:asOfUnixS:)"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8phase1Me7context9asOfUnixSAA03FfiF6RecordVAA0k12LocalNetworkL0V_s6UInt64VtYaKF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"async"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"throws"},{"kind":"text","spelling":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"}],"kind":"swift.method","path":["RadrootsRuntime","shutdown()"],"precise":"s:19RadrootsKitBindings0A7RuntimeC8shutdownAA17FfiShutdownRecordVyYaKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"RadrootsAppError"}],"kind":"swift.enum","path":["RadrootsAppError"],"precise":"s:19RadrootsKitBindings0A8AppErrorO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorDescription"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"? { "},{"kind":"keyword","spelling":"get"},{"kind":"text","spelling":" }"}],"kind":"swift.property","path":["RadrootsAppError","errorDescription"],"precise":"s:19RadrootsKitBindings0A8AppErrorO16errorDescriptionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"Failure"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"report"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings0A11ErrorRecordV","spelling":"RadrootsErrorRecord"},{"kind":"text","spelling":")"}],"kind":"swift.enum.case","path":["RadrootsAppError","Failure(report:)"],"precise":"s:19RadrootsKitBindings0A8AppErrorO7FailureyAcA0aE6RecordV_tcACmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMeRecord"}],"kind":"swift.struct","path":["FfiMeRecord"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"cards"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiMeRecord","init(schemaVersion:publicKey:profile:cards:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersion9publicKey7profile5cardsACs6UInt16V_SSAA0d7ProfileF0VSgSayAA0d9TodayCardF0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMeRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings11FfiMeRecordV","spelling":"FfiMeRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMeRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMeRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cards"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiMeRecord","cards"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV5cardsSayAA0d9TodayCardF0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMeRecord","profile"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV7profileAA0d7ProfileF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMeRecord","publicKey"],"precise":"s:19RadrootsKitBindings11FfiMeRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initLogging"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"dir"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"fileName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"isStdout"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?) "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["initLogging(dir:fileName:isStdout:)"],"precise":"s:19RadrootsKitBindings11initLogging3dir8fileName8isStdoutySSSg_AFSbSgtKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftKind"}],"kind":"swift.enum","path":["FfiDraftKind"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retraction"}],"kind":"swift.enum.case","path":["FfiDraftKind","retraction"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO10retractionyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"add"}],"kind":"swift.enum.case","path":["FfiDraftKind","add"],"precise":"s:19RadrootsKitBindings12FfiDraftKindO3addyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaStage"}],"kind":"swift.enum","path":["FfiMediaStage"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["FfiMediaStage","failed"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"}],"kind":"swift.enum.case","path":["FfiMediaStage","pending"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO7pendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphaned"}],"kind":"swift.enum.case","path":["FfiMediaStage","orphaned"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO8orphanedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verified"}],"kind":"swift.enum.case","path":["FfiMediaStage","verified"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO8verifiedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparing"}],"kind":"swift.enum.case","path":["FfiMediaStage","preparing"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO9preparingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uploading"}],"kind":"swift.enum.case","path":["FfiMediaStage","uploading"],"precise":"s:19RadrootsKitBindings13FfiMediaStageO9uploadingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiOutboxState"}],"kind":"swift.enum","path":["FfiOutboxState"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"delivering"}],"kind":"swift.enum.case","path":["FfiOutboxState","delivering"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO10deliveringyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readyToSign"}],"kind":"swift.enum.case","path":["FfiOutboxState","readyToSign"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO11readyToSignyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaPreparing"}],"kind":"swift.enum.case","path":["FfiOutboxState","mediaPreparing"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaPreparingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaUploading"}],"kind":"swift.enum.case","path":["FfiOutboxState","mediaUploading"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO14mediaUploadingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partiallyDelivered"}],"kind":"swift.enum.case","path":["FfiOutboxState","partiallyDelivered"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO18partiallyDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draft"}],"kind":"swift.enum.case","path":["FfiOutboxState","draft"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO5draftyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"queued"}],"kind":"swift.enum.case","path":["FfiOutboxState","queued"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO6queuedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"}],"kind":"swift.enum.case","path":["FfiOutboxState","signed"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO6signedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signing"}],"kind":"swift.enum.case","path":["FfiOutboxState","signing"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO7signingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiOutboxState","complete"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"terminal"}],"kind":"swift.enum.case","path":["FfiOutboxState","terminal"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO8terminalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["FfiOutboxState","cancelled"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"}],"kind":"swift.enum.case","path":["FfiOutboxState","retryable"],"precise":"s:19RadrootsKitBindings14FfiOutboxStateO9retryableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddFieldKind"}],"kind":"swift.enum","path":["FfiAddFieldKind"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"multilineText"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","multilineText"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO13multilineTextyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"date"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","date"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO4dateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"text"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","text"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO4textyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","media"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO5mediayA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"choice"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","choice"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO6choiceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"decimal"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","decimal"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO7decimalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"dateTime"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","dateTime"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO8dateTimeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"}],"kind":"swift.enum.case","path":["FfiAddFieldKind","location"],"precise":"s:19RadrootsKitBindings15FfiAddFieldKindO8locationyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddDraftInput"}],"kind":"swift.struct","path":["FfiAddDraftInput"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","foodStatus"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","identifier"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV10identifierSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiAddDraftInput","commandType"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11commandTypeAA0de7CommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventTiming"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11eventTimingAA0d5EventI4KindOSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","priceAmount"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventEndDate"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV12eventEndDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventEndUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventTimezone"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13eventTimezoneSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiAddDraftInput","init(schemaVersion:commandType:content:identifier:title:summary:location:eventTiming:eventStartDate:eventEndDate:eventStartUnixS:eventEndUnixS:eventTimezone:priceAmount:currency:unit:quantity:foodPublishedAtUnixS:foodStatus:media:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0de7CommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0d13PreparedMediaG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddDraftInput","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventStartDate"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV14eventStartDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","eventStartUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddDraftInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddDraftInput","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","unit"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV4unitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddDraftInput","media"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV5mediaSayAA0d13PreparedMediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","title"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddDraftInput","content"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","summary"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV7summarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","currency"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8currencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","location"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddDraftInput","quantity"],"precise":"s:19RadrootsKitBindings16FfiAddDraftInputV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAppInfoRecord"}],"kind":"swift.struct","path":["FfiAppInfoRecord"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shuttingDown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiAppInfoRecord","shuttingDown"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV12shuttingDownSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uptimeMillis"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.property","path":["FfiAppInfoRecord","uptimeMillis"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV12uptimeMilliss5Int64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"build"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"startedUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"uptimeMillis"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"shuttingDown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAppInfoRecord","init(schemaVersion:build:startedUnixMs:uptimeMillis:shuttingDown:platform:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersion5build13startedUnixMs12uptimeMillis12shuttingDown8platformACs6UInt16V_AA0d5BuildfG0Vs5Int64VAOSbAA0de8PlatformG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAppInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"startedUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5Int64V","spelling":"Int64"}],"kind":"swift.property","path":["FfiAppInfoRecord","startedUnixMs"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV13startedUnixMss5Int64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAppInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAppInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"build"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"}],"kind":"swift.property","path":["FfiAppInfoRecord","build"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV5buildAA0d5BuildfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppInfoRecord","platform"],"precise":"s:19RadrootsKitBindings16FfiAppInfoRecordV8platformAA0de8PlatformG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileRecord"}],"kind":"swift.struct","path":["FfiProfileRecord"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","displayName"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV11displayNameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"website"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"lightningAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileRecord","init(schemaVersion:authorPublicKey:name:displayName:about:picture:banner:nip05:website:lightningAddress:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersion15authorPublicKey4name11displayName5about7picture6banner5nip057website16lightningAddressACs6UInt16V_S2SSgA2pA0d14MediaReferenceF0VSgAs3Ptcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lightningAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","lightningAddress"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV16lightningAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","name"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV4nameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","about"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV5aboutSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","nip05"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV5nip05SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","banner"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV6bannerAA0d14MediaReferenceF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","picture"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV7pictureAA0d14MediaReferenceF0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"website"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileRecord","website"],"precise":"s:19RadrootsKitBindings16FfiProfileRecordV7websiteSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionPhase"}],"kind":"swift.enum","path":["FfiRevisionPhase"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partialEffect"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","partialEffect"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO13partialEffectyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacementFailed"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","replacementFailed"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO17replacementFailedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retractionPending"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","retractionPending"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO17retractionPendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacementPending"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","replacementPending"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO18replacementPendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","complete"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["FfiRevisionPhase","cancelled"],"precise":"s:19RadrootsKitBindings16FfiRevisionPhaseO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiThreadProfile"}],"kind":"swift.enum","path":["FfiThreadProfile"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"reply"}],"kind":"swift.enum.case","path":["FfiThreadProfile","reply"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO5replyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"comment"}],"kind":"swift.enum.case","path":["FfiThreadProfile","comment"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO7commentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiThreadProfile","profile"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deletion"}],"kind":"swift.enum.case","path":["FfiThreadProfile","deletion"],"precise":"s:19RadrootsKitBindings16FfiThreadProfileO8deletionyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayCardType"}],"kind":"swift.enum","path":["FfiTodayCardType"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"photoUpdate"}],"kind":"swift.enum.case","path":["FfiTodayCardType","photoUpdate"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO11photoUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodAvailability"}],"kind":"swift.enum.case","path":["FfiTodayCardType","foodAvailability"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO16foodAvailabilityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ask"}],"kind":"swift.enum.case","path":["FfiTodayCardType","ask"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO3askyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"event"}],"kind":"swift.enum.case","path":["FfiTodayCardType","event"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO5eventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"update"}],"kind":"swift.enum.case","path":["FfiTodayCardType","update"],"precise":"s:19RadrootsKitBindings16FfiTodayCardTypeO6updateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddCommandType"}],"kind":"swift.enum","path":["FfiAddCommandType"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createEvent"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createEvent"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO11createEventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createUpdate"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createUpdate"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO12createUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createPhotoUpdate"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createPhotoUpdate"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO17createPhotoUpdateyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createFoodAvailability"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createFoodAvailability"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO22createFoodAvailabilityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createAsk"}],"kind":"swift.enum.case","path":["FfiAddCommandType","createAsk"],"precise":"s:19RadrootsKitBindings17FfiAddCommandTypeO9createAskyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddFieldRecord"}],"kind":"swift.struct","path":["FfiAddFieldRecord"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings15FfiAddFieldKindO","spelling":"FfiAddFieldKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"required"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"choices"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"maxBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"maxItems"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAddFieldRecord","init(schemaVersion:id:label:kind:required:choices:maxBytes:maxItems:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersion2id5label4kind8required7choices8maxBytes0O5ItemsACs6UInt16V_S2SAA0deF4KindOSbSaySSGs6UInt64VSgAMSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddFieldRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddFieldRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddFieldRecord","id"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddFieldRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings15FfiAddFieldKindO","spelling":"FfiAddFieldKind"}],"kind":"swift.property","path":["FfiAddFieldRecord","kind"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddFieldRecord","label"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"choices"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddFieldRecord","choices"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV7choicesSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"maxBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddFieldRecord","maxBytes"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxBytess6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"maxItems"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAddFieldRecord","maxItems"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV8maxItemss6UInt16VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"required"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiAddFieldRecord","required"],"precise":"s:19RadrootsKitBindings17FfiAddFieldRecordV8requiredSbvp"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaOperation"}],"kind":"swift.class","path":["FfiMediaOperation"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isCancelled"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiMediaOperation","isCancelled()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC11isCancelledSbyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["FfiMediaOperation","operationId()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC11operationIdSSyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancel"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiMediaOperation","cancel()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationC6cancelyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"convenience"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.init","path":["FfiMediaOperation","init()"],"precise":"s:19RadrootsKitBindings17FfiMediaOperationCACyKcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionPolicy"}],"kind":"swift.enum","path":["FfiRevisionPolicy"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replaceThenRetract"}],"kind":"swift.enum.case","path":["FfiRevisionPolicy","replaceThenRetract"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO18replaceThenRetractyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"addressableReplacement"}],"kind":"swift.enum.case","path":["FfiRevisionPolicy","addressableReplacement"],"precise":"s:19RadrootsKitBindings17FfiRevisionPolicyO22addressableReplacementyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiShutdownRecord"}],"kind":"swift.struct","path":["FfiShutdownRecord"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alreadyClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiShutdownRecord","alreadyClosed"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13alreadyClosedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alreadyClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiShutdownRecord","init(schemaVersion:state:alreadyClosed:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersion5state13alreadyClosedACs6UInt16V_SSSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiShutdownRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiShutdownRecordV","spelling":"FfiShutdownRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiShutdownRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiShutdownRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiShutdownRecord","state"],"precise":"s:19RadrootsKitBindings17FfiShutdownRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningResult"}],"kind":"swift.struct","path":["HostSigningResult"],"precise":"s:19RadrootsKitBindings17HostSigningResultV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","operationId"],"precise":"s:19RadrootsKitBindings17HostSigningResultV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signatureHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["HostSigningResult","signatureHex"],"precise":"s:19RadrootsKitBindings17HostSigningResultV12signatureHexSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"outcome"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningOutcomeO","spelling":"HostSigningOutcome"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signatureHex"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"completedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["HostSigningResult","init(schemaVersion:outcome:operationId:signerRequestId:publicKey:purpose:signatureHex:completedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersion7outcome11operationId013signerRequestK09publicKey7purpose12signatureHex17completedAtUnixMsACs6UInt16V_AA0dE7OutcomeOS3SAA0dE7PurposeOSSSgs6UInt64Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["HostSigningResult","schemaVersion"],"precise":"s:19RadrootsKitBindings17HostSigningResultV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","signerRequestId"],"precise":"s:19RadrootsKitBindings17HostSigningResultV15signerRequestIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"completedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningResult","completedAtUnixMs"],"precise":"s:19RadrootsKitBindings17HostSigningResultV17completedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17HostSigningResultV","spelling":"HostSigningResult"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["HostSigningResult","==(_:_:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["HostSigningResult","hash(into:)"],"precise":"s:19RadrootsKitBindings17HostSigningResultV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"outcome"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningOutcomeO","spelling":"HostSigningOutcome"}],"kind":"swift.property","path":["HostSigningResult","outcome"],"precise":"s:19RadrootsKitBindings17HostSigningResultV7outcomeAA0dE7OutcomeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"}],"kind":"swift.property","path":["HostSigningResult","purpose"],"precise":"s:19RadrootsKitBindings17HostSigningResultV7purposeAA0dE7PurposeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningResult","publicKey"],"precise":"s:19RadrootsKitBindings17HostSigningResultV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initLoggingStdout"},{"kind":"text","spelling":"() "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["initLoggingStdout()"],"precise":"s:19RadrootsKitBindings17initLoggingStdoutyyKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAddSchemaRecord"}],"kind":"swift.struct","path":["FfiAddSchemaRecord"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiAddSchemaRecord","commandType"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV11commandTypeAA0de7CommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fields"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiAddSchemaRecord","init(schemaVersion:commandType:label:fields:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersion11commandType5label6fieldsACs6UInt16V_AA0de7CommandK0OSSSayAA0de5FieldG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAddSchemaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiAddSchemaRecordV","spelling":"FfiAddSchemaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAddSchemaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAddSchemaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiAddSchemaRecord","label"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fields"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddFieldRecordV","spelling":"FfiAddFieldRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiAddSchemaRecord","fields"],"precise":"s:19RadrootsKitBindings18FfiAddSchemaRecordV6fieldsSayAA0de5FieldG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomHostKind"}],"kind":"swift.enum","path":["FfiBlossomHostKind"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"physicalDevice"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","physicalDevice"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO14physicalDeviceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"native"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","native"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO6nativeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"simulator"}],"kind":"swift.enum.case","path":["FfiBlossomHostKind","simulator"],"precise":"s:19RadrootsKitBindings18FfiBlossomHostKindO9simulatoryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBuildInfoRecord"}],"kind":"swift.struct","path":["FfiBuildInfoRecord"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"libRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","libRevision"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV11libRevisionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"crateVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBuildInfoRecord","crateVersion"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV12crateVersionSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildTimeUnix"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","buildTimeUnix"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13buildTimeUnixs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"crateName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"crateVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"rustc"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"libRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"consumerRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildTimeUnix"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiBuildInfoRecord","init(schemaVersion:crateName:crateVersion:rustc:profile:libRevision:consumerRevision:buildTimeUnix:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersion9crateName0jI05rustc7profile11libRevision08consumerO013buildTimeUnixACs6UInt16V_S3SSgA3Ns6UInt64VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBuildInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"consumerRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","consumerRevision"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV16consumerRevisionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBuildInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBuildInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rustc"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","rustc"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV5rustcSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBuildInfoRecord","profile"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV7profileSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"crateName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBuildInfoRecord","crateName"],"precise":"s:19RadrootsKitBindings18FfiBuildInfoRecordV9crateNameSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftFormRecord"}],"kind":"swift.struct","path":["FfiDraftFormRecord"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","foodStatus"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","identifier"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV10identifierSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiDraftFormRecord","commandType"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventTiming"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11eventTimingAA0d5EventI4KindOSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","priceAmount"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventEndDate"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV12eventEndDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventEndUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventTimezone"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13eventTimezoneSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identifier"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTiming"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiEventTimingKindO","spelling":"FfiEventTimingKind"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventTimezone"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiDraftFormRecord","init(schemaVersion:commandType:content:identifier:title:summary:location:eventTiming:eventStartDate:eventEndDate:eventStartUnixS:eventEndUnixS:eventTimezone:priceAmount:currency:unit:quantity:foodPublishedAtUnixS:foodStatus:media:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersion11commandType7content10identifier5title7summary8location11eventTiming0Q9StartDate0q3EndT00qS5UnixS0quV1S0Q8Timezone11priceAmount8currency4unit8quantity015foodPublishedAtV1S10foodStatus5mediaACs6UInt16V_AA0d10AddCommandK0OS2SSgA0_A0_A0_AA0d5EventR4KindOSgA0_A0_s6UInt64VSgA6_A0_A0_A0_A0_A0_A6_A0_SayAA0def5MediaG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftFormRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartDate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventStartDate"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV14eventStartDateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","eventStartUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftFormRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftFormRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","unit"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV4unitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiDraftFormRecord","media"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV5mediaSayAA0def5MediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","title"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormRecord","content"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"summary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","summary"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV7summarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"currency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","currency"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8currencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","location"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftFormRecord","quantity"],"precise":"s:19RadrootsKitBindings18FfiDraftFormRecordV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiEventTimingKind"}],"kind":"swift.enum","path":["FfiEventTimingKind"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"timed"}],"kind":"swift.enum.case","path":["FfiEventTimingKind","timed"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO5timedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allDay"}],"kind":"swift.enum.case","path":["FfiEventTimingKind","allDay"],"precise":"s:19RadrootsKitBindings18FfiEventTimingKindO6allDayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayCardRecord"}],"kind":"swift.struct","path":["FfiTodayCardRecord"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contractId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","contractId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10contractIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodStatus"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10foodStatusSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rankDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","rankDigest"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV10rankDigestSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contextRank"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiTodayCardRecord","contextRank"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11contextRanks5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodSummary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodSummary"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11foodSummarySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceAmount"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV11priceAmountSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","authorProfile"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13authorProfileAA0diG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","eventEndUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13eventEndUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceCurrency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceCurrency"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13priceCurrencySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"contractId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"effectiveAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"eventEndUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceAmount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceCurrency"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"priceUnit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodSummary"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"foodStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"contextRank"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"inclusionReason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"lifecycle"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","spelling":"FfiCardLifecycleState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"rankDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"thread"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"localOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"localOperationState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiTodayCardRecord","init(schemaVersion:cardId:cardType:sourceEventId:sourceAddress:authorPublicKey:contractId:title:content:authoredAtUnixS:effectiveAtUnixS:eventStartUnixS:eventEndUnixS:location:priceAmount:priceCurrency:priceUnit:quantity:foodSummary:foodPublishedAtUnixS:foodStatus:contextRank:inclusionReason:media:lifecycle:rankDigest:authorProfile:thread:localOperationId:localOperationState:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersion6cardId0J4Type011sourceEventK00M7Address15authorPublicKey08contractK05title7content15authoredAtUnixS09effectivewX1S010eventStartX1S0z3EndX1S8location11priceAmount13priceCurrency9priceUnit8quantity11foodSummary013foodPublishedwX1S10foodStatus11contextRank15inclusionReason5media9lifecycle10rankDigest0P7Profile6thread014localOperationK019localOperationStateACs6UInt16V_SSAA0defL0OS2SSgS2SA10_SSs6UInt64VA12_A12_SgA13_A10_A10_A10_A10_A10_A10_A13_A10_s5UInt8VSSSayAA0d14MediaReferenceG0VGAA0dF14LifecycleStateOA10_AA0d7ProfileG0VSgSayAA0d11ThreadEntryG0VGA10_A10_tcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayCardRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","sourceAddress"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","sourceEventId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV13sourceEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayCardRecord","authoredAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15authoredAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventStartUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","eventStartUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15eventStartUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"inclusionReason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","inclusionReason"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV15inclusionReasonSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"effectiveAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayCardRecord","effectiveAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV16effectiveAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","localOperationId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV16localOperationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localOperationState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","localOperationState"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV19localOperationStateSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"foodPublishedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","foodPublishedAtUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV20foodPublishedAtUnixSs6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayCardRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayCardRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayCardRecord","media"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV5mediaSayAA0d14MediaReferenceG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"title"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","title"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV5titleSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","cardId"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"thread"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayCardRecord","thread"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV6threadSayAA0d11ThreadEntryG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiTodayCardRecord","content"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"}],"kind":"swift.property","path":["FfiTodayCardRecord","cardType"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8cardTypeAA0defI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"location"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","location"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8locationSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"quantity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","quantity"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV8quantitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lifecycle"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCardLifecycleStateO","spelling":"FfiCardLifecycleState"}],"kind":"swift.property","path":["FfiTodayCardRecord","lifecycle"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV9lifecycleAA0dF14LifecycleStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"priceUnit"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayCardRecord","priceUnit"],"precise":"s:19RadrootsKitBindings18FfiTodayCardRecordV9priceUnitSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayPageRecord"}],"kind":"swift.struct","path":["FfiTodayPageRecord"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nextCursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiTodayPageRecord","nextCursor"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV10nextCursorSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"items"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"nextCursor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiTodayPageRecord","init(schemaVersion:asOfUnixS:items:nextCursor:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersion9asOfUnixS5items10nextCursorACs6UInt16V_s6UInt64VSayAA0de4CardG0VGSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayPageRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayPageRecordV","spelling":"FfiTodayPageRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayPageRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayPageRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"items"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiTodayPageRecord","items"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV5itemsSayAA0de4CardG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"asOfUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayPageRecord","asOfUnixS"],"precise":"s:19RadrootsKitBindings18FfiTodayPageRecordV9asOfUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodaySyncRecord"}],"kind":"swift.struct","path":["FfiTodaySyncRecord"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"projection"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.property","path":["FfiTodaySyncRecord","projection"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10projectionAA0de7RefreshG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","spelling":"FfiTodayRelaySyncState"}],"kind":"swift.property","path":["FfiTodaySyncRecord","relayState"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV10relayStateAA0de5RelayfI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pagesFetched"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodaySyncRecord","pagesFetched"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV12pagesFetcheds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO","spelling":"FfiTodayRelaySyncState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pagesFetched"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsObserved"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsAdmitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventsRejected"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"projection"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiTodaySyncRecord","init(schemaVersion:relayState:pagesFetched:eventsObserved:eventsAdmitted:eventsRejected:projection:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersion10relayState12pagesFetched14eventsObserved0N8Admitted0N8Rejected10projectionACs6UInt16V_AA0de5RelayfK0OALs6UInt64VA2pA0de7RefreshG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodaySyncRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsAdmitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsAdmitted"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsAdmitteds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsObserved"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsObserved"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsObserveds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventsRejected"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodaySyncRecord","eventsRejected"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV14eventsRejecteds6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodaySyncRecordV","spelling":"FfiTodaySyncRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodaySyncRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodaySyncRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18FfiTodaySyncRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningOutcome"}],"kind":"swift.enum","path":["HostSigningOutcome"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"invalidated"}],"kind":"swift.enum.case","path":["HostSigningOutcome","invalidated"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO11invalidatedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["HostSigningOutcome","unavailable"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["HostSigningOutcome","failed"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["HostSigningOutcome","locked"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"}],"kind":"swift.enum.case","path":["HostSigningOutcome","signed"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO6signedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rejected"}],"kind":"swift.enum.case","path":["HostSigningOutcome","rejected"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO8rejectedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"timedOut"}],"kind":"swift.enum.case","path":["HostSigningOutcome","timedOut"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO8timedOutyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"}],"kind":"swift.enum.case","path":["HostSigningOutcome","cancelled"],"precise":"s:19RadrootsKitBindings18HostSigningOutcomeO9cancelledyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningPurpose"}],"kind":"swift.enum","path":["HostSigningPurpose"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nostrEvent"}],"kind":"swift.enum.case","path":["HostSigningPurpose","nostrEvent"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO10nostrEventyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossomUpload"}],"kind":"swift.enum.case","path":["HostSigningPurpose","blossomUpload"],"precise":"s:19RadrootsKitBindings18HostSigningPurposeO13blossomUploadyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"HostSigningRequest"}],"kind":"swift.struct","path":["HostSigningRequest"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","signerRequestId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV06signerF2IdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","artifactId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","operationId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventIdDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"}],"kind":"swift.property","path":["HostSigningRequest","eventIdDigest"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13eventIdDigest10Foundation4DataVvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","operationKind"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13operationKindSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signerRequestId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventIdDigest"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"createdAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"tags"},{"kind":"text","spelling":": [["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]], "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["HostSigningRequest","init(schemaVersion:operationKind:operationId:artifactId:signerRequestId:publicKey:purpose:deadlineUnixMs:eventIdDigest:expectedEventId:createdAtUnixS:kind:tags:content:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersion13operationKind0I2Id08artifactK006signerfK09publicKey7purpose14deadlineUnixMs05eventK6Digest013expectedEventK009createdAtR1S4kind4tags7contentACs6UInt16V_S5SAA0dE7PurposeOs6UInt64V10Foundation4DataVSSAWs6UInt32VSaySaySSGGSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["HostSigningRequest","schemaVersion"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningRequest","createdAtUnixS"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV14createdAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["HostSigningRequest","deadlineUnixMs"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV14deadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","expectedEventId"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV15expectedEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningRequestV","spelling":"HostSigningRequest"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["HostSigningRequest","==(_:_:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["HostSigningRequest","hash(into:)"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["HostSigningRequest","kind"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4kinds6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"tags"},{"kind":"text","spelling":": [["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]]"}],"kind":"swift.property","path":["HostSigningRequest","tags"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV4tagsSaySaySSGGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","content"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"purpose"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18HostSigningPurposeO","spelling":"HostSigningPurpose"}],"kind":"swift.property","path":["HostSigningRequest","purpose"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV7purposeAA0dE7PurposeOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["HostSigningRequest","publicKey"],"precise":"s:19RadrootsKitBindings18HostSigningRequestV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"SignerStatusRecord"}],"kind":"swift.struct","path":["SignerStatusRecord"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","spelling":"SignerAvailabilityRecord"}],"kind":"swift.property","path":["SignerStatusRecord","availability"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV12availabilityAA0d12AvailabilityF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24SignerAvailabilityRecordO","spelling":"SignerAvailabilityRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["SignerStatusRecord","init(schemaVersion:availability:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersion12availabilityACs6UInt16V_AA0d12AvailabilityF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["SignerStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18SignerStatusRecordV","spelling":"SignerStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["SignerStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["SignerStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings18SignerStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCapabilityRecord"}],"kind":"swift.struct","path":["FfiCapabilityRecord"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiCapabilityRecord","configured"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV10configuredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","availability"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV12availabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"compiled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"availability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"maturity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiCapabilityRecord","init(schemaVersion:id:compiled:configured:availability:maturity:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersion2id8compiled10configured12availability8maturityACs6UInt16V_SSS2bS2Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiCapabilityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiCapabilityRecordV","spelling":"FfiCapabilityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiCapabilityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","id"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiCapabilityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"compiled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiCapabilityRecord","compiled"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV8compiledSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"maturity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiCapabilityRecord","maturity"],"precise":"s:19RadrootsKitBindings19FfiCapabilityRecordV8maturitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftMediaRecord"}],"kind":"swift.struct","path":["FfiDraftMediaRecord"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"stage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings13FfiMediaStageO","spelling":"FfiMediaStage"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"uploadAttempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"orphanReasonCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"orphanRecordedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiDraftMediaRecord","init(schemaVersion:url:stage:uploadAttempts:verifiedAtUnixMs:possibleOrphan:orphanReasonCode:orphanRecordedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersion3url5stage14uploadAttempts16verifiedAtUnixMs14possibleOrphan16orphanReasonCode0t8RecordedopQ0ACs6UInt16V_SSAA0dF5StageOs5UInt8Vs6UInt64VSgSbSSSgATtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftMediaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiDraftMediaRecord","possibleOrphan"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14possibleOrphanSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"uploadAttempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiDraftMediaRecord","uploadAttempts"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV14uploadAttemptss5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphanReasonCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","orphanReasonCode"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16orphanReasonCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","verifiedAtUnixMs"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV16verifiedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"orphanRecordedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftMediaRecord","orphanRecordedAtUnixMs"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV22orphanRecordedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftMediaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftMediaRecord","url"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftMediaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"stage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings13FfiMediaStageO","spelling":"FfiMediaStage"}],"kind":"swift.property","path":["FfiDraftMediaRecord","stage"],"precise":"s:19RadrootsKitBindings19FfiDraftMediaRecordV5stageAA0dF5StageOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSearchResultType"}],"kind":"swift.enum","path":["FfiSearchResultType"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"card"}],"kind":"swift.enum.case","path":["FfiSearchResultType","card"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO4cardyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiSearchResultType","profile"],"precise":"s:19RadrootsKitBindings19FfiSearchResultTypeO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiAppPlatformRecord"}],"kind":"swift.struct","path":["FfiAppPlatformRecord"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","buildNumber"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV11buildNumberSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildNumber"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiAppPlatformRecord","init(schemaVersion:platform:bundleId:version:buildNumber:buildSha:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersion8platform8bundleId7version11buildNumber0N3ShaACs6UInt16V_SSSgA4Ltcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiAppPlatformRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiAppPlatformRecordV","spelling":"FfiAppPlatformRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiAppPlatformRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiAppPlatformRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"version"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","version"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV7versionSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"buildSha"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","buildSha"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8buildShaSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"bundleId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","bundleId"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8bundleIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"platform"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiAppPlatformRecord","platform"],"precise":"s:19RadrootsKitBindings20FfiAppPlatformRecordV8platformSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftStatusRecord"}],"kind":"swift.struct","path":["FfiDraftStatusRecord"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiDraftStatusRecord","isRevision"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10isRevisionSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","settlement"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiDraftStatusRecord","commandType"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings12FfiDraftKindO","spelling":"FfiDraftKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"form"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"isRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiDraftStatusRecord","init(schemaVersion:draftId:revision:authorPublicKey:kind:commandType:form:state:cardId:operationId:createdAtUnixMs:updatedAtUnixMs:media:settlement:isRevision:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersion7draftId8revision15authorPublicKey4kind11commandType4form5state04cardK009operationK015createdAtUnixMs07updatedxyZ05media10settlement10isRevisionACs6UInt16V_SSs6UInt64VSSAA0dE4KindOAA0d10AddCommandR0OAA0de4FormG0VSgAA0D11OutboxStateOS2SSgA2VSayAA0de5MediaG0VGAA0d19OperationSettlementG0VSgSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","createdAtUnixMs"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15createdAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"form"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiDraftFormRecordV","spelling":"FfiDraftFormRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiDraftStatusRecord","form"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4formAA0de4FormG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings12FfiDraftKindO","spelling":"FfiDraftKind"}],"kind":"swift.property","path":["FfiDraftStatusRecord","kind"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV4kindAA0dE4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiDraftMediaRecordV","spelling":"FfiDraftMediaRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiDraftStatusRecord","media"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5mediaSayAA0de5MediaG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"}],"kind":"swift.property","path":["FfiDraftStatusRecord","state"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV5stateAA0D11OutboxStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","cardId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftStatusRecord","draftId"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftStatusRecord","revision"],"precise":"s:19RadrootsKitBindings20FfiDraftStatusRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityLockState"}],"kind":"swift.enum","path":["FfiIdentityLockState"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["FfiIdentityLockState","locked"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unlocked"}],"kind":"swift.enum.case","path":["FfiIdentityLockState","unlocked"],"precise":"s:19RadrootsKitBindings20FfiIdentityLockStateO8unlockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiQueuePolicyRecord"}],"kind":"swift.struct","path":["FfiQueuePolicyRecord"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","cancellation"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12cancellationAA0d12CancellationF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"satisfaction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","spelling":"FfiRelaySatisfaction"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","satisfaction"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV12satisfactionAA0D17RelaySatisfactionOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"satisfaction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelaySatisfactionO","spelling":"FfiRelaySatisfaction"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiQueuePolicyRecord","init(schemaVersion:relayUrls:satisfaction:deliveryDeadlineUnixMs:cancellation:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersion9relayUrls12satisfaction22deliveryDeadlineUnixMs12cancellationACs6UInt16V_SaySSGAA0D17RelaySatisfactionOs6UInt64VAA0d12CancellationF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","deliveryDeadlineUnixMs"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV22deliveryDeadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV","spelling":"FfiQueuePolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiQueuePolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiQueuePolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiQueuePolicyRecord","relayUrls"],"precise":"s:19RadrootsKitBindings20FfiQueuePolicyRecordV9relayUrlsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayAccessRecord"}],"kind":"swift.enum","path":["FfiRelayAccessRecord"],"precise":"s:19RadrootsKitBindings20FfiRelayAccessRecordO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readOnly"}],"kind":"swift.enum.case","path":["FfiRelayAccessRecord","readOnly"],"precise":"s:19RadrootsKitBindings20FfiRelayAccessRecordO8readOnlyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readWrite"}],"kind":"swift.enum.case","path":["FfiRelayAccessRecord","readWrite"],"precise":"s:19RadrootsKitBindings20FfiRelayAccessRecordO9readWriteyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelaySatisfaction"}],"kind":"swift.enum","path":["FfiRelaySatisfaction"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allAccepted"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","allAccepted"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11allAcceptedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"anyAccepted"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","anyAccepted"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO11anyAcceptedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allDelivered"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","allDelivered"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12allDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"anyDelivered"}],"kind":"swift.enum.case","path":["FfiRelaySatisfaction","anyDelivered"],"precise":"s:19RadrootsKitBindings20FfiRelaySatisfactionO12anyDeliveredyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayStatusRecord"}],"kind":"swift.struct","path":["FfiRelayStatusRecord"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeState"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV10writeStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","spelling":"FfiRelayAccessRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"writeState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"writeLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"readNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"writeNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiRelayStatusRecord","init(schemaVersion:relayUrl:access:readState:writeState:readLastAttemptUnixMs:writeLastAttemptUnixMs:readNextAttemptUnixMs:writeNextAttemptUnixMs:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersion8relayUrl6access9readState05writeN00M17LastAttemptUnixMs0opqrS00m4NextqrS00otqrS0ACs6UInt16V_SSAA0de6AccessG0OS2Ss6UInt64VSgA3Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readLastAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readLastAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readNextAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV21readNextAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeLastAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeLastAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeLastAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeNextAttemptUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRelayStatusRecord","writeNextAttemptUnixMs"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV22writeNextAttemptUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayAccessRecordO","spelling":"FfiRelayAccessRecord"}],"kind":"swift.property","path":["FfiRelayStatusRecord","access"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV6accessAA0de6AccessG0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","relayUrl"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV8relayUrlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusRecord","readState"],"precise":"s:19RadrootsKitBindings20FfiRelayStatusRecordV9readStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeChangeKind"}],"kind":"swift.enum","path":["FfiRuntimeChangeKind"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","media"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5mediayA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relay"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","relay"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5relayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"today"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","today"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO5todayyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"drafts"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","drafts"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO6draftsyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"initial"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","initial"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7initialyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","profile"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO7profileyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identity"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","identity"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8identityyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settings"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","settings"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO8settingsyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lifecycle"}],"kind":"swift.enum.case","path":["FfiRuntimeChangeKind","lifecycle"],"precise":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO9lifecycleyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeInfoRecord"}],"kind":"swift.struct","path":["FfiRuntimeInfoRecord"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"app"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sdk"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sdkClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRuntimeInfoRecord","init(schemaVersion:app:sdk:sdkClosed:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersion3app3sdk0K6ClosedACs6UInt16V_AA0d3AppfG0VAA0d5BuildfG0VSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV","spelling":"FfiRuntimeInfoRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRuntimeInfoRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"app"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAppInfoRecordV","spelling":"FfiAppInfoRecord"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","app"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3appAA0d3AppfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdk"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiBuildInfoRecordV","spelling":"FfiBuildInfoRecord"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","sdk"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV3sdkAA0d5BuildfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRuntimeInfoRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sdkClosed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiRuntimeInfoRecord","sdkClosed"],"precise":"s:19RadrootsKitBindings20FfiRuntimeInfoRecordV9sdkClosedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiThreadEntryRecord"}],"kind":"swift.struct","path":["FfiThreadEntryRecord"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authorProfile"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13authorProfileAA0diG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"parentEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","parentEventId"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13parentEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"eventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiThreadProfileO","spelling":"FfiThreadProfile"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"root"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"parentEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorProfile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiThreadEntryRecord","init(schemaVersion:eventId:authorPublicKey:content:authoredAtUnixS:profile:root:parentEventId:authorProfile:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersion7eventId15authorPublicKey7content15authoredAtUnixS7profile4root011parentEventK00L7ProfileACs6UInt16V_S3Ss6UInt64VAA0deW0OS2SAA0dwG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiThreadEntryRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authoredAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiThreadEntryRecord","authoredAtUnixS"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV15authoredAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiThreadEntryRecordV","spelling":"FfiThreadEntryRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiThreadEntryRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiThreadEntryRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"root"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","root"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV4rootSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"content"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","content"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7contentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"eventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiThreadEntryRecord","eventId"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7eventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiThreadProfileO","spelling":"FfiThreadProfile"}],"kind":"swift.property","path":["FfiThreadEntryRecord","profile"],"precise":"s:19RadrootsKitBindings20FfiThreadEntryRecordV7profileAA0dE7ProfileOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomUploadInput"}],"kind":"swift.struct","path":["FfiBlossomUploadInput"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","artifactId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","operationId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationContent"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationCreatedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationLifetimeSeconds"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signingDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signingCancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomUploadInput","init(schemaVersion:draftId:expectedRevision:media:authorizationContent:authorizationCreatedAtUnixS:authorizationLifetimeSeconds:operationId:artifactId:signingDeadlineUnixMs:signingCancellation:verifiedAtUnixMs:updatedAtUnixMs:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersion7draftId16expectedRevision5media20authorizationContent0O14CreatedAtUnixS0O15LifetimeSeconds09operationK008artifactK0015signingDeadlineS2Ms0X12Cancellation08verifiedrsZ007updatedrsZ0ACs6UInt16V_SSs6UInt64VAA0d13PreparedMediaG0VSSA2TS2SAtA0D18CancellationPolicyOA2Ttcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomUploadInput","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","expectedRevision"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verifiedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","verifiedAtUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV16verifiedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signingCancellation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiCancellationPolicyO","spelling":"FfiCancellationPolicy"}],"kind":"swift.property","path":["FfiBlossomUploadInput","signingCancellation"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV19signingCancellationAA0dI6PolicyOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationContent"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationContent"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV20authorizationContentSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signingDeadlineUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","signingDeadlineUnixMs"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV21signingDeadlineUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationCreatedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationCreatedAtUnixS"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV27authorizationCreatedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationLifetimeSeconds"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadInput","authorizationLifetimeSeconds"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV28authorizationLifetimeSecondss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiBlossomUploadInputV","spelling":"FfiBlossomUploadInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomUploadInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomUploadInput","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"}],"kind":"swift.property","path":["FfiBlossomUploadInput","media"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV5mediaAA0d13PreparedMediaG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadInput","draftId"],"precise":"s:19RadrootsKitBindings21FfiBlossomUploadInputV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCancellationPolicy"}],"kind":"swift.enum","path":["FfiCancellationPolicy"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localCooperative"}],"kind":"swift.enum.case","path":["FfiCancellationPolicy","localCooperative"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO16localCooperativeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preservePublishedRequest"}],"kind":"swift.enum.case","path":["FfiCancellationPolicy","preservePublishedRequest"],"precise":"s:19RadrootsKitBindings21FfiCancellationPolicyO24preservePublishedRequestyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCardLifecycleState"}],"kind":"swift.enum","path":["FfiCardLifecycleState"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"past"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","past"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4pastyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sold"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","sold"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO4soldyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"active"}],"kind":"swift.enum.case","path":["FfiCardLifecycleState","active"],"precise":"s:19RadrootsKitBindings21FfiCardLifecycleStateO6activeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiLocalNetworkRecord"}],"kind":"swift.struct","path":["FfiLocalNetworkRecord"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","generation"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV10generations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"locality"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"followedAuthors"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiLocalNetworkRecord","init(schemaVersion:id:label:relayUrls:locality:followedAuthors:generation:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersion2id5label9relayUrls8locality15followedAuthors10generationACs6UInt16V_S2SSaySSGSSSgAMs6UInt64Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"followedAuthors"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","followedAuthors"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV15followedAuthorsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV","spelling":"FfiLocalNetworkRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiLocalNetworkRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","id"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiLocalNetworkRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"label"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","label"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV5labelSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locality"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","locality"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV8localitySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relayUrls"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiLocalNetworkRecord","relayUrls"],"precise":"s:19RadrootsKitBindings21FfiLocalNetworkRecordV9relayUrlsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiPreparedMediaInput"}],"kind":"swift.struct","path":["FfiPreparedMediaInput"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fileDescriptor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiPreparedMediaInput","init(schemaVersion:opaqueReference:fileDescriptor:sha256:mediaType:byteSize:width:height:alt:preparedAtUnixS:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersion15opaqueReference14fileDescriptor6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_SSs6UInt64VS2SAQs6UInt32VASSSAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiPreparedMediaInput","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fileDescriptor"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","fileDescriptor"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV14fileDescriptors6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","opaqueReference"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15opaqueReferenceSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","preparedAtUnixS"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV15preparedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiPreparedMediaInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","alt"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV3altSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiPreparedMediaInput","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiPreparedMediaInput","width"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiPreparedMediaInput","height"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","sha256"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV6sha256SSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiPreparedMediaInput","byteSize"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiPreparedMediaInput","mediaType"],"precise":"s:19RadrootsKitBindings21FfiPreparedMediaInputV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSearchResultRecord"}],"kind":"swift.struct","path":["FfiSearchResultRecord"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"resultType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiSearchResultTypeO","spelling":"FfiSearchResultType"}],"kind":"swift.property","path":["FfiSearchResultRecord","resultType"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV10resultTypeAA0defI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"resultType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings19FfiSearchResultTypeO","spelling":"FfiSearchResultType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"stableId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"card"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiSearchResultRecord","init(schemaVersion:resultType:stableId:card:profile:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersion10resultType8stableId4card7profileACs6UInt16V_AA0defK0OSSAA0d9TodayCardG0VSgAA0d7ProfileG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSearchResultRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiSearchResultRecordV","spelling":"FfiSearchResultRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSearchResultRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"card"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings18FfiTodayCardRecordV","spelling":"FfiTodayCardRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiSearchResultRecord","card"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV4cardAA0d9TodayCardG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSearchResultRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiProfileRecordV","spelling":"FfiProfileRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiSearchResultRecord","profile"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV7profileAA0d7ProfileG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"stableId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSearchResultRecord","stableId"],"precise":"s:19RadrootsKitBindings21FfiSearchResultRecordV8stableIdSSvp"},{"access":"open","declaration":[{"kind":"keyword","spelling":"class"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSubscriptionHandle"}],"kind":"swift.class","path":["FfiSubscriptionHandle"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unsubscribe"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiSubscriptionHandle","unsubscribe()"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC11unsubscribeyyF"},{"access":"open","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isActive"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiSubscriptionHandle","isActive()"],"precise":"s:19RadrootsKitBindings21FfiSubscriptionHandleC8isActiveSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayRefreshRecord"}],"kind":"swift.struct","path":["FfiTodayRefreshRecord"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEvents"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","sourceEvents"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12sourceEventss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"visibleCards"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","visibleCards"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV12visibleCardss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEvents"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"visibleCards"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profiles"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"threadEntries"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"contentGeneration"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"changed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiTodayRefreshRecord","init(schemaVersion:update:sourceEvents:visibleCards:profiles:threadEntries:contentGeneration:changed:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersion6update12sourceEvents12visibleCards8profiles13threadEntries17contentGeneration7changedACs6UInt16V_AA0dE16ProjectionUpdateOs6UInt64VA4QSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"threadEntries"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","threadEntries"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV13threadEntriess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"contentGeneration"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","contentGeneration"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV17contentGenerations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV","spelling":"FfiTodayRefreshRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiTodayRefreshRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiTodayRefreshRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"update"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO","spelling":"FfiTodayProjectionUpdate"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","update"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV6updateAA0dE16ProjectionUpdateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"changed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","changed"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV7changedSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profiles"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiTodayRefreshRecord","profiles"],"precise":"s:19RadrootsKitBindings21FfiTodayRefreshRecordV8profiless6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomUploadIntent"}],"kind":"swift.struct","path":["FfiBlossomUploadIntent"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomUploadIntent","init(schemaVersion:draftId:expectedRevision:media:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersion7draftId16expectedRevision5mediaACs6UInt16V_SSs6UInt64VAA0D18PreparedMediaInputVtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","expectedRevision"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV","spelling":"FfiBlossomUploadIntent"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomUploadIntent","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomUploadIntent","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","media"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV5mediaAA0D18PreparedMediaInputVvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomUploadIntent","draftId"],"precise":"s:19RadrootsKitBindings22FfiBlossomUploadIntentV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiCardAddParityRecord"}],"kind":"swift.struct","path":["FfiCardAddParityRecord"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiCardAddParityRecord","commandType"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV11commandTypeAA0df7CommandJ0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiCardAddParityRecord","init(schemaVersion:cardType:commandType:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersion8cardType07commandL0ACs6UInt16V_AA0d5TodayeL0OAA0df7CommandL0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiCardAddParityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiCardAddParityRecordV","spelling":"FfiCardAddParityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiCardAddParityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiCardAddParityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiTodayCardTypeO","spelling":"FfiTodayCardType"}],"kind":"swift.property","path":["FfiCardAddParityRecord","cardType"],"precise":"s:19RadrootsKitBindings22FfiCardAddParityRecordV8cardTypeAA0d5TodayeJ0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityCommandKind"}],"kind":"swift.enum","path":["FfiIdentityCommandKind"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"beginImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","beginImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO11beginImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","cancelImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO12cancelImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"completeImport"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","completeImport"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO14completeImportyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lock"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","lock"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO4lockyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"select"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","select"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6selectyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unlock"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","unlock"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO6unlockyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"recover"}],"kind":"swift.enum.case","path":["FfiIdentityCommandKind","recover"],"precise":"s:19RadrootsKitBindings22FfiIdentityCommandKindO7recoveryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityStateRecord"}],"kind":"swift.struct","path":["FfiIdentityStateRecord"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lockState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiIdentityLockStateO","spelling":"FfiIdentityLockState"}],"kind":"swift.property","path":["FfiIdentityStateRecord","lockState"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV04lockF0AA0de4LockF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"activeIdentityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityStateRecord","activeIdentityId"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV06activeE2IdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identities"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiIdentityStateRecord","identities"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV10identitiesSayAA0d8SettingseG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identities"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"activeIdentityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"lockState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiIdentityLockStateO","spelling":"FfiIdentityLockState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pendingImportOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiIdentityStateRecord","init(schemaVersion:identities:activeIdentityId:lockState:pendingImportOperationId:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersion10identities06activeE2Id04lockF0022pendingImportOperationL0ACs6UInt16V_SayAA0d8SettingseG0VGSSSgAA0de4LockF0OANtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityStateRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pendingImportOperationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityStateRecord","pendingImportOperationId"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV24pendingImportOperationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityStateRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityStateRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiIdentityStateRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileStatusRecord"}],"kind":"swift.struct","path":["FfiProfileStatusRecord"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileStatusRecord","deliveryId"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10deliveryIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileStatusRecord","settlement"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV10settlementAA0d19OperationSettlementG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"settlement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileStatusRecord","init(schemaVersion:operationId:revision:authorPublicKey:state:deliveryId:createdAtUnixMs:updatedAtUnixMs:settlement:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersion11operationId8revision15authorPublicKey5state08deliveryK015createdAtUnixMs07updatedstU010settlementACs6UInt16V_SSs6UInt64VSSAA0D11OutboxStateOSSSgA2pA0d19OperationSettlementG0VSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileStatusRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"createdAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","createdAtUnixMs"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15createdAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"updatedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","updatedAtUnixMs"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV15updatedAtUnixMss6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiProfileStatusRecordV","spelling":"FfiProfileStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings14FfiOutboxStateO","spelling":"FfiOutboxState"}],"kind":"swift.property","path":["FfiProfileStatusRecord","state"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV5stateAA0D11OutboxStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiProfileStatusRecord","revision"],"precise":"s:19RadrootsKitBindings22FfiProfileStatusRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionInputRecord"}],"kind":"swift.struct","path":["FfiRevisionInputRecord"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"}],"kind":"swift.property","path":["FfiRevisionInputRecord","replacement"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV11replacementAA0d8AddDraftF0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiAddDraftInputV","spelling":"FfiAddDraftInput"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRevisionInputRecord","init(schemaVersion:cardId:sourceEventId:sourceAddress:authorPublicKey:replacement:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersion6cardId011sourceEventK00L7Address15authorPublicKey11replacementACs6UInt16V_S3SSgSSAA0d8AddDraftF0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRevisionInputRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRevisionInputRecord","sourceAddress"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sourceEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","sourceEventId"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV13sourceEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorPublicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","authorPublicKey"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV15authorPublicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRevisionInputRecordV","spelling":"FfiRevisionInputRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRevisionInputRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRevisionInputRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionInputRecord","cardId"],"precise":"s:19RadrootsKitBindings22FfiRevisionInputRecordV6cardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRuntimeChangeRecord"}],"kind":"swift.struct","path":["FfiRuntimeChangeRecord"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","generation"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV10generations6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"generation"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","spelling":"FfiRuntimeChangeKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"entityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiRuntimeChangeRecord","init(schemaVersion:generation:kind:entityId:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersion10generation4kind8entityIdACs6UInt16V_s6UInt64VAA0deF4KindOSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV","spelling":"FfiRuntimeChangeRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRuntimeChangeRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRuntimeChangeRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRuntimeChangeKindO","spelling":"FfiRuntimeChangeKind"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","kind"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"entityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRuntimeChangeRecord","entityId"],"precise":"s:19RadrootsKitBindings22FfiRuntimeChangeRecordV8entityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiStorageStatusRecord"}],"kind":"swift.struct","path":["FfiStorageStatusRecord"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"backend"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"openMode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"shutdown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"integrity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiStorageStatusRecord","init(schemaVersion:backend:openMode:shutdown:integrity:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersion7backend8openMode8shutdown9integrityACs6UInt16V_S4Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiStorageStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiStorageStatusRecordV","spelling":"FfiStorageStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiStorageStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiStorageStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"backend"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","backend"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV7backendSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"openMode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","openMode"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8openModeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"shutdown"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","shutdown"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV8shutdownSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"integrity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiStorageStatusRecord","integrity"],"precise":"s:19RadrootsKitBindings22FfiStorageStatusRecordV9integritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayRelaySyncState"}],"kind":"swift.enum","path":["FfiTodayRelaySyncState"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"offline"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","offline"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7offlineyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"partial"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","partial"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO7partialyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"complete"}],"kind":"swift.enum.case","path":["FfiTodayRelaySyncState","complete"],"precise":"s:19RadrootsKitBindings22FfiTodayRelaySyncStateO8completeyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiDraftFormMediaRecord"}],"kind":"swift.struct","path":["FfiDraftFormMediaRecord"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiDraftFormMediaRecord","init(schemaVersion:opaqueReference:url:sha256:mediaType:byteSize:width:height:alt:preparedAtUnixS:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersion15opaqueReference3url6sha2569mediaType8byteSize5width6height3alt15preparedAtUnixSACs6UInt16V_S4Ss6UInt64Vs6UInt32VASSSAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"opaqueReference"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","opaqueReference"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15opaqueReferenceSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"preparedAtUnixS"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","preparedAtUnixS"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV15preparedAtUnixSs6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV","spelling":"FfiDraftFormMediaRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiDraftFormMediaRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","alt"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3altSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","url"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiDraftFormMediaRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","width"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","height"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","sha256"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV6sha256SSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","byteSize"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiDraftFormMediaRecord","mediaType"],"precise":"s:19RadrootsKitBindings23FfiDraftFormMediaRecordV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityStatusRecord"}],"kind":"swift.struct","path":["FfiIdentityStatusRecord"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostSignerConfigured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiIdentityStatusRecord","init(schemaVersion:publicKey:hostSignerConfigured:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersion9publicKey20hostSignerConfiguredACs6UInt16V_SSSbtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hostSignerConfigured"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","hostSignerConfigured"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV20hostSignerConfiguredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV","spelling":"FfiIdentityStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiIdentityStatusRecord","publicKey"],"precise":"s:19RadrootsKitBindings23FfiIdentityStatusRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaReferenceRecord"}],"kind":"swift.struct","path":["FfiMediaReferenceRecord"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verification"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","spelling":"FfiMediaVerificationState"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","verification"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV12verificationAA0dE17VerificationStateOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"verification"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaVerificationStateO","spelling":"FfiMediaVerificationState"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMediaReferenceRecord","init(schemaVersion:referenceFingerprint:url:sha256:mediaType:width:height:byteSize:alt:verification:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersion20referenceFingerprint3url6sha2569mediaType5width6height8byteSize3alt12verificationACs6UInt16V_S3SSgAPs6UInt32VSgASs6UInt64VSgApA0dE17VerificationStateOtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"referenceFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","referenceFingerprint"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV20referenceFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV","spelling":"FfiMediaReferenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaReferenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"alt"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","alt"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3altSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","url"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaReferenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","width"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV5widths6UInt32VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","height"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6heights6UInt32VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"sha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","sha256"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV6sha256SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","byteSize"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV8byteSizes6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaReferenceRecord","mediaType"],"precise":"s:19RadrootsKitBindings23FfiMediaReferenceRecordV9mediaTypeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.struct","path":["FfiMobileSettingsRecord"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","localStorage"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","mediaNetwork"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"identity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMobileSettingsRecord","init(schemaVersion:revision:identity:relays:blossom:mediaNetwork:localStorage:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersion8revision8identity6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d13IdentityStateG0VAA0d16RelayPreferencesG0VAA0d7BlossomwG0VAA0d5Mediao6PolicyG0VAA0d5LocalqzG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMobileSettingsRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMobileSettingsRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","relays"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","blossom"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityStateRecordV","spelling":"FfiIdentityStateRecord"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","identity"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8identityAA0d13IdentityStateG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"revision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiMobileSettingsRecord","revision"],"precise":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV8revisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRetractionDraftInput"}],"kind":"swift.struct","path":["FfiRetractionDraftInput"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetKind"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV10targetKinds6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"}],"kind":"swift.property","path":["FfiRetractionDraftInput","commandType"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV11commandTypeAA0d10AddCommandI0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetCardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetCardId"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV12targetCardIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"commandType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiAddCommandTypeO","spelling":"FfiAddCommandType"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetCardId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"targetAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"reason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRetractionDraftInput","init(schemaVersion:commandType:targetCardId:targetEventId:targetKind:targetAddress:reason:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersion11commandType12targetCardId0l5EventN00L4Kind0L7Address6reasonACs6UInt16V_AA0d10AddCommandK0OS2Ss6UInt32VSSSgSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRetractionDraftInput","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetAddress"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetAddress"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetAddressSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"targetEventId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","targetEventId"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV13targetEventIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRetractionDraftInputV","spelling":"FfiRetractionDraftInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRetractionDraftInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRetractionDraftInput","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"reason"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRetractionDraftInput","reason"],"precise":"s:19RadrootsKitBindings23FfiRetractionDraftInputV6reasonSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRevisionStatusRecord"}],"kind":"swift.struct","path":["FfiRevisionStatusRecord"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retraction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","retraction"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV10retractionAA0d5DraftfG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","operationId"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","replacement"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV11replacementAA0d5DraftfG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"replacement"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retraction"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiRevisionPolicyO","spelling":"FfiRevisionPolicy"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"phase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiRevisionPhaseO","spelling":"FfiRevisionPhase"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRevisionStatusRecord","init(schemaVersion:operationId:replacement:retraction:policy:phase:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersion11operationId11replacement10retraction6policy5phaseACs6UInt16V_SSAA0d5DraftfG0VAMSgAA0dE6PolicyOAA0dE5PhaseOtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV","spelling":"FfiRevisionStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRevisionStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRevisionStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"phase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings16FfiRevisionPhaseO","spelling":"FfiRevisionPhase"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","phase"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV5phaseAA0dE5PhaseOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"policy"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings17FfiRevisionPolicyO","spelling":"FfiRevisionPolicy"}],"kind":"swift.property","path":["FfiRevisionStatusRecord","policy"],"precise":"s:19RadrootsKitBindings23FfiRevisionStatusRecordV6policyAA0dE6PolicyOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomEvidenceRecord"}],"kind":"swift.struct","path":["FfiBlossomEvidenceRecord"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorPhase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","errorPhase"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10errorPhaseSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"httpStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","httpStatus"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV10httpStatuss6UInt16VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"origin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"lastSuccessfulState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"transportSecurity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"observedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"httpStatus"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"errorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"serverErrorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"errorPhase"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"attempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomEvidenceRecord","init(schemaVersion:origin:configFingerprint:state:lastSuccessfulState:transportSecurity:observedAtUnixMs:httpStatus:errorCode:serverErrorCode:errorPhase:retryable:possibleOrphan:attempts:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersion6origin17configFingerprint5state19lastSuccessfulState17transportSecurity16observedAtUnixMs10httpStatus9errorCode011serverErrorZ00Y5Phase9retryable14possibleOrphan8attemptsACs6UInt16V_S5Ss6UInt64VSgASSgSSSgA2XS2bs5UInt8Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"possibleOrphan"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","possibleOrphan"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV14possibleOrphanSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"serverErrorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","serverErrorCode"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV15serverErrorCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"observedAtUnixMs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","observedAtUnixMs"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV16observedAtUnixMss6UInt64VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","configFingerprint"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17configFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"transportSecurity"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","transportSecurity"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV17transportSecuritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"lastSuccessfulState"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","lastSuccessfulState"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV19lastSuccessfulStateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV","spelling":"FfiBlossomEvidenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomEvidenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomEvidenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","state"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"origin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","origin"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV6originSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"attempts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s5UInt8V","spelling":"UInt8"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","attempts"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV8attemptss5UInt8Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"errorCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","errorCode"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9errorCodeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiBlossomEvidenceRecord","retryable"],"precise":"s:19RadrootsKitBindings24FfiBlossomEvidenceRecordV9retryableSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiIdentityCommandRecord"}],"kind":"swift.struct","path":["FfiIdentityCommandRecord"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"identityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","identityId"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV10identityIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","operationId"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","spelling":"FfiIdentityCommandKind"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"identityId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiIdentityCommandRecord","init(schemaVersion:kind:operationId:identityId:publicKey:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersion4kind11operationId08identityL09publicKeyACs6UInt16V_AA0deF4KindOSSSgA2Mtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV","spelling":"FfiIdentityCommandRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiIdentityCommandRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiIdentityCommandRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"kind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings22FfiIdentityCommandKindO","spelling":"FfiIdentityCommandKind"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","kind"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV4kindAA0deF4KindOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiIdentityCommandRecord","publicKey"],"precise":"s:19RadrootsKitBindings24FfiIdentityCommandRecordV9publicKeySSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiNativeUploadJobRecord"}],"kind":"swift.struct","path":["FfiNativeUploadJobRecord"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","operationId"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV11operationIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draft"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"remoteUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authorizationHeader"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedSha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiNativeUploadJobRecord","init(schemaVersion:operationId:draft:remoteUrl:authorizationHeader:expectedSha256:mediaType:byteSize:)"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV13schemaVersion11operationId5draft9remoteUrl19authorizationHeader14expectedSha2569mediaType8byteSizeACs6UInt16V_SSAA0d11DraftStatusH0VS4Ss6UInt64Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedSha256"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","expectedSha256"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV14expectedSha256SSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authorizationHeader"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","authorizationHeader"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV19authorizationHeaderSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","spelling":"FfiNativeUploadJobRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV","spelling":"FfiNativeUploadJobRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiNativeUploadJobRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiNativeUploadJobRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draft"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiDraftStatusRecordV","spelling":"FfiDraftStatusRecord"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","draft"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV5draftAA0d11DraftStatusH0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","byteSize"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","mediaType"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"remoteUrl"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadJobRecord","remoteUrl"],"precise":"s:19RadrootsKitBindings24FfiNativeUploadJobRecordV9remoteUrlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayAccessPreference"}],"kind":"swift.enum","path":["FfiRelayAccessPreference"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readOnly"}],"kind":"swift.enum.case","path":["FfiRelayAccessPreference","readOnly"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO8readOnlyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readWrite"}],"kind":"swift.enum.case","path":["FfiRelayAccessPreference","readWrite"],"precise":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO9readWriteyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayPreferenceRecord"}],"kind":"swift.struct","path":["FfiRelayPreferenceRecord"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","spelling":"FfiRelayAccessPreference"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiRelayPreferenceRecord","init(schemaVersion:url:access:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersion3url6accessACs6UInt16V_SSAA0de6AccessF0Otcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayPreferenceRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"url"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","url"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV3urlSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayPreferenceRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"access"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayAccessPreferenceO","spelling":"FfiRelayAccessPreference"}],"kind":"swift.property","path":["FfiRelayPreferenceRecord","access"],"precise":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV6accessAA0de6AccessF0Ovp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiReplaceSettingsRecord"}],"kind":"swift.struct","path":["FfiReplaceSettingsRecord"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","localStorage"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12localStorageAA0d5Locali6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","mediaNetwork"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV12mediaNetworkAA0d5Mediai6PolicyG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaNetwork"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"localStorage"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiReplaceSettingsRecord","init(schemaVersion:expectedRevision:relays:blossom:mediaNetwork:localStorage:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersion16expectedRevision6relays7blossom12mediaNetwork12localStorageACs6UInt16V_s6UInt64VAA0d16RelayPreferencesG0VAA0d7BlossomuG0VAA0d5Mediao6PolicyG0VAA0d5LocalqxG0Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","expectedRevision"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV","spelling":"FfiReplaceSettingsRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiReplaceSettingsRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiReplaceSettingsRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","relays"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV6relaysAA0d16RelayPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"blossom"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.property","path":["FfiReplaceSettingsRecord","blossom"],"precise":"s:19RadrootsKitBindings24FfiReplaceSettingsRecordV7blossomAA0d18BlossomPreferencesG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiTodayProjectionUpdate"}],"kind":"swift.enum","path":["FfiTodayProjectionUpdate"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"incremental"}],"kind":"swift.enum.case","path":["FfiTodayProjectionUpdate","incremental"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO11incrementalyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"rebuild"}],"kind":"swift.enum.case","path":["FfiTodayProjectionUpdate","rebuild"],"precise":"s:19RadrootsKitBindings24FfiTodayProjectionUpdateO7rebuildyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"SignerAvailabilityRecord"}],"kind":"swift.enum","path":["SignerAvailabilityRecord"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","unavailable"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"busy"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","busy"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO4busyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ready"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","ready"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO5readyyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"locked"}],"kind":"swift.enum.case","path":["SignerAvailabilityRecord","locked"],"precise":"s:19RadrootsKitBindings24SignerAvailabilityRecordO6lockedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaCacheStatusRecord"}],"kind":"swift.struct","path":["FfiMediaCacheStatusRecord"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"totalBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","totalBytes"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV10totalBytess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactCount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","artifactCount"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13artifactCounts6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifactCount"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"totalBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiMediaCacheStatusRecord","init(schemaVersion:artifactCount:totalBytes:configurationFingerprint:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersion13artifactCount10totalBytes24configurationFingerprintACs6UInt16V_s6UInt32Vs6UInt64VSSSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configurationFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiMediaCacheStatusRecord","configurationFingerprint"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV24configurationFingerprintSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV","spelling":"FfiMediaCacheStatusRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaCacheStatusRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaCacheStatusRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiMediaCacheStatusRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaOperationProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["FfiMediaOperationProtocol"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isCancelled"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","isCancelled()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11isCancelledSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","operationId()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP11operationIdSSyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancel"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiMediaOperationProtocol","cancel()"],"precise":"s:19RadrootsKitBindings25FfiMediaOperationProtocolP6cancelyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaVerificationState"}],"kind":"swift.enum","path":["FfiMediaVerificationState"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","unavailable"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failed"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","failed"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO6failedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","pending"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO7pendingyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"verified"}],"kind":"swift.enum.case","path":["FfiMediaVerificationState","verified"],"precise":"s:19RadrootsKitBindings25FfiMediaVerificationStateO8verifiedyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayPreferencesRecord"}],"kind":"swift.struct","path":["FfiRelayPreferencesRecord"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","environment"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpoints"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiRelayPreferencesRecord","init(schemaVersion:environment:endpoints:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersion11environment9endpointsACs6UInt16V_AA0D24MobileNetworkEnvironmentOSayAA0de10PreferenceG0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV","spelling":"FfiRelayPreferencesRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayPreferencesRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayPreferencesRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"endpoints"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings24FfiRelayPreferenceRecordV","spelling":"FfiRelayPreferenceRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiRelayPreferencesRecord","endpoints"],"precise":"s:19RadrootsKitBindings25FfiRelayPreferencesRecordV9endpointsSayAA0de10PreferenceG0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSettingsIdentityRecord"}],"kind":"swift.struct","path":["FfiSettingsIdentityRecord"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiSettingsIdentityRecord","init(schemaVersion:id:publicKey:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersion2id9publicKeyACs6UInt16V_S2Stcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV","spelling":"FfiSettingsIdentityRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSettingsIdentityRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"id"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","id"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV2idSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSettingsIdentityRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicKey"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiSettingsIdentityRecord","publicKey"],"precise":"s:19RadrootsKitBindings25FfiSettingsIdentityRecordV9publicKeySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"ProtectedDataAvailability"}],"kind":"swift.enum","path":["ProtectedDataAvailability"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unavailable"}],"kind":"swift.enum.case","path":["ProtectedDataAvailability","unavailable"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO11unavailableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"available"}],"kind":"swift.enum.case","path":["ProtectedDataAvailability","available"],"precise":"s:19RadrootsKitBindings25ProtectedDataAvailabilityO9availableyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiRelayStatusReportRecord"}],"kind":"swift.struct","path":["FfiRelayStatusReportRecord"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"readAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"writeAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"relays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiRelayStatusReportRecord","init(schemaVersion:profile:state:readAvailability:writeAvailability:relays:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersion7profile5state16readAvailability05writeN06relaysACs6UInt16V_S4SSayAA0defH0VGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"readAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","readAvailability"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV16readAvailabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"writeAvailability"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","writeAvailability"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV17writeAvailabilitySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV","spelling":"FfiRelayStatusReportRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiRelayStatusReportRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiRelayStatusReportRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"state"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","state"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV5stateSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"relays"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings20FfiRelayStatusRecordV","spelling":"FfiRelayStatusRecord"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","relays"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV6relaysSayAA0defH0VGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"profile"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiRelayStatusReportRecord","profile"],"precise":"s:19RadrootsKitBindings26FfiRelayStatusReportRecordV7profileSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomEndpointAuthority"}],"kind":"swift.enum","path":["FfiBlossomEndpointAuthority"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicWebPki"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","publicWebPki"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO12publicWebPkiyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"loopbackDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","loopbackDevelopment"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO19loopbackDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"privateNetworkDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomEndpointAuthority","privateNetworkDevelopment"],"precise":"s:19RadrootsKitBindings27FfiBlossomEndpointAuthorityO25privateNetworkDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomPreferencesRecord"}],"kind":"swift.struct","path":["FfiBlossomPreferencesRecord"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","environment"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV11environmentAA0D24MobileNetworkEnvironmentOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","primaryOrigin"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13primaryOriginSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"environment"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO","spelling":"FfiMobileNetworkEnvironment"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"authority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","spelling":"FfiBlossomAuthorityPreference"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"])"}],"kind":"swift.init","path":["FfiBlossomPreferencesRecord","init(schemaVersion:environment:authority:primaryOrigin:fallbackOrigins:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersion11environment9authority13primaryOrigin15fallbackOriginsACs6UInt16V_AA0D24MobileNetworkEnvironmentOAA0dE19AuthorityPreferenceOSSSaySSGtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","fallbackOrigins"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV15fallbackOriginsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV","spelling":"FfiBlossomPreferencesRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomPreferencesRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomPreferencesRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"authority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO","spelling":"FfiBlossomAuthorityPreference"}],"kind":"swift.property","path":["FfiBlossomPreferencesRecord","authority"],"precise":"s:19RadrootsKitBindings27FfiBlossomPreferencesRecordV9authorityAA0dE19AuthorityPreferenceOvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiLocalStoragePolicyRecord"}],"kind":"swift.struct","path":["FfiLocalStoragePolicyRecord"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheArtifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiLocalStoragePolicyRecord","init(schemaVersion:mediaCacheBytes:mediaCacheArtifacts:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersion15mediaCacheBytes0kL9ArtifactsACs6UInt16V_s6UInt64Vs6UInt32Vtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheBytes"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","mediaCacheBytes"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV15mediaCacheBytess6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheArtifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiLocalStoragePolicyRecord","mediaCacheArtifacts"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV19mediaCacheArtifactss6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV","spelling":"FfiLocalStoragePolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiLocalStoragePolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiLocalStoragePolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiLocalStoragePolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMediaNetworkPolicyRecord"}],"kind":"swift.struct","path":["FfiMediaNetworkPolicyRecord"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowCellularDownloads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowCellularUploads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"allowBackgroundTransfers"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiMediaNetworkPolicyRecord","init(schemaVersion:allowCellularDownloads:allowCellularUploads:allowBackgroundTransfers:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersion22allowCellularDownloads0kL7Uploads0K19BackgroundTransfersACs6UInt16V_S3btcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowCellularUploads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowCellularUploads"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV20allowCellularUploadsSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowCellularDownloads"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowCellularDownloads"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV22allowCellularDownloadsSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"allowBackgroundTransfers"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiMediaNetworkPolicyRecord","allowBackgroundTransfers"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV24allowBackgroundTransfersSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV","spelling":"FfiMediaNetworkPolicyRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiMediaNetworkPolicyRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiMediaNetworkPolicyRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiMediaNetworkPolicyRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiMobileNetworkEnvironment"}],"kind":"swift.enum","path":["FfiMobileNetworkEnvironment"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"physicalDevice"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","physicalDevice"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO14physicalDeviceyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"`public`"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","public"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO6publicyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"simulator"}],"kind":"swift.enum.case","path":["FfiMobileNetworkEnvironment","simulator"],"precise":"s:19RadrootsKitBindings27FfiMobileNetworkEnvironmentO9simulatoryA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSettingsTransitionRecord"}],"kind":"swift.struct","path":["FfiSettingsTransitionRecord"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"settings"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"runtimeRestartRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"outboxRequeueRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaCacheInvalidationRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiSettingsTransitionRecord","init(schemaVersion:settings:runtimeRestartRequired:outboxRequeueRequired:mediaCacheInvalidationRequired:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersion8settings22runtimeRestartRequired013outboxRequeueM0022mediaCacheInvalidationM0ACs6UInt16V_AA0d6MobileeG0VS3btcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"outboxRequeueRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","outboxRequeueRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV21outboxRequeueRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"runtimeRestartRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","runtimeRestartRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV22runtimeRestartRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV","spelling":"FfiSettingsTransitionRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiSettingsTransitionRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaCacheInvalidationRequired"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","mediaCacheInvalidationRequired"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV30mediaCacheInvalidationRequiredSbvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiSettingsTransitionRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"settings"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings23FfiMobileSettingsRecordV","spelling":"FfiMobileSettingsRecord"}],"kind":"swift.property","path":["FfiSettingsTransitionRecord","settings"],"precise":"s:19RadrootsKitBindings27FfiSettingsTransitionRecordV8settingsAA0d6MobileeG0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiOperationSettlementRecord"}],"kind":"swift.struct","path":["FfiOperationSettlementRecord"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryPlans"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryPlans"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13deliveryPlanss6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"indeterminate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","indeterminate"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13indeterminates6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"artifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"signed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"admitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"pending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"indeterminate"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"failedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"cancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryPlans"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliverySatisfied"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryPending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryRetryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryExhausted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryFailedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"deliveryCancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiOperationSettlementRecord","init(schemaVersion:artifacts:signed:admitted:pending:retryable:indeterminate:failedTerminal:cancelled:deliveryPlans:deliverySatisfied:deliveryPending:deliveryRetryable:deliveryExhausted:deliveryFailedTerminal:deliveryCancelled:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersion9artifacts6signed8admitted7pending9retryable13indeterminate14failedTerminal9cancelled13deliveryPlans0S9Satisfied0S7Pending0S9Retryable0S9Exhausted0s6FailedQ00S9CancelledACs6UInt16V_A15Utcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"failedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","failedTerminal"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV14failedTerminals6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryPending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryPending"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV15deliveryPendings6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryCancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryCancelled"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryCancelleds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryExhausted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryExhausted"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryExhausteds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryRetryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryRetryable"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliveryRetryables6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliverySatisfied"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliverySatisfied"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV17deliverySatisfieds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"deliveryFailedTerminal"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","deliveryFailedTerminal"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV22deliveryFailedTerminals6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV","spelling":"FfiOperationSettlementRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiOperationSettlementRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiOperationSettlementRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"signed"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","signed"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV6signeds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"pending"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","pending"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV7pendings6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"admitted"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","admitted"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV8admitteds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifacts"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","artifacts"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9artifactss6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"cancelled"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","cancelled"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9cancelleds6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"retryable"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiOperationSettlementRecord","retryable"],"precise":"s:19RadrootsKitBindings28FfiOperationSettlementRecordV9retryables6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"enum"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomAuthorityPreference"}],"kind":"swift.enum","path":["FfiBlossomAuthorityPreference"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"publicWebPki"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","publicWebPki"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO12publicWebPkiyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"loopbackDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","loopbackDevelopment"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO19loopbackDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"case"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"privateNetworkDevelopment"}],"kind":"swift.enum.case","path":["FfiBlossomAuthorityPreference","privateNetworkDevelopment"],"precise":"s:19RadrootsKitBindings29FfiBlossomAuthorityPreferenceO25privateNetworkDevelopmentyA2CmF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiBlossomConfigurationRecord"}],"kind":"swift.struct","path":["FfiBlossomConfigurationRecord"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","primaryOrigin"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13primaryOriginSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"primaryOrigin"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"], "},{"kind":"externalParam","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiBlossomConfigurationRecord","init(schemaVersion:hostKind:endpointAuthority:primaryOrigin:fallbackOrigins:configFingerprint:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersion8hostKind17endpointAuthority13primaryOrigin15fallbackOrigins17configFingerprintACs6UInt16V_S3SSaySSGSStcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"fallbackOrigins"},{"kind":"text","spelling":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"]"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","fallbackOrigins"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV15fallbackOriginsSaySSGvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"configFingerprint"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","configFingerprint"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17configFingerprintSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"endpointAuthority"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","endpointAuthority"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV17endpointAuthoritySSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV","spelling":"FfiBlossomConfigurationRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiBlossomConfigurationRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiBlossomConfigurationRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hostKind"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiBlossomConfigurationRecord","hostKind"],"precise":"s:19RadrootsKitBindings29FfiBlossomConfigurationRecordV8hostKindSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiProfileMetadataInputRecord"}],"kind":"swift.struct","path":["FfiProfileMetadataInputRecord"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","displayName"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV11displayNameSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"displayName"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"bot"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?)"}],"kind":"swift.init","path":["FfiProfileMetadataInputRecord","init(schemaVersion:name:displayName:about:picture:banner:nip05:bot:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersion4name11displayName5about7picture6banner5nip053botACs6UInt16V_S2SSgAnA0d13PreparedMediaG0VSgAqNSbSgtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV","spelling":"FfiProfileMetadataInputRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiProfileMetadataInputRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"bot"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","bot"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV3botSbSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiProfileMetadataInputRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"name"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","name"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV4nameSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"about"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","about"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5aboutSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"nip05"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","nip05"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV5nip05SSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"banner"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","banner"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV6bannerAA0d13PreparedMediaG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"picture"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiProfileMetadataInputRecord","picture"],"precise":"s:19RadrootsKitBindings29FfiProfileMetadataInputRecordV7pictureAA0d13PreparedMediaG0VSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"protocol"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiSubscriptionHandleProtocol"},{"kind":"text","spelling":" : AnyObject, "},{"kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP","spelling":"Sendable"}],"kind":"swift.protocol","path":["FfiSubscriptionHandleProtocol"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"unsubscribe"},{"kind":"text","spelling":"()"}],"kind":"swift.method","path":["FfiSubscriptionHandleProtocol","unsubscribe()"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP11unsubscribeyyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"isActive"},{"kind":"text","spelling":"() -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.method","path":["FfiSubscriptionHandleProtocol","isActive()"],"precise":"s:19RadrootsKitBindings29FfiSubscriptionHandleProtocolP8isActiveSbyF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiNativeUploadCompletionInput"}],"kind":"swift.struct","path":["FfiNativeUploadCompletionInput"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"statusCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","statusCode"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV10statusCodes6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"responseBody"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","responseBody"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV12responseBody10Foundation4DataVvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"statusCode"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"responseMediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"responseContentEncoding"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"responseBody"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DataV","spelling":"Data"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiNativeUploadCompletionInput","init(schemaVersion:draftId:expectedRevision:media:statusCode:responseMediaType:responseContentEncoding:responseBody:)"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV13schemaVersion7draftId16expectedRevision5media10statusCode17responseMediaType0R15ContentEncoding0R4BodyACs6UInt16V_SSs6UInt64VAA0d8PreparedsH0VAMSSSgAR10Foundation4DataVtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","schemaVersion"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"expectedRevision"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","expectedRevision"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV16expectedRevisions6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"responseMediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","responseMediaType"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV17responseMediaTypeSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"responseContentEncoding"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","responseContentEncoding"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV23responseContentEncodingSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","spelling":"FfiNativeUploadCompletionInput"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV","spelling":"FfiNativeUploadCompletionInput"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiNativeUploadCompletionInput","==(_:_:)"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiNativeUploadCompletionInput","hash(into:)"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"media"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings21FfiPreparedMediaInputV","spelling":"FfiPreparedMediaInput"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","media"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV5mediaAA0d13PreparedMediaH0Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"draftId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiNativeUploadCompletionInput","draftId"],"precise":"s:19RadrootsKitBindings30FfiNativeUploadCompletionInputV7draftIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"struct"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"FfiVerifiedMediaArtifactRecord"}],"kind":"swift.struct","path":["FfiVerifiedMediaArtifactRecord"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","artifactId"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV10artifactIdSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","operationId"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV11operationIdSSSgvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"init"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"operationId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":"?, "},{"kind":"externalParam","spelling":"artifactId"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":", "},{"kind":"externalParam","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"},{"kind":"text","spelling":")"}],"kind":"swift.init","path":["FfiVerifiedMediaArtifactRecord","init(schemaVersion:operationId:artifactId:byteSize:mediaType:width:height:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersion11operationId08artifactL08byteSize9mediaType5width6heightACs6UInt16V_SSSgSSs6UInt64VSSs6UInt32VAQtcfc"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"schemaVersion"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt16V","spelling":"UInt16"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","schemaVersion"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV13schemaVersions6UInt16Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"static"},{"kind":"text","spelling":" "},{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"=="},{"kind":"text","spelling":" "},{"kind":"text","spelling":"("},{"kind":"internalParam","spelling":"lhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":", "},{"kind":"internalParam","spelling":"rhs"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV","spelling":"FfiVerifiedMediaArtifactRecord"},{"kind":"text","spelling":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","spelling":"Bool"}],"kind":"swift.func.op","path":["FfiVerifiedMediaArtifactRecord","==(_:_:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV2eeoiySbAC_ACtFZ"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"hash"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"into"},{"kind":"text","spelling":" "},{"kind":"internalParam","spelling":"hasher"},{"kind":"text","spelling":": "},{"kind":"keyword","spelling":"inout"},{"kind":"text","spelling":" "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6HasherV","spelling":"Hasher"},{"kind":"text","spelling":")"}],"kind":"swift.method","path":["FfiVerifiedMediaArtifactRecord","hash(into:)"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV4hash4intoys6HasherVz_tF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"width"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","width"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV5widths6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"height"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt32V","spelling":"UInt32"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","height"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV6heights6UInt32Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"byteSize"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:s6UInt64V","spelling":"UInt64"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","byteSize"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV8byteSizes6UInt64Vvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"var"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"mediaType"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"}],"kind":"swift.property","path":["FfiVerifiedMediaArtifactRecord","mediaType"],"precise":"s:19RadrootsKitBindings30FfiVerifiedMediaArtifactRecordV9mediaTypeSSvp"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logInfo"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logInfo(msg:)"],"precise":"s:19RadrootsKitBindings7logInfo3msgySS_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logDebug"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logDebug(msg:)"],"precise":"s:19RadrootsKitBindings8logDebug3msgySS_tKF"},{"access":"public","declaration":[{"kind":"keyword","spelling":"func"},{"kind":"text","spelling":" "},{"kind":"identifier","spelling":"logError"},{"kind":"text","spelling":"("},{"kind":"externalParam","spelling":"msg"},{"kind":"text","spelling":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","spelling":"String"},{"kind":"text","spelling":") "},{"kind":"keyword","spelling":"throws"}],"kind":"swift.func","path":["logError(msg:)"],"precise":"s:19RadrootsKitBindings8logError3msgySS_tKF"}]} diff --git a/RadrootsFFI/provenance.json b/RadrootsFFI/provenance.json @@ -10,12 +10,12 @@ "files": [], "provenance": { "repository": "https://github.com/radrootslabs/lib", - "revision": "828c462255b52a3d9bbfe8ef90b7bc38395bedfa", + "revision": "18973e0aa62ae809b0495d5812b0c5ac8c7774ff", "architecture": "radroots.crates.release.v2", "catalog_sha256": "8c27cebf6825f9ed74e122513c661f6dd31837dddb39d0988014121d8ab05e75", - "lockfile_sha256": "8d357ab3ab9bf96d3fab442e003880b2d9a0a030a8c9b8f1ea90903d2b308e5d", - "source_archive_sha256": "84bf11f91b21fcd7dde5426440f383a5ddc0f14d731ab607471e924ecf5266bc", - "source_date_epoch": 1786386437, + "lockfile_sha256": "b3be85e6245b38bd14f296cb3f6de9381bfb4e830115f9c7484337be70561d44", + "source_archive_sha256": "5b08a33a766e6d1da73e61927d7063474eb223ee8f0dc4532230c8d59c301b2c", + "source_date_epoch": 1786394158, "builder_id": "radroots_ios_app", "features": [] } diff --git a/RadrootsFFI/source.lock b/RadrootsFFI/source.lock @@ -1,11 +1,11 @@ override RADROOTS_FIELD_LIB_GIT_URL := https://github.com/radrootslabs/lib -override RADROOTS_FIELD_LIB_GIT_REV := 828c462255b52a3d9bbfe8ef90b7bc38395bedfa +override RADROOTS_FIELD_LIB_GIT_REV := 18973e0aa62ae809b0495d5812b0c5ac8c7774ff override RADROOTS_FIELD_FFI_CRATE_VERSION := 0.1.0-alpha -override RADROOTS_FIELD_SOURCE_DATE_EPOCH := 1786386437 -override RADROOTS_FIELD_FFI_DEVICE_SHA256 := 70831a8f9a8a08574c1fa78e2856d6ea5b25667b355931746794c905e199e7b2 -override RADROOTS_FIELD_FFI_SIMULATOR_SHA256 := 1ed33747fee4406604fd19d0e2944e9ec62c77600d1cbaaa334af1c10c9e6885 -override RADROOTS_FIELD_FFI_SWIFT_SHA256 := 23ac38c313c228e2f8352dcf5c5806575cd1ea2e17e86494f4817b7dc78e8d7d -override RADROOTS_FIELD_FFI_HEADER_SHA256 := dd1fcbf12fee446491da3ff12ec7673cdd981d8931f17ef9753785c54ca6d7f9 +override RADROOTS_FIELD_SOURCE_DATE_EPOCH := 1786394158 +override RADROOTS_FIELD_FFI_DEVICE_SHA256 := ed7d82c7699c01f95fa463f045468d5d1e66ad6c4b5f509a33b3ed7b7a7b04dc +override RADROOTS_FIELD_FFI_SIMULATOR_SHA256 := 0f205a84828279982f4666f82fb04fb6a746827672f305433ab3bd85e761e564 +override RADROOTS_FIELD_FFI_SWIFT_SHA256 := c184546e4221df2f489b8ca8431c64e1920618f5715f757fcb9be2105830f05e +override RADROOTS_FIELD_FFI_HEADER_SHA256 := d457c013123eb6edd3e1a12a7b8d34549121066c3d3d1a3beb571ab761fe761e override RADROOTS_FIELD_FFI_MODULEMAP_SHA256 := b228e67197e2c64b6f5b17a270faf640efc0e298e354b0b3301679e7c4dc321a -override RADROOTS_FIELD_FFI_API_SHA256 := 259ca56b9211e6d93bbf43e82ea46dd980969a94d84fc63a35236956b1c01e8f -override RADROOTS_FIELD_FFI_XCFRAMEWORK_SHA256 := 63a37252971a45c7c05cc4d6d09bd74b0c925704643c4c0acefa214986c33ead +override RADROOTS_FIELD_FFI_API_SHA256 := 1c8b3f941e51e8e00f177246c6293d4426d644eb0c90efbdece4ac8004cfe5f3 +override RADROOTS_FIELD_FFI_XCFRAMEWORK_SHA256 := f97fa193f8751737f3a311df5e62a1cbe138441689ab6879c7669e032d154787 diff --git a/RadrootsTests/RadrootsAddStoreTests.swift b/RadrootsTests/RadrootsAddStoreTests.swift @@ -1,693 +1,962 @@ -@testable import RadrootsApp import XCTest -final class RadrootsAddStoreTests: XCTestCase { - @MainActor - func testAllFiveFormsCompleteThroughRuntimeAndSubmittedSnapshotsFreeze() async throws { - let backend = AddBackend() - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore( - runtimeClient: client, - media: AddMediaHarness(), - now: { 1_800_000_000 } - ) - await store.configure(snapshot: backend.snapshot()) - await store.start() - - for type in RadrootsAddCommandType.allCases { - store.newDraft(type: type) - configure(store, type: type) - if type == .createPhotoUpdate { - await store.importPhotos() - XCTAssertEqual(store.form.media.count, 1) - XCTAssertNil(store.form.media.first?.remoteURL) - } - await store.submit() - XCTAssertEqual(store.activeDraft?.commandType, type) - XCTAssertEqual(store.activeDraft?.state, .complete) - XCTAssertEqual(store.activeDraft?.form, store.form) - if type == .createPhotoUpdate { - XCTAssertEqual( - store.form.media.first?.remoteURL, - "http://127.0.0.1:3000/\(String(repeating: "0", count: 64)).png" - ) - let didUpload = await backend.didUploadMedia() - XCTAssertTrue(didUpload) - } - } - - let frozen = store.form - store.updateForm(\.content, "mutated after submit") - store.selectType(.createUpdate) - XCTAssertEqual(store.form, frozen) - XCTAssertFalse(store.isFormEditable) - XCTAssertEqual(store.drafts.filter { $0.kind == .add }.count, 5) - _ = try await client.stop() - } - - @MainActor - func testOfflineSubmitPersistsQueuedSnapshotForRetryAndReopen() async throws { - let backend = AddBackend(advanceOffline: true) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, now: { 1_800_000_000 }) - await store.configure(snapshot: backend.snapshot()) - await store.start() - store.updateForm(\.content, "Saved while the farm is offline") - - await store.submit() - - let queued = try XCTUnwrap(store.activeDraft) - XCTAssertEqual(queued.state, .queued) - XCTAssertEqual(queued.form?.content, "Saved while the farm is offline") - XCTAssertTrue(store.message?.contains("Saved for retry") == true) - store.reopen(queued) - XCTAssertEqual(store.form, queued.form) - XCTAssertFalse(store.isFormEditable) - _ = try await client.stop() - } - - @MainActor - func testRetractionAndRevisedCopyRemainIndependentHonestOperations() async throws { - let backend = AddBackend(advanceOffline: true) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, now: { 1_800_000_000 }) - await store.configure(snapshot: backend.snapshot()) - await store.start() - - await store.retractAndRevise(Self.card()) - - XCTAssertEqual(store.drafts.first(where: { $0.kind == .retraction })?.state, .queued) - XCTAssertNil(store.activeDraft) - XCTAssertEqual(store.form.commandType, .createFoodAvailability) - XCTAssertEqual(store.form.identifier, "carrots") - XCTAssertEqual(store.form.summary, "Fresh carrots") - XCTAssertEqual(store.form.foodPublishedAtUnixSeconds, 1_799_999_900) - XCTAssertEqual(store.form.foodStatus, "active") - XCTAssertTrue(store.message?.contains("separate revised copy") == true) - _ = try await client.stop() - } - - @MainActor - func testStopFencesLateDraftCompletion() async throws { - let backend = AddBackend(saveDelayNanoseconds: 50_000_000) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, now: { 1_800_000_000 }) - await store.configure(snapshot: backend.snapshot()) - await store.start() - store.updateForm(\.content, "Late draft") - - let save = Task { await store.save() } - try await Task.sleep(nanoseconds: 2_000_000) - store.stop() - await save.value - - XCTAssertNil(store.activeDraft) - XCTAssertFalse(store.isWorking) - _ = try await client.stop() - } - - @MainActor - func testPhotoServiceProbeSurfacesCanonicalEvidence() async throws { - let backend = AddBackend() - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, media: AddMediaHarness()) - await store.configure(snapshot: backend.snapshot()) - - await store.checkPhotoService() - - XCTAssertEqual(store.blossomEvidence?.state, "reachable") - XCTAssertEqual(store.blossomEvidence?.configFingerprint, String(repeating: "f", count: 64)) - XCTAssertEqual(store.mediaSupport, .init(library: true, camera: true)) - XCTAssertEqual(store.message, "Photo service is reachable.") - _ = try await client.stop() - } +@testable import RadrootsApp - @MainActor - func testSuspendAndResumePreserveLateDurableDraftCompletion() async throws { - let backend = AddBackend(saveDelayNanoseconds: 50_000_000) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, now: { 1_800_000_000 }) - await store.configure(snapshot: backend.snapshot()) - await store.start() - store.updateForm(\.content, "Background draft") - - let save = Task { await store.save() } - try await Task.sleep(nanoseconds: 2_000_000) - store.suspend() - await store.start() - await save.value - - XCTAssertEqual(store.activeDraft?.form?.content, "Background draft") - XCTAssertEqual(store.message, "Draft saved on this device.") - XCTAssertFalse(store.isWorking) - _ = try await client.stop() - } +final class RadrootsAddStoreTests: XCTestCase { + @MainActor + func testAllFiveFormsCompleteThroughRuntimeAndSubmittedSnapshotsFreeze() async throws { + let backend = AddBackend() + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore( + runtimeClient: client, + media: AddMediaHarness() + ) + await store.configure(snapshot: backend.snapshot()) + await store.start() - @MainActor - func testSubmitWithoutWritableRelayVerifiesMediaAndPreservesDraftForRetry() async throws { - let backend = AddBackend(includeWritableRelay: false) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore( - runtimeClient: client, - media: AddMediaHarness(), - now: { 1_800_000_000 } - ) - await store.configure(snapshot: backend.snapshot()) - await store.start() - store.selectType(.createPhotoUpdate) - store.updateForm(\.content, "Carrots from today") + for type in RadrootsAddCommandType.allCases { + store.newDraft(type: type) + configure(store, type: type) + if type == .createPhotoUpdate { await store.importPhotos() - - await store.submit() - - XCTAssertEqual(store.activeDraft?.state, .readyToSign) - XCTAssertEqual(store.activeDraft?.media.first?.stage, .verified) + XCTAssertEqual(store.form.media.count, 1) + XCTAssertNil(store.form.media.first?.remoteURL) + } + await store.submit() + XCTAssertEqual(store.activeDraft?.commandType, type) + XCTAssertEqual(store.activeDraft?.state, .complete) + XCTAssertEqual(store.activeDraft?.form, store.form) + if type == .createPhotoUpdate { XCTAssertEqual( - store.message, - "Photo verified and draft saved. Configure a writable relay to publish." - ) - XCTAssertNil(store.lastFailureCode) - _ = try await client.stop() - } - - @MainActor - func testSubmitRetainsRedactedFailureCodeForSupportAndAccessibility() async throws { - let failure = RadrootsRuntimeFailure( - schemaVersion: 1, - code: "media_handle_unavailable", - category: "validation", - retryable: false, - recoveryActions: [], - operationID: "add.save", - capabilityID: nil, - safeMessage: "The request is invalid." + store.form.media.first?.remoteURL, + "http://127.0.0.1:3000/\(String(repeating: "0", count: 64)).png" ) - let backend = AddBackend(saveFailure: failure) - let client = try await Self.startedClient(backend) - let store = RadrootsAddStore(runtimeClient: client, now: { 1_800_000_000 }) - await store.configure(snapshot: backend.snapshot()) - await store.start() - store.updateForm(\.content, "Prepared media failure") - - await store.submit() - - XCTAssertEqual(store.message, failure.safeMessage) - XCTAssertEqual(store.lastFailureCode, failure.code) - XCTAssertNil(store.activeDraft) - _ = try await client.stop() - } - - @MainActor - private func configure(_ store: RadrootsAddStore, type: RadrootsAddCommandType) { - switch type { - case .createUpdate: - store.updateForm(\.content, "Harvest update") - case .createPhotoUpdate: - store.updateForm(\.content, "Carrots from today") - case .createAsk: - store.updateForm(\.content, "Who has seed potatoes?") - case .createEvent: - store.updateForm(\.identifier, Optional("market-day")) - store.updateForm(\.title, Optional("Market day")) - store.updateForm(\.eventTiming, Optional(RadrootsEventTiming.timed)) - store.updateForm(\.eventStartUnixSeconds, Optional(UInt64(1_800_003_600))) - store.updateForm(\.location, Optional("Town square")) - case .createFoodAvailability: - store.updateForm(\.identifier, Optional("carrots")) - store.updateForm(\.title, Optional("Carrots")) - store.updateForm(\.location, Optional("Town square")) - store.updateForm(\.priceAmount, Optional("3")) - store.updateForm(\.currency, Optional("CAD")) - store.updateForm(\.unit, Optional("lb")) - } - } - - private static func startedClient(_ backend: AddBackend) async throws -> RadrootsRuntimeClient { - let client = RadrootsRuntimeClient { _ in - await RadrootsRuntimeBackendStart(backend: backend, snapshot: backend.snapshot()) - } - _ = try await client.start(configuration: configuration()) - return client - } - - private static func configuration() -> RadrootsRuntimeLaunchConfiguration { - RadrootsRuntimeLaunchConfiguration( - applicationSupportDirectory: "/tmp/radroots-add-tests", - publicKeyHex: String(repeating: "ab", count: 32), - sourceGenerationHex: String(repeating: "cd", count: 32), - sourceGenerationCreatedAtUnixMilliseconds: 1, - protectedData: .available, - networkProfile: .simulator, - writableRelays: ["ws://127.0.0.1:7447"], - blossom: RadrootsBlossomEndpointConfiguration( - hostKind: .simulator, - endpointAuthority: .loopbackDevelopment, - primaryOrigin: "http://127.0.0.1:3000", - fallbackOrigins: [] - ), - app: RadrootsRuntimeAppMetadata( - bundleIdentifier: "org.radroots.add-tests", - version: "0.1.0-alpha", - buildNumber: "1", - buildSHA: nil - ), - signerGeneration: "add-tests", - signer: AddSigner() - ) - } - - private static func card() -> RadrootsTodayCard { - RadrootsTodayCard( - id: String(repeating: "c", count: 64), - type: .foodAvailability, - sourceEventID: String(repeating: "e", count: 64), - sourceAddress: "30402:\(String(repeating: "a", count: 64)):carrots", - authorPublicKey: String(repeating: "a", count: 64), - contractID: "radroots.food_availability.v1", - title: "Carrots", - content: "Freshly picked", - authoredAtUnixSeconds: 1_800_000_000, - effectiveAtUnixSeconds: 1_800_000_000, - eventStartUnixSeconds: nil, - eventEndUnixSeconds: nil, - location: "Town square", - priceAmount: "3", - priceCurrency: "CAD", - priceUnit: "lb", - quantity: "12", - foodSummary: "Fresh carrots", - foodPublishedAtUnixSeconds: 1_799_999_900, - foodStatus: "active", - contextRank: 1, - inclusionReason: "local", - media: [], - lifecycle: .active, - rankDigest: nil, - authorProfile: nil, - thread: [], - localOperationID: nil, - localOperationState: nil - ) - } + let didUpload = await backend.didUploadMedia() + XCTAssertTrue(didUpload) + } + } + + let frozen = store.form + store.updateForm(\.content, "mutated after submit") + store.selectType(.createUpdate) + XCTAssertEqual(store.form, frozen) + XCTAssertFalse(store.isFormEditable) + XCTAssertEqual(store.drafts.filter { $0.kind == .add }.count, 5) + _ = try await client.stop() + } + + @MainActor + func testOfflineSubmitPersistsQueuedSnapshotForRetryAndReopen() async throws { + let backend = AddBackend(advanceOffline: true) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.updateForm(\.content, "Saved while the farm is offline") + + await store.submit() + + let queued = try XCTUnwrap(store.activeDraft) + XCTAssertEqual(queued.state, .queued) + XCTAssertEqual(queued.form?.content, "Saved while the farm is offline") + XCTAssertTrue(store.message?.contains("Saved for retry") == true) + store.reopen(queued) + XCTAssertEqual(store.form, queued.form) + XCTAssertFalse(store.isFormEditable) + _ = try await client.stop() + } + + @MainActor + func testRevisionUsesLosslessRustOwnedReplacementPlan() async throws { + let backend = AddBackend(advanceOffline: true) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.selectType(.createFoodAvailability) + configure(store, type: .createFoodAvailability) + await store.save() + let source = try XCTUnwrap(store.activeDraft) + + await store.retractAndRevise(Self.card(localOperationID: source.id)) + + XCTAssertNil(store.activeDraft) + XCTAssertEqual(store.form, source.form) + store.updateForm(\.content, "Corrected harvest details") + await store.submit() + XCTAssertTrue(store.activeDraft?.isRevision == true) + XCTAssertEqual(store.activeDraft?.state, .complete) + let revisionPlanCount = await backend.revisionPlanCount() + XCTAssertEqual(revisionPlanCount, 1) + XCTAssertNil(store.drafts.first(where: { $0.kind == .retraction })) + _ = try await client.stop() + } + + @MainActor + func testStopFencesSaveQueueAndAdvanceAndPermitsCleanRestart() async throws { + for phase in AddDelayPhase.allCases { + let backend = AddBackend(delayedPhase: phase) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.updateForm(\.content, "Restart after \(phase)") + + let submit = Task { await store.submit() } + try await Task.sleep(nanoseconds: 2_000_000) + let visibleAtStop = store.activeDraft + store.stop() + await submit.value + + XCTAssertEqual(store.activeDraft, visibleAtStop) + XCTAssertFalse(store.isWorking) + + await store.start() + XCTAssertEqual(store.state, .ready) + if let durable = store.drafts.first { + store.reopen(durable) + } + await store.submit() + XCTAssertEqual(store.activeDraft?.state, .complete) + XCTAssertFalse(store.isWorking) + _ = try await client.stop() + } + } + + @MainActor + func testStopDuringBackgroundUploadPermitsDurableRestart() async throws { + let backend = AddBackend() + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore( + runtimeClient: client, + media: AddMediaHarness(delayFirstUpload: true) + ) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.selectType(.createPhotoUpdate) + store.updateForm(\.content, "Restart the background upload") + await store.importPhotos() + + let submit = Task { await store.submit() } + try await Task.sleep(nanoseconds: 2_000_000) + let visibleAtStop = store.activeDraft + store.stop() + await submit.value + + XCTAssertEqual(store.activeDraft, visibleAtStop) + XCTAssertFalse(store.isWorking) + + await store.start() + let durable = try XCTUnwrap(store.drafts.first) + XCTAssertEqual(durable.state, .mediaUploading) + store.reopen(durable) + await store.submit() + XCTAssertEqual(store.activeDraft?.state, .complete) + XCTAssertEqual(store.activeDraft?.media.first?.stage, .verified) + _ = try await client.stop() + } + + @MainActor + func testPhotoServiceProbeSurfacesCanonicalEvidence() async throws { + let backend = AddBackend() + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client, media: AddMediaHarness()) + await store.configure(snapshot: backend.snapshot()) + + await store.checkPhotoService() + + XCTAssertEqual(store.blossomEvidence?.state, "reachable") + XCTAssertEqual(store.blossomEvidence?.configFingerprint, String(repeating: "f", count: 64)) + XCTAssertEqual(store.mediaSupport, .init(library: true, camera: true)) + XCTAssertEqual(store.message, "Photo service is reachable.") + _ = try await client.stop() + } + + @MainActor + func testPhotoLimitRejectsTwentyFirstImportAndCapture() async throws { + let backend = AddBackend() + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client, media: AddMediaHarness()) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.selectType(.createPhotoUpdate) + + for _ in 0..<20 { + await store.importPhotos() + } + XCTAssertEqual(store.form.media.count, 20) + XCTAssertFalse(store.canAddMedia) + + await store.importPhotos() + await store.capturePhoto() + XCTAssertEqual(store.form.media.count, 20) + _ = try await client.stop() + } + + @MainActor + func testSuspendAndResumePreserveLateDurableDraftCompletion() async throws { + let backend = AddBackend(delayedPhase: .save) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.updateForm(\.content, "Background draft") + + let save = Task { await store.save() } + try await Task.sleep(nanoseconds: 2_000_000) + store.suspend() + await store.start() + await save.value + + XCTAssertEqual(store.activeDraft?.form?.content, "Background draft") + XCTAssertEqual(store.message, "Draft saved on this device.") + XCTAssertFalse(store.isWorking) + _ = try await client.stop() + } + + @MainActor + func testSubmitWithoutWritableRelayVerifiesMediaAndPreservesDraftForRetry() async throws { + let backend = AddBackend(includeWritableRelay: false) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore( + runtimeClient: client, + media: AddMediaHarness() + ) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.selectType(.createPhotoUpdate) + store.updateForm(\.content, "Carrots from today") + await store.importPhotos() + + await store.submit() + + XCTAssertEqual(store.activeDraft?.state, .readyToSign) + XCTAssertEqual(store.activeDraft?.media.first?.stage, .verified) + XCTAssertEqual( + store.message, + "Photo verified and draft saved. Configure a writable relay to publish." + ) + XCTAssertNil(store.lastFailureCode) + _ = try await client.stop() + } + + @MainActor + func testSubmitRetainsRedactedFailureCodeForSupportAndAccessibility() async throws { + let failure = RadrootsRuntimeFailure( + schemaVersion: 1, + code: "media_handle_unavailable", + category: "validation", + retryable: false, + recoveryActions: [], + operationID: "add.save", + capabilityID: nil, + safeMessage: "The request is invalid." + ) + let backend = AddBackend(saveFailure: failure) + let client = try await Self.startedClient(backend) + let store = RadrootsAddStore(runtimeClient: client) + await store.configure(snapshot: backend.snapshot()) + await store.start() + store.updateForm(\.content, "Prepared media failure") + + await store.submit() + + XCTAssertEqual(store.message, failure.safeMessage) + XCTAssertEqual(store.lastFailureCode, failure.code) + XCTAssertNil(store.activeDraft) + _ = try await client.stop() + } + + @MainActor + private func configure(_ store: RadrootsAddStore, type: RadrootsAddCommandType) { + switch type { + case .createUpdate: + store.updateForm(\.content, "Harvest update") + case .createPhotoUpdate: + store.updateForm(\.content, "Carrots from today") + case .createAsk: + store.updateForm(\.content, "Who has seed potatoes?") + case .createEvent: + store.updateForm(\.identifier, Optional("market-day")) + store.updateForm(\.title, Optional("Market day")) + store.updateForm(\.eventTiming, Optional(RadrootsEventTiming.timed)) + store.updateForm(\.eventStartUnixSeconds, Optional(UInt64(1_800_003_600))) + store.updateForm(\.location, Optional("Town square")) + case .createFoodAvailability: + store.updateForm(\.identifier, Optional("carrots")) + store.updateForm(\.title, Optional("Carrots")) + store.updateForm(\.location, Optional("Town square")) + store.updateForm(\.priceAmount, Optional("3")) + store.updateForm(\.currency, Optional("CAD")) + store.updateForm(\.unit, Optional("lb")) + } + } + + private static func startedClient(_ backend: AddBackend) async throws -> RadrootsRuntimeClient { + let client = RadrootsRuntimeClient { _ in + await RadrootsRuntimeBackendStart(backend: backend, snapshot: backend.snapshot()) + } + _ = try await client.start(configuration: configuration()) + return client + } + + private static func configuration() -> RadrootsRuntimeLaunchConfiguration { + RadrootsRuntimeLaunchConfiguration( + applicationSupportDirectory: "/tmp/radroots-add-tests", + publicKeyHex: String(repeating: "ab", count: 32), + sourceGenerationHex: String(repeating: "cd", count: 32), + sourceGenerationCreatedAtUnixMilliseconds: 1, + protectedData: .available, + networkProfile: .simulator, + writableRelays: ["ws://127.0.0.1:7447"], + blossom: RadrootsBlossomEndpointConfiguration( + hostKind: .simulator, + endpointAuthority: .loopbackDevelopment, + primaryOrigin: "http://127.0.0.1:3000", + fallbackOrigins: [] + ), + app: RadrootsRuntimeAppMetadata( + bundleIdentifier: "org.radroots.add-tests", + version: "0.1.0-alpha", + buildNumber: "1", + buildSHA: nil + ), + signerGeneration: "add-tests", + signer: AddSigner() + ) + } + + private static func card(localOperationID: String? = nil) -> RadrootsTodayCard { + RadrootsTodayCard( + id: String(repeating: "c", count: 64), + type: .foodAvailability, + sourceEventID: String(repeating: "e", count: 64), + sourceAddress: "30402:\(String(repeating: "a", count: 64)):carrots", + authorPublicKey: String(repeating: "a", count: 64), + contractID: "radroots.food_availability.v1", + title: "Carrots", + content: "Freshly picked", + authoredAtUnixSeconds: 1_800_000_000, + effectiveAtUnixSeconds: 1_800_000_000, + eventStartUnixSeconds: nil, + eventEndUnixSeconds: nil, + location: "Town square", + priceAmount: "3", + priceCurrency: "CAD", + priceUnit: "lb", + quantity: "12", + foodSummary: "Fresh carrots", + foodPublishedAtUnixSeconds: 1_799_999_900, + foodStatus: "active", + contextRank: 1, + inclusionReason: "local", + media: [], + lifecycle: .active, + rankDigest: nil, + authorProfile: nil, + thread: [], + localOperationID: localOperationID, + localOperationState: nil + ) + } } private struct AddSigner: RadrootsRuntimeSigner { - func availability() async -> RadrootsRuntimeSignerAvailability { - .ready - } + func availability() async -> RadrootsRuntimeSignerAvailability { + .ready + } - func sign(_: RadrootsRuntimeSigningRequest) async -> RadrootsRuntimeSigningOutcome { - .failed - } + func sign(_: RadrootsRuntimeSigningRequest) async -> RadrootsRuntimeSigningOutcome { + .failed + } } private actor AddMediaHarness: RadrootsAddMediaHandling { - private let item = RadrootsPreparedMedia( - opaqueReference: "media:\(String(repeating: "0", count: 64))", - remoteURL: nil, - sha256: String(repeating: "0", count: 64), - mediaType: "image/png", - byteSize: 4, - width: 2, - height: 2, - alt: "Carrots", - preparedAtUnixSeconds: 1_800_000_000 + private let delayFirstUpload: Bool + private var uploadAttempts = 0 + private let item = RadrootsPreparedMedia( + opaqueReference: "media:\(String(repeating: "0", count: 64))", + remoteURL: nil, + sha256: String(repeating: "0", count: 64), + mediaType: "image/png", + byteSize: 4, + width: 2, + height: 2, + alt: "Carrots", + preparedAtUnixSeconds: 1_800_000_000 + ) + + init(delayFirstUpload: Bool = false) { + self.delayFirstUpload = delayFirstUpload + } + + func support() -> RadrootsAddMediaSupport { + .init(library: true, camera: true) + } + + func importImages(limit _: Int) -> [RadrootsPreparedMedia] { + [item] + } + + func captureImage() -> RadrootsPreparedMedia { + item + } + + func open(_ media: [RadrootsPreparedMedia]) -> RadrootsOpenedMedia { + RadrootsOpenedMedia( + handles: media.map { RadrootsPreparedMediaHandle(media: $0, fileDescriptor: 1) }, + files: [] ) + } + + func uploadInBackground( + job: RadrootsNativeUploadJob, + media _: RadrootsPreparedMedia + ) async throws -> RadrootsAddBackgroundUploadReceipt { + uploadAttempts += 1 + if delayFirstUpload, uploadAttempts == 1 { + try await Task.sleep(nanoseconds: 50_000_000) + } + return RadrootsAddBackgroundUploadReceipt( + identifier: "radroots.add.\(job.draft.id).\(job.draft.revision).\(job.operationID)", + statusCode: 200, + mediaType: "application/json", + contentEncoding: nil, + body: Data("{}".utf8) + ) + } +} - func support() -> RadrootsAddMediaSupport { - .init(library: true, camera: true) - } - - func importImages(limit _: Int) -> [RadrootsPreparedMedia] { - [item] - } - - func captureImage() -> RadrootsPreparedMedia { - item - } - - func open(_ media: [RadrootsPreparedMedia]) -> RadrootsOpenedMedia { - RadrootsOpenedMedia( - handles: media.map { RadrootsPreparedMediaHandle(media: $0, fileDescriptor: 1) }, - files: [] - ) - } +private enum AddDelayPhase: String, CaseIterable { + case save + case queue + case advance } private actor AddBackend: RadrootsRuntimeBackend { - private let advanceOffline: Bool - private let saveDelayNanoseconds: UInt64 - private let saveFailure: RadrootsRuntimeFailure? - private let includeWritableRelay: Bool - private var values: [String: RadrootsDraftStatus] = [:] - private var uploadedMedia = false - private var closed = false - - init( - advanceOffline: Bool = false, - saveDelayNanoseconds: UInt64 = 0, - saveFailure: RadrootsRuntimeFailure? = nil, - includeWritableRelay: Bool = true - ) { - self.advanceOffline = advanceOffline - self.saveDelayNanoseconds = saveDelayNanoseconds - self.saveFailure = saveFailure - self.includeWritableRelay = includeWritableRelay - } - - func snapshot() -> RadrootsRuntimeSnapshot { - RadrootsRuntimeSnapshot( - identity: RadrootsRuntimeIdentity( - publicKeyHex: String(repeating: "ab", count: 32), - hostSignerConfigured: true - ), - relay: RadrootsRelayStatus( - profile: "simulator", - state: "configured", - readAvailability: "unobserved", - writeAvailability: "unobserved", - relays: includeWritableRelay ? [ - RadrootsRelayEndpointStatus( - url: "ws://127.0.0.1:7447", - access: "read_write", - readState: "unobserved", - writeState: "unobserved", - readLastAttemptUnixMilliseconds: nil, - writeLastAttemptUnixMilliseconds: nil, - readNextAttemptUnixMilliseconds: nil, - writeNextAttemptUnixMilliseconds: nil - ), - ] : [] - ), - blossomConfiguration: RadrootsBlossomConfigurationStatus( - schemaVersion: 1, - hostKind: "simulator", - endpointAuthority: "loopback_development", - primaryOrigin: "http://127.0.0.1:3000", - fallbackOrigins: [], - configFingerprint: String(repeating: "f", count: 64) - ), - blossomEvidence: nil, - crateName: "radroots_mobile_ffi", - crateVersion: "0.1.0-alpha", - isClosed: closed - ) - } - - func todayPage(request _: RadrootsTodayPageRequest) throws -> RadrootsTodayPage { - throw unsupported() - } - - func refreshToday( - context _: RadrootsLocalNetwork, - nowUnixSeconds _: UInt64, - update _: RadrootsTodayProjectionUpdate - ) throws -> RadrootsTodayRefreshReceipt { - throw unsupported() - } - - func addSchemas() -> [RadrootsAddSchema] { - RadrootsAddCommandType.allCases.map { - RadrootsAddSchema(schemaVersion: 1, commandType: $0, label: $0.label, fields: []) - } - } - - func saveAddIntent( - input: RadrootsAddRuntimeInput, - existingDraftID: String?, - expectedRevision: UInt64? - ) async throws -> RadrootsDraftStatus { - if let saveFailure { - throw saveFailure - } - if saveDelayNanoseconds > 0 { - try await Task.sleep(nanoseconds: saveDelayNanoseconds) - } - let id = existingDraftID ?? String(format: "%032x", values.count + 1) - let savedMedia = input.form.media.map { - RadrootsPreparedMedia( - opaqueReference: $0.opaqueReference, - remoteURL: "http://127.0.0.1:3000/\($0.sha256).png", - sha256: $0.sha256, - mediaType: $0.mediaType, - byteSize: $0.byteSize, - width: $0.width, - height: $0.height, - alt: $0.alt, - preparedAtUnixSeconds: $0.preparedAtUnixSeconds - ) - } - var storedForm = input.form - storedForm.media = savedMedia - let status = makeStatus( - id: id, - revision: (expectedRevision ?? 0) + 1, - kind: .add, - commandType: input.form.commandType, - form: storedForm, - state: savedMedia.isEmpty ? .draft : .mediaPreparing, - updatedAt: 1_800_000_000_000 + UInt64(values.count), - media: savedMedia.map { - RadrootsDraftMediaStatus( - url: $0.remoteURL!, - stage: .pending, - uploadAttempts: 0, - verifiedAtUnixMilliseconds: nil, - possibleOrphan: false, - orphanReasonCode: nil, - orphanRecordedAtUnixMilliseconds: nil - ) - } - ) - values[id] = status - return status - } - - func probeBlossom() -> RadrootsBlossomEvidence { - RadrootsBlossomEvidence( - schemaVersion: 2, - origin: "http://127.0.0.1:3000", - configFingerprint: String(repeating: "f", count: 64), - state: "reachable", - lastSuccessfulState: "probe", - transportSecurity: "loopback_plaintext", - observedAtUnixMilliseconds: 1_800_000_000_000, - httpStatus: 404, - errorCode: nil, - serverErrorCode: nil, - errorPhase: nil, - retryable: false, - possibleOrphan: false, - attempts: 1 - ) - } - - func saveRetractionDraft( - id: String, - input: RadrootsRetractionDraftInput, - authoredAtUnixSeconds _: UInt64, - persistedAtUnixMilliseconds: UInt64 - ) -> RadrootsDraftStatus { - let status = makeStatus( - id: id, - revision: 1, - kind: .retraction, - commandType: input.commandType, - form: nil, - state: .draft, - updatedAt: persistedAtUnixMilliseconds, - media: [] - ) - values[id] = status - return status - } - - func draftStatus(id: String) throws -> RadrootsDraftStatus { - guard let value = values[id] else { throw unsupported() } - return value - } - - func draftHeads(limit: UInt16) -> [RadrootsDraftStatus] { - Array(values.values.prefix(Int(limit))) - } - - func queueAddIntent( - id: String, - expectedRevision: UInt64 - ) throws -> RadrootsDraftStatus { - guard includeWritableRelay else { - throw RadrootsRuntimeFailure( - schemaVersion: 1, - code: "writable_relay_unavailable", - category: "relay", - retryable: true, - recoveryActions: ["configure_relay", "retry"], - operationID: id, - capabilityID: "nostr_sink", - safeMessage: "No writable relay is configured." + private let advanceOffline: Bool + private let saveFailure: RadrootsRuntimeFailure? + private let includeWritableRelay: Bool + private let delayedPhase: AddDelayPhase? + private var values: [String: RadrootsDraftStatus] = [:] + private var uploadedMedia = false + private var revisionPlans = 0 + private var delayConsumed = false + private var closed = false + + init( + advanceOffline: Bool = false, + saveFailure: RadrootsRuntimeFailure? = nil, + includeWritableRelay: Bool = true, + delayedPhase: AddDelayPhase? = nil + ) { + self.advanceOffline = advanceOffline + self.saveFailure = saveFailure + self.includeWritableRelay = includeWritableRelay + self.delayedPhase = delayedPhase + } + + func snapshot() -> RadrootsRuntimeSnapshot { + RadrootsRuntimeSnapshot( + identity: RadrootsRuntimeIdentity( + publicKeyHex: String(repeating: "ab", count: 32), + hostSignerConfigured: true + ), + relay: RadrootsRelayStatus( + profile: "simulator", + state: "configured", + readAvailability: "unobserved", + writeAvailability: "unobserved", + relays: includeWritableRelay + ? [ + RadrootsRelayEndpointStatus( + url: "ws://127.0.0.1:7447", + access: .readWrite, + readState: "unobserved", + writeState: "unobserved", + readLastAttemptUnixMilliseconds: nil, + writeLastAttemptUnixMilliseconds: nil, + readNextAttemptUnixMilliseconds: nil, + writeNextAttemptUnixMilliseconds: nil ) + ] : [] + ), + blossomConfiguration: RadrootsBlossomConfigurationStatus( + schemaVersion: 1, + hostKind: "simulator", + endpointAuthority: "loopback_development", + primaryOrigin: "http://127.0.0.1:3000", + fallbackOrigins: [], + configFingerprint: String(repeating: "f", count: 64) + ), + blossomEvidence: nil, + crateName: "radroots_mobile_ffi", + crateVersion: "0.1.0-alpha", + isClosed: closed + ) + } + + func todayPage(request _: RadrootsTodayPageRequest) throws -> RadrootsTodayPage { + throw unsupported() + } + + func refreshToday( + context _: RadrootsLocalNetwork, + nowUnixSeconds _: UInt64, + update _: RadrootsTodayProjectionUpdate + ) throws -> RadrootsTodayRefreshReceipt { + throw unsupported() + } + + func addSchemas() -> [RadrootsAddSchema] { + RadrootsAddCommandType.allCases.map { type in + let maximum: UInt16? = + switch type { + case .createUpdate: nil + case .createEvent: 1 + case .createPhotoUpdate, .createAsk, .createFoodAvailability: 20 } - let current = try draftStatus(id: id) - guard current.revision == expectedRevision else { throw unsupported() } - let value = replacing(current, revision: current.revision + 1, state: .queued, updatedAt: current.updatedAtUnixMilliseconds + 1) - values[id] = value - return value - } - - func recoverAddIntent(id: String) throws -> RadrootsDraftStatus { - let current = try draftStatus(id: id) - let value = replacing(current, revision: current.revision + 1, state: .queued, updatedAt: current.updatedAtUnixMilliseconds + 1) - values[id] = value - return value - } - - func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) throws -> RadrootsDraftStatus { - uploadedMedia = true - let current = try draftStatus(id: input.draftID) - let verified = current.media.map { - RadrootsDraftMediaStatus( - url: $0.url, - stage: .verified, - uploadAttempts: $0.uploadAttempts + 1, - verifiedAtUnixMilliseconds: current.updatedAtUnixMilliseconds + 1, - possibleOrphan: false, - orphanReasonCode: nil, - orphanRecordedAtUnixMilliseconds: nil + return RadrootsAddSchema( + schemaVersion: 1, + commandType: type, + label: type.label, + fields: maximum.map { + [ + RadrootsAddField( + schemaVersion: 1, + id: "media", + label: "Photos", + kind: .media, + required: false, + choices: [], + maxBytes: 10 * 1024 * 1024, + maxItems: $0 ) - } - let value = replacing( - current, - revision: current.revision + 1, - state: .readyToSign, - updatedAt: current.updatedAtUnixMilliseconds + 1, - media: verified + ] + } ?? [] + ) + } + } + + func saveAddIntent( + input: RadrootsAddRuntimeInput, + existingDraftID: String?, + expectedRevision: UInt64? + ) async throws -> RadrootsDraftStatus { + if let saveFailure { + throw saveFailure + } + try await delayOnce(at: .save) + let id = existingDraftID ?? String(format: "%032x", values.count + 1) + let savedMedia = input.form.media.map { + RadrootsPreparedMedia( + opaqueReference: $0.opaqueReference, + remoteURL: "http://127.0.0.1:3000/\($0.sha256).png", + sha256: $0.sha256, + mediaType: $0.mediaType, + byteSize: $0.byteSize, + width: $0.width, + height: $0.height, + alt: $0.alt, + preparedAtUnixSeconds: $0.preparedAtUnixSeconds + ) + } + var storedForm = input.form + storedForm.media = savedMedia + let status = makeStatus( + id: id, + revision: (expectedRevision ?? 0) + 1, + kind: .add, + commandType: input.form.commandType, + form: storedForm, + state: savedMedia.isEmpty ? .draft : .mediaPreparing, + updatedAt: 1_800_000_000_000 + UInt64(values.count), + media: savedMedia.map { + RadrootsDraftMediaStatus( + url: $0.remoteURL!, + stage: .pending, + uploadAttempts: 0, + verifiedAtUnixMilliseconds: nil, + possibleOrphan: false, + orphanReasonCode: nil, + orphanRecordedAtUnixMilliseconds: nil ) - values[current.id] = value - return value - } - - func didUploadMedia() -> Bool { - uploadedMedia - } - - func advanceDraft(id: String, expectedRevision: UInt64) throws -> RadrootsDraftStatus { - if advanceOffline { - throw RadrootsRuntimeFailure( - schemaVersion: 1, - code: "test.offline", - category: "relay", - retryable: true, - recoveryActions: ["retry"], - operationID: id, - capabilityID: "nostr_sink", - safeMessage: "The relay is offline." - ) - } - let current = try draftStatus(id: id) - let value = replacing(current, revision: expectedRevision, state: .complete, updatedAt: current.updatedAtUnixMilliseconds) - values[id] = value - return value - } - - func cancelAddIntent( - id: String, - expectedRevision _: UInt64 - ) throws -> RadrootsDraftStatus { - let current = try draftStatus(id: id) - let value = replacing(current, revision: current.revision + 1, state: .cancelled, updatedAt: current.updatedAtUnixMilliseconds + 1) - values[id] = value - return value - } - - func subscribe( - bufferCapacity _: Int, - receive _: @escaping @Sendable (RadrootsRuntimeChange) async -> Void - ) -> any RadrootsRuntimeSubscriptionToken { - AddSubscriptionToken() - } - - func shutdown() -> RadrootsRuntimeShutdownReceipt { - let wasClosed = closed - closed = true - return RadrootsRuntimeShutdownReceipt(state: "closed", alreadyClosed: wasClosed) - } - - private func makeStatus( - id: String, - revision: UInt64, - kind: RadrootsDraftKind, - commandType: RadrootsAddCommandType, - form: RadrootsAddForm?, - state: RadrootsOutboxState, - updatedAt: UInt64, - media: [RadrootsDraftMediaStatus] - ) -> RadrootsDraftStatus { - RadrootsDraftStatus( - id: id, - revision: revision, - authorPublicKey: String(repeating: "ab", count: 32), - kind: kind, - commandType: commandType, - form: form, - state: state, - cardID: String(repeating: "c", count: 64), - operationID: state == .draft ? nil : String(repeating: "d", count: 32), - createdAtUnixMilliseconds: updatedAt, - updatedAtUnixMilliseconds: updatedAt, - media: media, - settlement: state == .complete ? settlement() : nil - ) - } - - private func replacing( - _ value: RadrootsDraftStatus, - revision: UInt64, - state: RadrootsOutboxState, - updatedAt: UInt64, - media: [RadrootsDraftMediaStatus]? = nil - ) -> RadrootsDraftStatus { - RadrootsDraftStatus( - id: value.id, - revision: revision, - authorPublicKey: value.authorPublicKey, - kind: value.kind, - commandType: value.commandType, - form: value.form, - state: state, - cardID: value.cardID, - operationID: state == .draft ? nil : String(repeating: "d", count: 32), - createdAtUnixMilliseconds: value.createdAtUnixMilliseconds, - updatedAtUnixMilliseconds: updatedAt, - media: media ?? value.media, - settlement: state == .complete ? settlement() : nil - ) - } - - private func settlement() -> RadrootsOperationSettlement { - RadrootsOperationSettlement( - artifacts: 1, - signed: 1, - admitted: 1, - pending: 0, - retryable: 0, - indeterminate: 0, - failedTerminal: 0, - cancelled: 0, - deliveryPlans: 1, - deliverySatisfied: 1, - deliveryPending: 0, - deliveryRetryable: 0, - deliveryExhausted: 0, - deliveryFailedTerminal: 0, - deliveryCancelled: 0 - ) - } - - private func unsupported() -> RadrootsRuntimeFailure { - .local(operation: "test.add", code: "test.unsupported", safeMessage: "Unsupported test operation.") - } + } + ) + values[id] = status + return status + } + + func probeBlossom() -> RadrootsBlossomEvidence { + RadrootsBlossomEvidence( + schemaVersion: 2, + origin: "http://127.0.0.1:3000", + configFingerprint: String(repeating: "f", count: 64), + state: "reachable", + lastSuccessfulState: "probe", + transportSecurity: "loopback_plaintext", + observedAtUnixMilliseconds: 1_800_000_000_000, + httpStatus: 404, + errorCode: nil, + serverErrorCode: nil, + errorPhase: nil, + retryable: false, + possibleOrphan: false, + attempts: 1 + ) + } + + func saveRetractionDraft( + id: String, + input: RadrootsRetractionDraftInput, + authoredAtUnixSeconds _: UInt64, + persistedAtUnixMilliseconds: UInt64 + ) -> RadrootsDraftStatus { + let status = makeStatus( + id: id, + revision: 1, + kind: .retraction, + commandType: input.commandType, + form: nil, + state: .draft, + updatedAt: persistedAtUnixMilliseconds, + media: [] + ) + values[id] = status + return status + } + + func saveRevisionIntent( + target: RadrootsRevisionTarget, + replacement: RadrootsAddRuntimeInput + ) -> RadrootsRevisionStatus { + revisionPlans += 1 + let id = String(format: "%032x", values.count + 1) + let status = makeStatus( + id: id, + revision: 1, + kind: .add, + commandType: replacement.form.commandType, + form: replacement.form, + state: replacement.form.media.isEmpty ? .draft : .mediaPreparing, + updatedAt: 1_800_000_100_000, + media: [], + isRevision: true + ) + values[id] = status + return RadrootsRevisionStatus( + operationID: id, + replacement: status, + retraction: nil, + policy: target.sourceAddress == nil ? .replaceThenRetract : .addressableReplacement, + phase: .replacementPending + ) + } + + func revisionStatus(operationID: String) throws -> RadrootsRevisionStatus { + let replacement = try draftStatus(id: operationID) + return RadrootsRevisionStatus( + operationID: operationID, + replacement: replacement, + retraction: nil, + policy: .addressableReplacement, + phase: replacement.state == .complete ? .complete : .replacementPending + ) + } + + func advanceRevision(operationID: String) throws -> RadrootsRevisionStatus { + let current = try draftStatus(id: operationID) + let completed = replacing( + current, + revision: current.revision + 1, + state: .complete, + updatedAt: current.updatedAtUnixMilliseconds + 1 + ) + values[operationID] = completed + return try revisionStatus(operationID: operationID) + } + + func cancelRevision(operationID: String) throws -> RadrootsRevisionStatus { + let current = try draftStatus(id: operationID) + let cancelled = replacing( + current, + revision: current.revision + 1, + state: .cancelled, + updatedAt: current.updatedAtUnixMilliseconds + 1 + ) + values[operationID] = cancelled + return RadrootsRevisionStatus( + operationID: operationID, + replacement: cancelled, + retraction: nil, + policy: .addressableReplacement, + phase: .cancelled + ) + } + + func draftStatus(id: String) throws -> RadrootsDraftStatus { + try storedDraft(id: id) + } + + func draftHeads(limit: UInt16) -> [RadrootsDraftStatus] { + Array(values.values.prefix(Int(limit))) + } + + func queueAddIntent( + id: String, + expectedRevision: UInt64 + ) async throws -> RadrootsDraftStatus { + try await delayOnce(at: .queue) + guard includeWritableRelay else { + throw RadrootsRuntimeFailure( + schemaVersion: 1, + code: "writable_relay_unavailable", + category: "relay", + retryable: true, + recoveryActions: ["configure_relay", "retry"], + operationID: id, + capabilityID: "nostr_sink", + safeMessage: "No writable relay is configured." + ) + } + let current = try storedDraft(id: id) + guard current.revision == expectedRevision else { throw unsupported() } + let value = replacing( + current, revision: current.revision + 1, state: .queued, + updatedAt: current.updatedAtUnixMilliseconds + 1) + values[id] = value + return value + } + + func recoverAddIntent(id: String) throws -> RadrootsDraftStatus { + let current = try draftStatus(id: id) + let value = replacing( + current, revision: current.revision + 1, state: .queued, + updatedAt: current.updatedAtUnixMilliseconds + 1) + values[id] = value + return value + } + + func uploadAddMediaIntent(input: RadrootsBlossomUploadIntent) throws -> RadrootsDraftStatus { + uploadedMedia = true + let current = try draftStatus(id: input.draftID) + let verified = current.media.map { + RadrootsDraftMediaStatus( + url: $0.url, + stage: .verified, + uploadAttempts: $0.uploadAttempts + 1, + verifiedAtUnixMilliseconds: current.updatedAtUnixMilliseconds + 1, + possibleOrphan: false, + orphanReasonCode: nil, + orphanRecordedAtUnixMilliseconds: nil + ) + } + let value = replacing( + current, + revision: current.revision + 1, + state: .readyToSign, + updatedAt: current.updatedAtUnixMilliseconds + 1, + media: verified + ) + values[current.id] = value + return value + } + + func prepareAddMediaBackground( + input: RadrootsBlossomUploadIntent + ) throws -> RadrootsNativeUploadJob { + let current = try draftStatus(id: input.draftID) + let uploading = replacing( + current, + revision: current.revision + 1, + state: .mediaUploading, + updatedAt: current.updatedAtUnixMilliseconds + 1 + ) + values[current.id] = uploading + return RadrootsNativeUploadJob( + operationID: String(repeating: "a", count: 32), + draft: uploading, + remoteURL: "http://127.0.0.1:3000/\(input.media.media.sha256).png", + authorizationHeader: "Nostr test", + expectedSHA256: input.media.media.sha256, + mediaType: input.media.media.mediaType, + byteSize: input.media.media.byteSize + ) + } + + func completeAddMediaBackground( + input: RadrootsNativeUploadCompletion + ) throws -> RadrootsDraftStatus { + uploadedMedia = true + let current = try draftStatus(id: input.draftID) + let verified = current.media.map { + RadrootsDraftMediaStatus( + url: $0.url, + stage: .verified, + uploadAttempts: $0.uploadAttempts + 1, + verifiedAtUnixMilliseconds: current.updatedAtUnixMilliseconds + 1, + possibleOrphan: false, + orphanReasonCode: nil, + orphanRecordedAtUnixMilliseconds: nil + ) + } + let value = replacing( + current, + revision: current.revision + 1, + state: .readyToSign, + updatedAt: current.updatedAtUnixMilliseconds + 1, + media: verified + ) + values[current.id] = value + return value + } + + func didUploadMedia() -> Bool { + uploadedMedia + } + + func revisionPlanCount() -> Int { + revisionPlans + } + + func advanceDraft(id: String, expectedRevision: UInt64) async throws -> RadrootsDraftStatus { + try await delayOnce(at: .advance) + if advanceOffline { + throw RadrootsRuntimeFailure( + schemaVersion: 1, + code: "test.offline", + category: "relay", + retryable: true, + recoveryActions: ["retry"], + operationID: id, + capabilityID: "nostr_sink", + safeMessage: "The relay is offline." + ) + } + let current = try storedDraft(id: id) + let value = replacing( + current, revision: expectedRevision, state: .complete, + updatedAt: current.updatedAtUnixMilliseconds) + values[id] = value + return value + } + + func cancelAddIntent( + id: String, + expectedRevision _: UInt64 + ) throws -> RadrootsDraftStatus { + let current = try draftStatus(id: id) + let value = replacing( + current, revision: current.revision + 1, state: .cancelled, + updatedAt: current.updatedAtUnixMilliseconds + 1) + values[id] = value + return value + } + + func subscribe( + bufferCapacity _: Int, + receive _: @escaping @Sendable (RadrootsRuntimeChange) async -> Void + ) -> any RadrootsRuntimeSubscriptionToken { + AddSubscriptionToken() + } + + func shutdown() -> RadrootsRuntimeShutdownReceipt { + let wasClosed = closed + closed = true + return RadrootsRuntimeShutdownReceipt(state: "closed", alreadyClosed: wasClosed) + } + + private func makeStatus( + id: String, + revision: UInt64, + kind: RadrootsDraftKind, + commandType: RadrootsAddCommandType, + form: RadrootsAddForm?, + state: RadrootsOutboxState, + updatedAt: UInt64, + media: [RadrootsDraftMediaStatus], + isRevision: Bool = false + ) -> RadrootsDraftStatus { + RadrootsDraftStatus( + id: id, + revision: revision, + authorPublicKey: String(repeating: "ab", count: 32), + kind: kind, + commandType: commandType, + form: form, + state: state, + cardID: String(repeating: "c", count: 64), + operationID: state == .draft ? nil : String(repeating: "d", count: 32), + createdAtUnixMilliseconds: updatedAt, + updatedAtUnixMilliseconds: updatedAt, + media: media, + settlement: state == .complete ? settlement() : nil, + isRevision: isRevision + ) + } + + private func replacing( + _ value: RadrootsDraftStatus, + revision: UInt64, + state: RadrootsOutboxState, + updatedAt: UInt64, + media: [RadrootsDraftMediaStatus]? = nil + ) -> RadrootsDraftStatus { + RadrootsDraftStatus( + id: value.id, + revision: revision, + authorPublicKey: value.authorPublicKey, + kind: value.kind, + commandType: value.commandType, + form: value.form, + state: state, + cardID: value.cardID, + operationID: state == .draft ? nil : String(repeating: "d", count: 32), + createdAtUnixMilliseconds: value.createdAtUnixMilliseconds, + updatedAtUnixMilliseconds: updatedAt, + media: media ?? value.media, + settlement: state == .complete ? settlement() : nil, + isRevision: value.isRevision + ) + } + + private func settlement() -> RadrootsOperationSettlement { + RadrootsOperationSettlement( + artifacts: 1, + signed: 1, + admitted: 1, + pending: 0, + retryable: 0, + indeterminate: 0, + failedTerminal: 0, + cancelled: 0, + deliveryPlans: 1, + deliverySatisfied: 1, + deliveryPending: 0, + deliveryRetryable: 0, + deliveryExhausted: 0, + deliveryFailedTerminal: 0, + deliveryCancelled: 0 + ) + } + + private func delayOnce(at phase: AddDelayPhase) async throws { + guard delayedPhase == phase, !delayConsumed else { return } + delayConsumed = true + try await Task.sleep(nanoseconds: 50_000_000) + } + + private func storedDraft(id: String) throws -> RadrootsDraftStatus { + guard let value = values[id] else { throw unsupported() } + return value + } + + private func unsupported() -> RadrootsRuntimeFailure { + .local( + operation: "test.add", code: "test.unsupported", safeMessage: "Unsupported test operation.") + } } private actor AddSubscriptionToken: RadrootsRuntimeSubscriptionToken { - func cancel() {} + func cancel() {} } diff --git a/RadrootsTests/RadrootsLifecycleTests.swift b/RadrootsTests/RadrootsLifecycleTests.swift @@ -1,165 +1,167 @@ import Foundation -@testable import RadrootsApp import RadrootsKit import XCTest -final class RadrootsLifecycleTests: XCTestCase { - func testBackgroundEventsCompleteExactlyOnceBeforeAndAfterAttachment() async { - let router = RadrootsBackgroundEventRouter() - let first = CompletionProbe() - - await router.handle( - identifier: "org.radroots.tests.background.transfer", - completion: RadrootsCompletionOnce { first.increment() } - ) - XCTAssertEqual(first.value(), 0) - - await router.attach(identifier: "org.radroots.tests.background.transfer") { _, completion in - completion() - completion() - } - XCTAssertEqual(first.value(), 1) - - let mismatched = CompletionProbe() - await router.handle( - identifier: "org.radroots.tests.background.other", - completion: RadrootsCompletionOnce { mismatched.increment() } - ) - XCTAssertEqual(mismatched.value(), 1) - } - - func testBackgroundEventQueueIsBoundedAndShutdownCompletesPendingEvents() async { - let router = RadrootsBackgroundEventRouter() - let probes = (0 ..< 12).map { _ in CompletionProbe() } - - for probe in probes { - await router.handle( - identifier: "org.radroots.tests.background.transfer", - completion: RadrootsCompletionOnce { probe.increment() } - ) - } - - XCTAssertEqual(probes.filter { $0.value() == 1 }.count, 4) - await router.detachAndCompletePending() - XCTAssertTrue(probes.allSatisfy { $0.value() == 1 }) - } - - func testLifecycleBridgeRunsRegisteredShutdownOnlyOnce() async { - let bridge = RadrootsLifecycleBridge() - let shutdowns = CompletionProbe() - await bridge.register { shutdowns.increment() } - - await bridge.requestShutdown() - await bridge.requestShutdown() - - XCTAssertEqual(shutdowns.value(), 1) - } - - func testProtectedDataMonitorReflectsTransitions() { - let monitor = RadrootsProtectedDataMonitor(available: false) - XCTAssertFalse(monitor.isAvailable()) - - monitor.update(available: true) - - XCTAssertTrue(monitor.isAvailable()) - } +@testable import RadrootsApp - func testDiagnosticsAreBoundedAndExcludeSensitiveRuntimeValues() async throws { - let roots = try makeRoots() - defer { try? FileManager.default.removeItem(at: roots.dataRoot.deletingLastPathComponent()) } - let coordinator = RadrootsLifecycleCoordinator.testing(roots: roots, capacity: 16) - let secret = "nsec1diagnosticcanary" - let privateKey = String(repeating: "ab", count: 32) - let privatePath = "/Users/private/radroots/private.json" - - for index in 0 ..< 40 { - await coordinator.record( - "ios.lifecycle.test_event", - fields: [ - "attempt": "\(index)", - "content": secret, - "private_key": privateKey, - "source": privatePath, - ] - ) - } - let export = try await coordinator.prepareDiagnostics( - snapshot: makeSnapshot(privateKey: privateKey), - appVersion: "0.1.0-alpha", - appBuild: "1", - phase: "running" - ) - let data = try Data(contentsOf: export.fileURL) - let text = try XCTUnwrap(String(data: data, encoding: .utf8)) - let object = try XCTUnwrap(JSONSerialization.jsonObject(with: data) as? [String: Any]) - let records = try XCTUnwrap(object["records"] as? [[String: Any]]) - - XCTAssertEqual(object["schema"] as? String, "radroots.ios.diagnostics.v1") - XCTAssertEqual(records.count, 16) - XCTAssertLessThanOrEqual(data.count, 256 * 1024) - XCTAssertTrue(text.contains("[redacted]")) - XCTAssertFalse(text.contains(secret)) - XCTAssertFalse(text.contains(privateKey)) - XCTAssertFalse(text.contains(privatePath)) - XCTAssertFalse(text.contains("password@example.test")) - - await coordinator.releaseDiagnostics(export) - XCTAssertFalse(FileManager.default.fileExists(atPath: export.fileURL.path)) +final class RadrootsLifecycleTests: XCTestCase { + func testBackgroundEventsCompleteExactlyOnceBeforeAndAfterAttachment() async { + let router = RadrootsBackgroundEventRouter() + let first = CompletionProbe() + + await router.handle( + identifier: "org.radroots.tests.background.transfer", + completion: RadrootsCompletionOnce { first.increment() } + ) + XCTAssertEqual(first.value(), 0) + + await router.attach(identifier: "org.radroots.tests.background.transfer") { _, completion in + completion() + completion() } - - private func makeRoots() throws -> RadrootsAppleFileRoots { - let base = FileManager.default.temporaryDirectory - .appendingPathComponent("radroots-ios-lifecycle-tests-\(UUID().uuidString)", isDirectory: true) - return try RadrootsAppleFileRoots( - appIdentifier: "org.radroots.tests", - dataRoot: base.appendingPathComponent("data", isDirectory: true), - cacheRoot: base.appendingPathComponent("cache", isDirectory: true), - temporaryRoot: base.appendingPathComponent("temporary", isDirectory: true) - ) + XCTAssertEqual(first.value(), 1) + + let mismatched = CompletionProbe() + await router.handle( + identifier: "org.radroots.tests.background.other", + completion: RadrootsCompletionOnce { mismatched.increment() } + ) + XCTAssertEqual(mismatched.value(), 1) + } + + func testBackgroundEventQueueIsBoundedAndShutdownCompletesPendingEvents() async { + let router = RadrootsBackgroundEventRouter() + let probes = (0..<12).map { _ in CompletionProbe() } + + for probe in probes { + await router.handle( + identifier: "org.radroots.tests.background.transfer", + completion: RadrootsCompletionOnce { probe.increment() } + ) } - private func makeSnapshot(privateKey: String) -> RadrootsRuntimeSnapshot { - RadrootsRuntimeSnapshot( - identity: RadrootsRuntimeIdentity( - publicKeyHex: privateKey, - hostSignerConfigured: true - ), - relay: RadrootsRelayStatus( - profile: "simulator", - state: "configured", - readAvailability: "available", - writeAvailability: "available", - relays: [ - RadrootsRelayEndpointStatus( - url: "wss://user:password@example.test", - access: "read_write", - readState: "available", - writeState: "available", - readLastAttemptUnixMilliseconds: nil, - writeLastAttemptUnixMilliseconds: nil, - readNextAttemptUnixMilliseconds: nil, - writeNextAttemptUnixMilliseconds: nil - ), - ] - ), - blossomConfiguration: nil, - blossomEvidence: nil, - crateName: "radroots_mobile_ffi", - crateVersion: "0.1.0-alpha", - isClosed: false - ) + XCTAssertEqual(probes.filter { $0.value() == 1 }.count, 4) + await router.detachAndCompletePending() + XCTAssertTrue(probes.allSatisfy { $0.value() == 1 }) + } + + func testLifecycleBridgeRunsRegisteredShutdownOnlyOnce() async { + let bridge = RadrootsLifecycleBridge() + let shutdowns = CompletionProbe() + await bridge.register { shutdowns.increment() } + + await bridge.requestShutdown() + await bridge.requestShutdown() + + XCTAssertEqual(shutdowns.value(), 1) + } + + func testProtectedDataMonitorReflectsTransitions() { + let monitor = RadrootsProtectedDataMonitor(available: false) + XCTAssertFalse(monitor.isAvailable()) + + monitor.update(available: true) + + XCTAssertTrue(monitor.isAvailable()) + } + + func testDiagnosticsAreBoundedAndExcludeSensitiveRuntimeValues() async throws { + let roots = try makeRoots() + defer { try? FileManager.default.removeItem(at: roots.dataRoot.deletingLastPathComponent()) } + let coordinator = RadrootsLifecycleCoordinator.testing(roots: roots, capacity: 16) + let secret = "nsec1diagnosticcanary" + let privateKey = String(repeating: "ab", count: 32) + let privatePath = "/Users/private/radroots/private.json" + + for index in 0..<40 { + await coordinator.record( + "ios.lifecycle.test_event", + fields: [ + "attempt": "\(index)", + "content": secret, + "private_key": privateKey, + "source": privatePath, + ] + ) } + let export = try await coordinator.prepareDiagnostics( + snapshot: makeSnapshot(privateKey: privateKey), + appVersion: "0.1.0-alpha", + appBuild: "1", + phase: "running" + ) + let data = try Data(contentsOf: export.fileURL) + let text = try XCTUnwrap(String(data: data, encoding: .utf8)) + let object = try XCTUnwrap(JSONSerialization.jsonObject(with: data) as? [String: Any]) + let records = try XCTUnwrap(object["records"] as? [[String: Any]]) + + XCTAssertEqual(object["schema"] as? String, "radroots.ios.diagnostics.v1") + XCTAssertEqual(records.count, 16) + XCTAssertLessThanOrEqual(data.count, 256 * 1024) + XCTAssertTrue(text.contains("[redacted]")) + XCTAssertFalse(text.contains(secret)) + XCTAssertFalse(text.contains(privateKey)) + XCTAssertFalse(text.contains(privatePath)) + XCTAssertFalse(text.contains("password@example.test")) + + await coordinator.releaseDiagnostics(export) + XCTAssertFalse(FileManager.default.fileExists(atPath: export.fileURL.path)) + } + + private func makeRoots() throws -> RadrootsAppleFileRoots { + let base = FileManager.default.temporaryDirectory + .appendingPathComponent( + "radroots-ios-lifecycle-tests-\(UUID().uuidString)", isDirectory: true) + return try RadrootsAppleFileRoots( + appIdentifier: "org.radroots.tests", + dataRoot: base.appendingPathComponent("data", isDirectory: true), + cacheRoot: base.appendingPathComponent("cache", isDirectory: true), + temporaryRoot: base.appendingPathComponent("temporary", isDirectory: true) + ) + } + + private func makeSnapshot(privateKey: String) -> RadrootsRuntimeSnapshot { + RadrootsRuntimeSnapshot( + identity: RadrootsRuntimeIdentity( + publicKeyHex: privateKey, + hostSignerConfigured: true + ), + relay: RadrootsRelayStatus( + profile: "simulator", + state: "configured", + readAvailability: "available", + writeAvailability: "available", + relays: [ + RadrootsRelayEndpointStatus( + url: "wss://user:password@example.test", + access: .readWrite, + readState: "available", + writeState: "available", + readLastAttemptUnixMilliseconds: nil, + writeLastAttemptUnixMilliseconds: nil, + readNextAttemptUnixMilliseconds: nil, + writeNextAttemptUnixMilliseconds: nil + ) + ] + ), + blossomConfiguration: nil, + blossomEvidence: nil, + crateName: "radroots_mobile_ffi", + crateVersion: "0.1.0-alpha", + isClosed: false + ) + } } private final class CompletionProbe: @unchecked Sendable { - private let lock = NSLock() - private var count = 0 + private let lock = NSLock() + private var count = 0 - func increment() { - lock.withLock { count += 1 } - } + func increment() { + lock.withLock { count += 1 } + } - func value() -> Int { - lock.withLock { count } - } + func value() -> Int { + lock.withLock { count } + } } diff --git a/project.yml b/project.yml @@ -13,7 +13,7 @@ packages: path: . RadrootsKit: url: https://github.com/radrootslabs/apple_kit.git - revision: bd8242d04357adb1d37bf519458a866caf92cd3d + revision: dc770ec0b94a9b7ab245dba7ab8d5e46f65c109e targets: Radroots: diff --git a/radroots.lib.source-lock.v1.toml b/radroots.lib.source-lock.v1.toml @@ -1,8 +1,8 @@ schema = "radroots.lib.source-lock.v1" repository = "https://github.com/radrootslabs/lib" -revision = "828c462255b52a3d9bbfe8ef90b7bc38395bedfa" +revision = "18973e0aa62ae809b0495d5812b0c5ac8c7774ff" architecture = "radroots.crates.release.v2" workspace_catalog_sha256 = "8c27cebf6825f9ed74e122513c661f6dd31837dddb39d0988014121d8ab05e75" version = "0.1.0-alpha" -source_archive_sha256 = "84bf11f91b21fcd7dde5426440f383a5ddc0f14d731ab607471e924ecf5266bc" -lockfile_sha256 = "8d357ab3ab9bf96d3fab442e003880b2d9a0a030a8c9b8f1ea90903d2b308e5d" +source_archive_sha256 = "5b08a33a766e6d1da73e61927d7063474eb223ee8f0dc4532230c8d59c301b2c" +lockfile_sha256 = "b3be85e6245b38bd14f296cb3f6de9381bfb4e830115f9c7484337be70561d44"