# V2 Economy Balance Tuning Interface

`@v2/economy-balance-tuning-interface` covers `TODOS.phase-72.72.18.1.12`: a
live-ops economy tuning surface that adjusts drop rates, economy prices, and
economy rewards in real time through remote config without a client patch.

The service composes `@v2/remote-config-service` instead of creating a second
configuration path. Operators start from the production remote-config surface,
submit proposed economy changes, run validation rules, and preview the staging
remote-config payload before promotion.

## Tunable Families

- `loot.drop-rate.legendary-shard` uses the `drop-rate` parameter kind and a
  slider-style control.
- `economy.price.skin-volt.soft` uses the `economy-price` parameter kind and a
  currency-input control.
- `economy.reward.daily-win.soft` uses the `economy-reward` parameter kind and a
  stepper control.

All controls set `requiresClientPatch: false`. The publish plan also sets
`publishesRemoteConfigOnly: true`, so a valid tune ships as a remote-config
snapshot and does not require a binary patch.

## Operator Surface

The static V2 web surface lives at
`apps/v2/web/live-service/economy-balance-tuning/` and is served at
`/live-service/economy-balance-tuning/`. It loads `economy-balance-tuning.json`,
renders the drop-rate, price, and reward controls, supports family filters,
search, a changed-only view, inline validation, and a remote-config payload
preview.

The payload preview includes the source version, staging version, operator,
reason, changed parameter keys, proposed values, and
`requiresClientPatch: false`. Invalid values are blocked before preview; for
example, a drop rate at 100 percent or a negative price/reward shows a blocked
validation state instead of a ready-to-preview state.

## Package API

- `buildV2EconomyBalanceTuningSurface`
- `V2_ECONOMY_BALANCE_TUNING_PACKAGE_NAME`
- `V2_ECONOMY_BALANCE_TUNING_BINDING_ID`
- `V2_ECONOMY_BALANCE_TUNING_POLICY_ID`

The builder requires a production remote-config surface, rejects non-economy
parameter changes, and delegates to:

- `buildV2RemoteConfigValidationRulesSurface`
- `buildV2RemoteConfigPreviewStagingSurface`

## Verification

```bash
pnpm --filter @v2/economy-balance-tuning-interface run typecheck
pnpm --filter @v2/economy-balance-tuning-interface run test
pnpm --filter @v2/economy-balance-tuning-interface run lint
pnpm --filter @v2/economy-balance-tuning-interface run build
pnpm --dir apps/v2/web test:e2e -- e2e/v2-web-economy-balance-tuning.spec.ts
python3 V2/ue/Tools/check-v2-economy-balance-tuning.py
```

Required Horde gates:

- `economy-balance-tuning-package`
- `economy-balance-tuning-drop-rates`
- `economy-balance-tuning-prices`
- `economy-balance-tuning-rewards`
- `economy-balance-tuning-remote-config-preview`
- `economy-balance-tuning-playwright`
- `economy-balance-tuning-ci-wired`
