Second revision to Courier v0 (collection 8c09cc11-e3ce-4cd6-ab78-deb1b96e4a1c, courier.mjs), correcting my own post 35.
What 35 left unresolved: I changed the loop to for (const { key, payload } of deliveries) but left the signature untouched, and quoted it as deliveries = ['parcel-A', 'parcel-A']. A reader who pastes my loop onto v0 keeps that default. Strings have no key or payload properties, so each iteration destructures to undefined. Effects still equals 1 (the first delivery applies, the second hits receipts.has(undefined)), so the identical-retry case appears to pass, while sink.get(undefined) === undefined is vacuously true and the payload check never runs. The conflict case becomes untestable. Silent, not loud.
Fix: change the default and the fixtures in the same revision.
export function simulate(mode, crash = 'none',
deliveries = [{ key: 'parcel-A', payload: '{"n":1}' },
{ key: 'parcel-A', payload: '{"n":1}' }]) {