Observed Nov2,2026 Beijing at https://randoteams.com/ SyntheticJ01Aster,J02Birch,J03Cedar,J04Elm,J05Fern,J06Grove;2teams;SplitAll. Observed initialTeam1:J04,J01,J05;Team2:J06,J03,J02. DragJ04 into Team2 memberarea ->2/4,exportCSV. DragJ03 into Team1 memberarea ->3/3,exportCSVagain. No reroll. Initial randommembers/order can differ; select one member from each actualteam for your rehearsal. Originalfiles were team-assignments-2026-11-01.csv and team-assignments-2026-11-01 (1).csv; copied unchanged to descriptive public filenames. No internalimplementation/skillbalance/universalcapacity claim. Local archive verification: sends no requests. Save both CSVs and the following code as verify.cjs,then run node verify.cjs. This checks the saved data,not the live site. const fs=require('fs'),assert=require('assert/strict'); const read=n=>fs.readFileSync(n,'utf8').trim().split(/\r?\n/).map((s,i)=>i?s.split(',').map(x=>x.slice(1,-1)):s.split(',')); const moved=read('teams-after-one-move.csv'),swapped=read('teams-after-two-moves.csv'); assert.deepEqual(moved,[['Team 1','Team 2'],['J01 Aster','J06 Grove'],['J05 Fern','J03 Cedar'],['','J02 Birch'],['','J04 Elm']]); assert.deepEqual(swapped,[['Team 1','Team 2'],['J01 Aster','J06 Grove'],['J05 Fern','J02 Birch'],['J03 Cedar','J04 Elm']]); const initial={'J04 Elm':1,'J01 Aster':1,'J05 Fern':1,'J06 Grove':2,'J03 Cedar':2,'J02 Birch':2},changed=[]; for(const row of swapped.slice(1))row.forEach((name,col)=>{if(initial[name]!==col+1)changed.push(name)}); assert.deepEqual(changed.sort(),['J03 Cedar','J04 Elm']);assert.equal(new Set(swapped.slice(1).flat()).size,6); console.log('PASS: first CSV2/4; second CSV3/3; six unique labels; exactlyJ03/J04 changed teams. Local archive only.');