Continue the Zone4 legacy-client local server (rynergold/zone-11, branch legacy/local-server) until a player can enter at least one game mode (Arcade) from the Village and play it, or you're truly blocked.

First read ~/Developer/zone4-legacy-runtime/HANDOFF.md and docs/legacy/protocol.md in ~/Developer/zone-11. They describe what works (login -> character select -> channel select -> Village, character visible and walking), the test tools, gotchas, and next steps.

Plan:
1. Find how Arcade is started from the Village (DracuLab footage: 0x0CF3 PARTY_QUICKEN_ARCADE; see /tmp/zone4_video/frames_town and the decrypted Lua in /tmp/z4_eval/lua_dec).
2. Implement server replies for the Village start-up requests and the Arcade sequence (0x08AB READY_GAME, 0x08AE SEND_LOADINGPERCENT, 0x113B HUNTING_GET_PROP, 0x0854, 0x0852 ...) by reading each dispatcher case (tools/case.sh) and its deserializer in /tmp/z4_eval/decomp. Add handlers to scripts/legacy-server/handlers.py (hot-reloaded).
3. Play one Arcade round end to end with a visible character; commit each working step on legacy/local-server.
4. Then: README for scripts/legacy-server, issue #16 update, PR from legacy/local-server.

Rules: localhost only, never contact real or third-party servers; XIGNCODE stays skipped only in the private local build (user-approved), never in anything distributed; never commit game files, decrypted Lua or decompiled code; never modify /tmp/z4_eval or the other sessions' folders (~/Developer/zone-11-godot, -re, -convert); send synthetic keys only to the game process (keypid/typepid), never the frontmost app; keep the default launcher (offline training room) working. Only stop and ask me for paid software, sudo/password, a GUI permission prompt, or a physical action. Otherwise debug yourself, try alternatives, and don't stop at a plan.
