pub fn assemble(files: &mut [FileInfo]) -> AssemblyResultExpand description
Run the assembly phase over all scanned files.
Groups files by parent directory, finds related manifests/lockfiles,
merges them into top-level Package objects, and hoists dependencies.
Updates each FileInfo.for_packages with the UIDs of packages it belongs to.