dumduel: server-authoritative netcode (Q3-style)
- New duel-manager.mjs: server owns game state, tick loop at 60Hz,
server-side hit detection, fire-on-stop, roster/round management,
dummy AI for solo practice
- session.mjs: hook DuelManager into WS + UDP handlers, store geckos
channel refs for targeted UDP sends, resolve handle↔channel correlation
- dumduel.mjs: thin client — sends inputs via UDP, renders server
snapshots, client-side prediction with input replay, ping display
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>