Ledger #2 — drummer sits. E's sit.glb is wired into the shared rig stack:
- FINDING: Fable's prescribed _rotWithHips (keep Hips.quaternion) MANGLES the
pose in-shell (head folds to hip height / laid flat) — the fleet rigs' bind
Hips orientation is incompatible with the Mixamo clip's, exactly what _rotOnly
documents. So the sit clip rides _rotOnly (drops Hips.quaternion) like every
clip; _rotWithHips removed. The seated read comes from the leg bends + a new
spawnRig({seated}) foot-replant (opt-in; standing spawns skip it).
- Drummer uses fleet.sitClip when present (retires SEAT_DROP), tags
fig.userData.procitySeated=true (F's gate). Stature ~1.1-1.3m in [0.9,1.5];
reads seated from the crowd POV (kit hides the legs). Graceful SEAT_DROP
fallback when sitClip absent (?noassets / before F wires {sit}).
- BYTE-IDENTICAL proof (load-bearing): with sitClip null AND loaded, keepers are
standing rigs (stature 1.718, innerRotY pi, replanted:false) and walkers 188/188
face travel. Parallel/opt-in path; _rotOnly + makeActor untouched.
- F seam: loadPedFleet(base, {sit}) — pass sit:<gig active> (false under
?classic → no sit.glb fetch, classic covenant intact). Default off, graceful.
Ledger #5 — backline unification. _addBackline plants E's guitar_amp at C's
stage.backline[0] (== D's R15 pose, 0.75m bass clearance) instead of a hardcoded
pose. C dropped its primitive ampStacks, so D owns the backline: placeholder-
persists (primitive amp → GLB swap) with the primitive as the ?noassets fallback.
Verified: GLB swaps, primitive under noassets, no crash, 0 fetch.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>