Public declaration syntax from forge-swift/Sources/ForgeCore/Topology.swift Original source SHA-256: 48447391fa94467b4218fe02fd524e3555ee857dcca3870b52aadd4d8b3cde95 Function bodies and constant values are omitted. This is not the complete implementation. Source line 19 public let defaultRole: String; Source line 27 public enum CostPreference: String, Codable, Sendable, Hashable, CaseIterable Source line 42 public enum LatencyPreference: String, Codable, Sendable, Hashable, CaseIterable Source line 61 public struct ModelSlot: Codable, Sendable Source line 63 public let role: String /// Primary model for this slot. public let primary: ProviderRef /// Ordered fallback models. Tried in sequence when the primary is /// unavailable or fails negotiation. public var fallbacks: [ProviderRef] /// Runtime capabilities required for this slot. public var requiredCapabilities: [RuntimeCapability] /// Optional cost preference for the router. public var costPreference: CostPreference? /// Optional latency preference for the router. public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 66 public let primary: ProviderRef /// Ordered fallback models. Tried in sequence when the primary is /// unavailable or fails negotiation. public var fallbacks: [ProviderRef] /// Runtime capabilities required for this slot. public var requiredCapabilities: [RuntimeCapability] /// Optional cost preference for the router. public var costPreference: CostPreference? /// Optional latency preference for the router. public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 70 public var fallbacks: [ProviderRef] /// Runtime capabilities required for this slot. public var requiredCapabilities: [RuntimeCapability] /// Optional cost preference for the router. public var costPreference: CostPreference? /// Optional latency preference for the router. public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 73 public var requiredCapabilities: [RuntimeCapability] /// Optional cost preference for the router. public var costPreference: CostPreference? /// Optional latency preference for the router. public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 76 public var costPreference: CostPreference? /// Optional latency preference for the router. public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 79 public var latencyPreference: LatencyPreference? /// Optional Arsenal scope narrowing applied when this slot is selected. public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 82 public var arsenalScopeNarrowing: [String]? public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 84 public init( role: String, primary: ProviderRef, fallbacks: [ProviderRef]; Source line 120 public struct ModelTopology: Codable, Sendable Source line 145 public var name: String Source line 148 public var defaultRoleName: String Source line 151 public var slots: [String: ModelSlot] Source line 154 public var slotCount: Int Source line 157 public func hasRole(_ role: String) -> Bool Source line 165 public var defaultSlot: ModelSlot Source line 176 public func slotForRole(_ role: String) -> ModelSlot Source line 182 public func allProviderRefs() -> [ProviderRef] Source line 198 public static func single(_ providerRef: ProviderRef) -> ModelTopology Source line 208 public static func builder() -> TopologyBuilder Source line 220 public final class TopologyBuilder: @unchecked Sendable Source line 229 public func name(_ name: String) -> TopologyBuilder Source line 243 public func slot(_ role: String, _ primary: ProviderRef) -> TopologyBuilder Source line 257 public func withFallback(_ role: String, _ fallback: ProviderRef) -> TopologyBuilder Source line 271 public func withRequiredCapability(_ role: String, _ capability: RuntimeCapability) -> TopologyBuilder Source line 285 public func withCostPreference(_ role: String, _ pref: CostPreference) -> TopologyBuilder Source line 299 public func withLatencyPreference(_ role: String, _ pref: LatencyPreference) -> TopologyBuilder Source line 313 public func withScopeNarrowing(_ role: String, _ scopes: [String]) -> TopologyBuilder Source line 323 public func build() throws -> ModelTopology