Public declaration syntax from forge-swift/Sources/ForgeCore/Brew.swift Original source SHA-256: d7b559d1d2d0ad629fdd3e0d86ff7488ec278494e60699f32d813e110f27b790 Function bodies and constant values are omitted. This is not the complete implementation. Source line 20 public struct BrewId: Codable, Sendable, Hashable, Comparable Source line 24 public init(_ id: String) Source line 29 public var asStr: String Source line 31 public init(from decoder: Decoder) throws Source line 36 public func encode(to encoder: Encoder) throws Source line 41 public static func < (lhs: BrewId, rhs: BrewId) -> Bool Source line 47 public var description: String Source line 53 public struct NodeId: Codable, Sendable, Hashable, Comparable Source line 57 public init(_ id: String) Source line 62 public var asStr: String Source line 64 public init(from decoder: Decoder) throws Source line 69 public func encode(to encoder: Encoder) throws Source line 74 public static func < (lhs: NodeId, rhs: NodeId) -> Bool Source line 80 public var description: String Source line 86 public struct BrewVersion: Codable, Sendable, Hashable, Comparable Source line 90 public init(_ version: String) Source line 95 public var asStr: String Source line 97 public init(from decoder: Decoder) throws Source line 102 public func encode(to encoder: Encoder) throws Source line 107 public static func < (lhs: BrewVersion, rhs: BrewVersion) -> Bool Source line 113 public var description: String Source line 119 public enum JoinMode: Codable, Sendable, Hashable Source line 131 public init(from decoder: Decoder) throws Source line 152 public func encode(to encoder: Encoder) throws Source line 173 public enum BrewNodeKind: Codable, Sendable Source line 218 public init(from decoder: Decoder) throws Source line 272 public func encode(to encoder: Encoder) throws Source line 314 public enum BrewEdgeKind: String, Codable, Sendable, Hashable, Comparable, CaseIterable Source line 322 public static func < (lhs: BrewEdgeKind, rhs: BrewEdgeKind) -> Bool Source line 330 public struct BrewNode: Codable, Sendable Source line 332 public let id: NodeId /// The node's execution semantics. public let kind: BrewNodeKind /// Arbitrary key-value metadata for tooling and visualization. public var metadata: [String: String] public init(id: NodeId, kind: BrewNodeKind, metadata: [String: String]; Source line 334 public let kind: BrewNodeKind /// Arbitrary key-value metadata for tooling and visualization. public var metadata: [String: String] public init(id: NodeId, kind: BrewNodeKind, metadata: [String: String]; Source line 336 public var metadata: [String: String] public init(id: NodeId, kind: BrewNodeKind, metadata: [String: String]; Source line 338 public init(id: NodeId, kind: BrewNodeKind, metadata: [String: String]; Source line 348 public struct BrewEdge: Codable, Sendable, Hashable, Comparable Source line 350 public let from: NodeId /// Target node. public let to: NodeId /// Edge semantics. public let kind: BrewEdgeKind public init(from: NodeId, to: NodeId, kind: BrewEdgeKind) Source line 352 public let to: NodeId /// Edge semantics. public let kind: BrewEdgeKind public init(from: NodeId, to: NodeId, kind: BrewEdgeKind) Source line 354 public let kind: BrewEdgeKind public init(from: NodeId, to: NodeId, kind: BrewEdgeKind) Source line 356 public init(from: NodeId, to: NodeId, kind: BrewEdgeKind) Source line 362 public static func < (lhs: BrewEdge, rhs: BrewEdge) -> Bool Source line 379 public struct Brew: Codable, Sendable Source line 381 public let id: BrewId /// Semantic version of this brew definition. public let version: BrewVersion /// The graph's nodes, keyed by stable node ID. public var nodes: [NodeId: BrewNode] /// The graph's edges. public var edges: Set /// Designated entry nodes. Execution begins at these nodes. public var entryNodes: [NodeId] /// Designated exit nodes. When all exit nodes complete, the brew is complete. public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 383 public let version: BrewVersion /// The graph's nodes, keyed by stable node ID. public var nodes: [NodeId: BrewNode] /// The graph's edges. public var edges: Set /// Designated entry nodes. Execution begins at these nodes. public var entryNodes: [NodeId] /// Designated exit nodes. When all exit nodes complete, the brew is complete. public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 385 public var nodes: [NodeId: BrewNode] /// The graph's edges. public var edges: Set /// Designated entry nodes. Execution begins at these nodes. public var entryNodes: [NodeId] /// Designated exit nodes. When all exit nodes complete, the brew is complete. public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 387 public var edges: Set /// Designated entry nodes. Execution begins at these nodes. public var entryNodes: [NodeId] /// Designated exit nodes. When all exit nodes complete, the brew is complete. public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 389 public var entryNodes: [NodeId] /// Designated exit nodes. When all exit nodes complete, the brew is complete. public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 391 public var exitNodes: [NodeId] /// Optional model topology for this brew. public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 393 public var topology: ModelTopology? public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 395 public init( id: BrewId, version: BrewVersion, nodes: [NodeId: BrewNode]; Source line 420 public init(from decoder: Decoder) throws Source line 432 public func encode(to encoder: Encoder) throws