Phases 2-5: PDS-first architecture restructure
- Move handle resolution client-side using resolveDidToHandle from atproto-client
- Game page fetches record/moves/passes from PDS and Constellation client-side
- Slim game page server load to session + minimal DB index lookup
- Home page returns raw DIDs, client resolves handles on mount
- API routes use action_count for turn validation instead of counting tables
- Consecutive pass detection via last_action_type column
- Remove moves/passes table inserts from API routes
- Add action_count and last_action_type columns to games table with migration
- Add PDS fallback for when Constellation is unavailable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>