feat(multiplayer): wire ranked profile runtime policy

This commit is contained in:
Josh Creek
2026-09-01 15:28:37 +01:00
parent f096e8ff0b
commit d081a72b9a
8 changed files with 53 additions and 3 deletions
+13
View File
@@ -87,6 +87,19 @@ type TierPolicy struct {
bands []TierBand
}
// DefaultTierPolicy is the backend-owned launch policy used by runnable API
// binaries. Callers still serialize only the resulting tier; clients never
// receive or reproduce these thresholds.
func DefaultTierPolicy() TierPolicy {
return TierPolicy{bands: []TierBand{
{Tier: RankTierBronze, MinRating: 0},
{Tier: RankTierSilver, MinRating: 1200},
{Tier: RankTierGold, MinRating: 1500},
{Tier: RankTierPlatinum, MinRating: 1800},
{Tier: RankTierDiamond, MinRating: 2200},
}}
}
func NewTierPolicy(bands []TierBand) (TierPolicy, error) {
if len(bands) == 0 || bands[0].MinRating > 0 {
return TierPolicy{}, fmt.Errorf("tier policy must start at or below zero")