The same bands, each carrying an id — minted through makeBandId for any that arrives
without one, against the bands ALREADY accepted so a fresh id can collide with neither a
declared one nor another fresh one.
This is the one place a band acquires an identity, and it runs on every door a band can enter
by: the collection's codec and the whole-EQ restore. A band with no id is not an anonymous
band — it is one whose identity has not been assigned yet, and leaving it unassigned makes it
unaddressable at /eq/bands/{bandId} forever (measured on the rig 2026-08-13: bands stored
with id: null, reachable only by position, which is what #159 retired).
A list where no band declares an id mints 1, 2, 3, …. A MIXED list mints around what is
already taken, so [{id:'2'}, {no id}] yields 2 and 1 rather than two bands sharing 2.
The same bands, each carrying an id — minted through makeBandId for any that arrives without one, against the bands ALREADY accepted so a fresh id can collide with neither a declared one nor another fresh one.
This is the one place a band acquires an identity, and it runs on every door a band can enter by: the collection's codec and the whole-EQ restore. A band with no id is not an anonymous band — it is one whose identity has not been assigned yet, and leaving it unassigned makes it unaddressable at
/eq/bands/{bandId}forever (measured on the rig 2026-08-13: bands stored withid: null, reachable only by position, which is what #159 retired).A list where no band declares an id mints
1, 2, 3, …. A MIXED list mints around what is already taken, so[{id:'2'}, {no id}]yields2and1rather than two bands sharing2.