pub fn shortest_path(
graph: &MaterializedGraph,
start: &str,
end: &str,
) -> Option<Vec<String>>Expand description
Shortest path between two nodes (unweighted BFS). Returns the path as a list of node IDs (including start and end), or None if no path exists.