Clients now broadcast their train position to server every 200ms, allowing other clients to render ghost trains at correct locations. Added UPDATE_POSITION move type and server-side validation to sync client-calculated positions (from momentum physics) to server state. This fixes the issue where ghost trains were rendering but invisible because they all had position=0 from server. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>