2.5 KiB
2.5 KiB
| 1 | contract | typescript_field | csv_file | csv_column | parse_rule | validation | error_policy | source_tag |
|---|---|---|---|---|---|---|---|---|
| 2 | RunState | floor | floor-balance.csv | floor | int 1..10 | 1<=floor<=10 | reject_checkpoint | VALIDATION_ADDED |
| 3 | RunState | points | shop-offers.csv | price | signed int transaction result | points>=0 | rollback_command | VALIDATION_ADDED |
| 4 | RngStreamState | algorithm | none | none | literal xoshiro128ss | state has 4 uint32 | reject_checkpoint | VALIDATION_ADDED |
| 5 | RngStreamState | index | technical_log | rngIndex | uint64 serialized as decimal string | monotonic per stream | reject_checkpoint | VALIDATION_ADDED |
| 6 | DdaState | sourceConditions | gameconfig.csv | dynamicDifficultyCondition | int[3] 5|8|12 | exact source array | force_tier0 | SOURCE_CONFIRMED |
| 7 | DdaState | sourceValues | gameconfig.csv | dynamicDifficultyValue | int[6] 10|15|20|5|5|5 | exact source array | force_tier0 | SOURCE_CONFIRMED |
| 8 | DiceRoll | dieA|dieB | none | none | diceRng int inclusive 1..6 | 36 ordered outcomes equal | abort_roll | VALIDATION_ADDED |
| 9 | BattleSnapshot | enemies | floor-balance.csv|monsterinfo.csv | combat columns | base × prefab × dda | finite nonnegative stats | abort_battle | SOURCE_CONFIRMED |
| 10 | GearInstance | catalogId | gear-catalog.csv | catalog_id | int foreign key | exactly 40 valid ids | reject_reward | SOURCE_CONFIRMED |
| 11 | GearInstance | statusId|value | gear-status.csv | status_id|base_min|base_max|plus_value | uniform base + plus×rank | finite and display precision | reject_reward | VALIDATION_ADDED |
| 12 | BlessingInstance | blessingId | blessings.csv | blessing_id | string foreign key | exactly 32 ids | reject_reward | SOURCE_CONFIRMED |
| 13 | PotionState | countLevel|healLevel|healAmount | potions.csv | level|value | lookup HEAL_LEVEL value as flat HP | count 1..10 healAmount 50..650 | reject_purchase | SOURCE_CONFIRMED |
| 14 | BossGaugeState | enabled|runtimeGauge|mode|playerRolls|countdownRemaining | stage-boss-rules.csv | bossSpawnRule|bossSpawnRuleValue | enabled only for DiceGauge; gauge clamp 0..100; BUILDUP 0..2 then COUNTDOWN 4..0 | stage0 enabled=false; DiceGauge increment=50 and 2+4 observed cycle | reject_checkpoint | RUNTIME_OBSERVED |
| 15 | ShopState | fixedOfferIds|randomOfferIds | shop-offers.csv | offer_id | eligible filtered sample | 3 fixed + <=3 random unique | rollback_reroll | SOURCE_CONFIRMED |
| 16 | EventInstance | tileId | events.csv | tile_id | int or MERCHANT | known event and legal tile | rollback_install | SOURCE_CONFIRMED |
| 17 | RewardBoostTransaction | placementId | reward-boosts.csv | placement_id | string foreign key | event placement matches | reject_transaction | VALIDATION_ADDED |
| 18 | Checkpoint | checksum | none | none | SHA-256 canonical JSON without checksum | 64 lowercase hex | load_backup | VALIDATION_ADDED |