| 34 | |
| 35 | |
| 36 | class GraphEdge(BaseModel): |
| 37 | source: str |
| 38 | target: str |
| 39 | label: Optional[str] = None # Descriptive (only for decisions/API calls) |
| 40 | payload: Optional[EdgePayload] = None # Data contract |
| 41 | condition: Optional[str] = None # For decision branches: "if request.is_valid" |
| 42 | |
| 43 | |
| 44 | class GraphNode(BaseModel): |