pub fn build(
scanned: Vec<ScannedFile>,
roots: Vec<String>,
scanned_at: u64,
chosen: &[Chosen],
) -> CatalogExpand description
Assembles the graph from the files that were read.
Processing order is deterministic — files are sorted by path first — so two scans of the same library produce exactly the same identifiers. Without that, neither a readable diff nor a reproducible test is possible.