versionDrift

function versionDrift
net.ts:217
versionDrift(ours: UniverseVersions, theirs: UniverseVersions) → readonly VersionDrift[]

Every way two builds disagree about which universe they derive.

An empty array is the same universe. This is the one verdict: the handshake reads it, the save loader reads it, and the health panel displays it, so "would this peer generate the same mountains" and "was this save written against the sky I have" cannot be answered differently by two pieces of code that both believe they are correct.

The asymmetry is deliberate and it is the whole point. An algorithm present on one side and absent on the other is a mismatch, not a default — a new generator is a new universe whether or not the older peer has heard of it. The tempting behavior, ignoring unknown keys, makes the comparison pass in exactly the case it exists to catch. An empty catalog string is the same claim in the other manifest's spelling: not stated, therefore not the same.

Catalog first, then generation keys alphabetically, so a drift always reads the same way whoever asked.

oursUniverseVersions
Undocumented
theirsUniverseVersions
Undocumented
Returnsreadonly VersionDrift[]