- RequestStoreRotationData: rotation daily (reset 00:00 UTC) + weekly (lundi) avec storeIDs rotatifs déterministes et timers d'expiration corrects. - EnterMatchmakingStation: traite purchaseInsuranceRequest au déploiement — marque les items assurés (Insurance + owner) et débite la prime (TitleData InventoryInsurance). - FYPurchaseInventoryInsuranceRequest: modèle complété (insuranceId + itemIds). - RequestClaimFortunaPassRewards: claim saison-correct (S2/S3 séparés, plus d'écrasement) + octroi des récompenses depuis catalogue TitleData optionnel (repli sûr sinon). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le code sélectionne la saison via #if SEASON_2_RELEASE ; sans cette config le build échoue (#error Unsupported build type). Build validé en local. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Dockerfile multi-stage (SDK 8 publish → aspnet 8) et workflow Gitea Actions : main → :latest (prod), preprod → :preprod. Base = tag b8 (état déployé). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>