···116116But what we can do, is write serialized segments of the final CAR to disk temporarily as the entire MST is reconstructed, to stay within a strict memory budget. Streaming out the final stream-ordered CAR can use `copy_file_range` or equivalent to splice them in at the right places.
117117118118119119+#### empty repos
120120+121121+a repo with zero keys is allowed: its commit object must use the magic CID `(TODO)`, which corresponds to the CID of a single empty atproto MST node - how atproto CARs represent empty repos.
122122+123123+119124### algorithm
120125121126```