9a38873891
- Add fetch_daily_challenge() to SyncProvider trait (default: Ok(None)) - SolitaireServerClient calls GET /api/daily-challenge (public endpoint) and returns the ChallengeGoal; non-2xx responses return Ok(None) so callers fall back to the local date-hash seed - DailyChallengePlugin spawns an async task on Startup (only when SyncProviderResource is present) and polls it in Update; on success it overwrites DailyChallengeResource.seed with the server's seed, ensuring all players worldwide get the same deal on a given date Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>