from dataclasses import dataclass @dataclass class GraphNode: id: str type: str # capability, module, entity, integration, ... label: str status: str # FileStatus or "unknown" group_id: str parent: str | None = None @dataclass class GraphEdge: source: str target: str relation: str # traces_to, depends_on, owns, integrates_with, ... @dataclass class GraphGroup: id: str label: str layer: str # business, application, data, technology, cross-layer @dataclass class GraphView: nodes: list[GraphNode] edges: list[GraphEdge] groups: list[GraphGroup]