from pydantic import BaseModel
from typing import List, Optional
from narraml.types.node import Node

class Path(BaseModel):
    id: str
    label: str
    likelihood: float
    nodes: List[Node] = []

class SubPath(Path):
    diverges_from: Optional[str] = None
    diverges_at_node: Optional[str] = None
    is_terminal: Optional[bool] = None
