# V2 Economy Vendor Shop

`EconomyVendorShop.V2` is the currency-aware shop layer for V2 economy systems.
It composes existing inventory containers with `PriceTable.V2`,
`CurrencyLedger.V2`, and `ServerCurrencyAuthority.V2` instead of replacing the
legacy single-currency `VendorShop.V2` contract.

## Runtime Surface

- `FV2EconomyVendorShopConfig` stores vendor id, price table id, region,
  reputation currency, server authority id, currency source id, buy/sell
  toggles, limited-stock settings, reputation pricing settings, and stock
  refresh cadence.
- `FV2EconomyVendorShopListing` maps listing ids to item/currency pairs and
  tracks limited stock, max stock, buy/sell permissions, and refresh timers.
- `FV2EconomyVendorShopState` owns the vendor inventory container and listing
  state.
- `FV2EconomyVendorShopQuote` wraps a `PriceTable.V2` quote and applies
  reputation-based buy discounts or sell bonuses.
- `FV2EconomyVendorShopTransactionResult` returns the updated shop, player
  inventory, player currency ledger, transferred instance ids, quote, and server
  currency authority result.

## Transaction Rules

1. Vendor inventory uses `EV2InventoryContainerType::VendorStock` and item
   instances move through the existing inventory container helpers.
2. Buy and sell quotes resolve through `PriceTable.V2`, using the vendor region
   for regional prices.
3. Reputation pricing is opt-in and requires a reputation currency from
   `CurrencyDefinition.V2`.
4. Currency changes are server-authoritative mutations applied through
   `ServerCurrencyAuthority.V2` and logged into `CurrencyLedger.V2`.
5. Buy/sell operations work on copies of shop, player inventory, and player
   ledger until price, inventory, and server authority checks pass.
6. Limited stock decrements on buy, increments on accepted sell, and restocks on
   refresh timers.

## Validation Commands

Run these checks when touching economy vendor shop behavior:

```bash
python3 V2/ue/Tools/check-v2-economy-vendor-shop.py
python3 V2/ue/Tools/check-v2-price-table.py
python3 V2/ue/Tools/check-v2-server-currency-authority.py
python3 V2/ue/Tools/check-v2-currency-ledger.py
python3 V2/ue/Tools/check-v2-currency-definition.py
python3 V2/ue/Tools/check-v2-vendor-shop.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Gameplay/Economy/EconomyVendorShop_V2_Contract.json
python3 -m json.tool V2/ue/Build/Horde/v2-buildgraph-job.json
python3 V2/tools/validate-v2-docs.py
```
