{
  "service": {
    "name": "lighthouse-player-services",
    "environment": "production",
    "version": "2.8.4",
    "region": "us-east-1",
    "studio": {
      "name": "Moonlit Harbor Games",
      "slug": "moonlit-harbor",
      "supportEmail": "support@moonlitharborgames.example",
      "timezone": "America/Toronto"
    }
  },
  "api": {
    "baseUrl": "https://api.moonlitharborgames.example/v2",
    "requestTimeoutMs": 8000,
    "rateLimits": {
      "anonymous": {
        "requests": 60,
        "windowSeconds": 60
      },
      "authenticated": {
        "requests": 600,
        "windowSeconds": 60
      }
    },
    "cors": {
      "allowedOrigins": [
        "https://play.moonlitharborgames.example",
        "https://launcher.moonlitharborgames.example"
      ],
      "allowedMethods": [
        "GET",
        "POST",
        "PATCH",
        "DELETE"
      ]
    }
  },
  "game": {
    "id": "emberfall-chronicles",
    "title": "Emberfall Chronicles",
    "platforms": [
      "steam",
      "itch",
      "epic",
      "switch"
    ],
    "currentBuild": {
      "buildId": "efc-1.4.2-3918",
      "branch": "live",
      "releasedAt": "2026-06-28T15:30:00Z",
      "minimumClientVersion": "1.4.0"
    },
    "featureFlags": {
      "cloudSaves": true,
      "crossPlatformProfiles": true,
      "seasonalEvents": true,
      "experimentalMatchmaking": false,
      "ugcWorkshop": false
    }
  },
  "services": {
    "auth": {
      "provider": "studio-oauth",
      "tokenTtlSeconds": 3600,
      "refreshTokenTtlSeconds": 2592000,
      "requiredScopes": [
        "profile:read",
        "profile:write",
        "inventory:read"
      ]
    },
    "matchmaking": {
      "enabled": true,
      "queueRegions": [
        "na-east",
        "na-west",
        "eu-central"
      ],
      "defaultQueue": "co_op_story",
      "maxPartySize": 4,
      "skillBands": [
        {
          "name": "newcomer",
          "minRating": 0,
          "maxRating": 899
        },
        {
          "name": "adventurer",
          "minRating": 900,
          "maxRating": 1499
        },
        {
          "name": "veteran",
          "minRating": 1500,
          "maxRating": 9999
        }
      ]
    },
    "telemetry": {
      "enabled": true,
      "sampleRate": 0.25,
      "events": [
        "session_started",
        "quest_completed",
        "boss_defeated",
        "purchase_completed",
        "crash_reported"
      ],
      "redactFields": [
        "email",
        "ipAddress",
        "accessToken"
      ]
    }
  },
  "liveOps": {
    "activeEvent": {
      "eventId": "summer-forge-2026",
      "name": "Summer Forge",
      "startsAt": "2026-07-01T16:00:00Z",
      "endsAt": "2026-07-22T16:00:00Z",
      "rewardTrack": [
        {
          "level": 1,
          "rewardId": "banner_sunlit_anvil",
          "type": "cosmetic"
        },
        {
          "level": 5,
          "rewardId": "currency_embers_500",
          "type": "currency"
        },
        {
          "level": 10,
          "rewardId": "skin_blacksmith_mira",
          "type": "character_skin"
        }
      ]
    },
    "maintenanceWindows": [
      {
        "id": "mw-2026-07-15",
        "startsAt": "2026-07-15T08:00:00Z",
        "endsAt": "2026-07-15T09:30:00Z",
        "impact": "login_and_matchmaking_unavailable"
      }
    ]
  },
  "store": {
    "currencyCode": "USD",
    "catalogRefreshMinutes": 30,
    "featuredItems": [
      {
        "sku": "founders-cosmetic-pack",
        "name": "Founder's Cosmetic Pack",
        "price": 9.99,
        "discountPercent": 20,
        "availableUntil": "2026-07-31T23:59:59Z"
      },
      {
        "sku": "ember-crystals-1200",
        "name": "1200 Ember Crystals",
        "price": 11.99,
        "discountPercent": 0,
        "availableUntil": null
      }
    ]
  },
  "observability": {
    "logging": {
      "level": "info",
      "structured": true,
      "retentionDays": 30
    },
    "alerts": [
      {
        "name": "high-error-rate",
        "metric": "http_5xx_rate",
        "threshold": 0.03,
        "windowMinutes": 5,
        "notify": [
          "ops-oncall",
          "backend-leads"
        ]
      },
      {
        "name": "matchmaking-latency",
        "metric": "matchmaking_wait_p95_seconds",
        "threshold": 120,
        "windowMinutes": 10,
        "notify": [
          "liveops"
        ]
      }
    ]
  }
}