# Shakti Ruleset Bridge

`@shakti/fighting-ruleset-bridge` owns the deterministic conversion from Shakti
combat-sport biomechanics into V2 fighting-game frame-data. V2 consumes it
through `@v2/shakti-ruleset-bridge`, which emits CSV rows for
`V2BalanceImporter` and reference-card text for the Sophia frame-data corpus.

The launch profiles cover MK / SF / Tekken / WWE / UFC / SC / DJ. The current V2
bridge acceptance path explicitly verifies MK / SF / Tekken / SC / DJ table
differences because those are the immediate frame-data authoring dependencies in
the V2 backlog.

## Contract

- Source package: `@shakti/fighting-ruleset-bridge`.
- V2 adapter: `@v2/shakti-ruleset-bridge`.
- Unreal import target: `V2BalanceImporter` -> `FV2FrameData`.
- Runtime policy: off-rollback authoring and match-load data only.
- Service registry: `shakti-fighting-ruleset-bridge` on `EV2OshunDomain::Shakti`
  with `bMayInfluenceRollback = false`.

Each non-game-only move must keep a real Shakti antecedent (`sourceSport` and
`shaktiTechnique`). Game-only moves, such as projectiles or finishers, are
allowed only when flagged `gameOnly`; they still carry designer-authored
reference numerics so the CSV output remains deterministic.

## Verification

- `pnpm nx test @shakti/fighting-ruleset-bridge`
- `pnpm nx test @v2/shakti-ruleset-bridge`
- `python3 V2/ue/Tools/check-v2-shakti-ruleset-bridge.py`
- `python3 V2/ue/Tools/check-v2-combat-module.py`
- `python3 V2/ue/Tools/check-v2-services-module.py`
