{
  "schemaVersion": 1,
  "registryVersion": "2026.08.25",
  "profileId": "wong-practice-v1",
  "scope": "Public examples backed by the repository's larger deterministic test suite.",
  "fixtures": [
    {"id":"bao-off","ruleId":"bao","facts":{"baoRule":"off","selectedBaoPayer":"South"},"expected":{"liability":null,"explanation":"A selected payer is ignored when Bao is disabled."},"test":"tests/mahjong-companion.test.mjs"},
    {"id":"bao-persistent-discard","ruleId":"bao","facts":{"baoRule":"persistent","winner":"East","winType":"discard","liablePlayer":"South"},"expected":{"liability":"South pays the complete table settlement","conservation":true},"test":"tests/mahjong-companion.test.mjs"},
    {"id":"bao-persistent-self-draw","ruleId":"bao","facts":{"baoRule":"persistent","winner":"East","winType":"self-draw","liablePlayer":"South"},"expected":{"liability":"South pays the complete table settlement","conservation":true},"test":"tests/mahjong-companion.test.mjs"},
    {"id":"ping-hu-strict","ruleId":"SGMJ-PINGHU-001","facts":{"sets":"four Chows","eye":"unvalued","bonuses":0,"wait":"multiple-types","winType":"discard"},"expected":{"legal":true,"tai":4},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"ping-hu-bonus-fails","ruleId":"SGMJ-PINGHU-001","facts":{"sets":"four Chows","eye":"unvalued","bonuses":1,"wait":"multiple-types"},"expected":{"pingHu":false,"fallback":"All Chow may score when its other conditions hold"},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"ping-hu-one-type-discard-fails","ruleId":"SGMJ-PINGHU-001","facts":{"sets":"four Chows","eye":"unvalued","bonuses":0,"wait":"one-type","winType":"discard"},"expected":{"pingHu":false,"allChowTai":0},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"ping-hu-self-draw-wait-exempt","ruleId":"SGMJ-PINGHU-001","facts":{"sets":"four Chows","eye":"unvalued","bonuses":0,"wait":"one-type","winType":"self-draw"},"expected":{"pingHu":true,"tai":4},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"passed-hu-lock","ruleId":"passed-claims","facts":{"passed":"Hu","tile":"Five Circles","beforeNextDraw":true},"expected":{"canHuOnFiveCircles":false},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"passed-set-lock","ruleId":"passed-claims","facts":{"passed":"Chi","tile":"Five Circles","beforeNextDraw":true},"expected":{"canChi":false,"canPong":false,"canKong":false},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"passed-lock-clears-on-draw","ruleId":"passed-claims","facts":{"passed":"Hu","tile":"Five Circles","playerHasDrawn":true},"expected":{"lockCleared":true},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"nearest-hu-priority","ruleId":"multiple-winners","facts":{"eligibleHuCallersInTurnOrder":["South","West"]},"expected":{"winner":"South","winnerCount":1},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"nearest-hu-before-pong","ruleId":"multiple-winners","facts":{"nearerClaim":"Pong","fartherClaim":"Hu"},"expected":{"claim":"Hu"},"test":"tests/mahjong-audit.test.mjs"},
    {"id":"multiple-profile-allows-callers","ruleId":"multiple-winners","facts":{"companionProfile":"allowed","eligibleHuCallers":2},"expected":{"profileAnswer":"score each winner under the table payment rule"},"test":"tests/mahjong-companion.test.mjs"}
  ]
}
