Recover whole-game packed event conditions

This commit is contained in:
Jan Petykiewicz 2026-04-15 22:38:13 -07:00
commit 5d779263d2
7 changed files with 414 additions and 117 deletions

View file

@ -5,11 +5,11 @@
"description": "Tracked save-slice document with whole-game conditions gating a whole-game effect.",
"original_save_filename": "captured-world-condition-gated.gms",
"original_save_sha256": "world-condition-gated-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves whole-game ordinary conditions gate imported runtime effects",
"whole-game grouped descriptor ids now line up with the checked-in metadata table"
]
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves whole-game ordinary conditions gate imported runtime effects",
"whole-game condition ids now line up with the checked-in metadata tables instead of fixture-only placeholders"
]
},
"save_slice": {
"file_extension_hint": "gms",
@ -187,7 +187,7 @@
"standalone_condition_rows": [
{
"row_index": 0,
"raw_condition_id": 3901,
"raw_condition_id": 3835,
"subtype": 0,
"flag_bytes": [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"candidate_name": null,
@ -197,27 +197,27 @@
"semantic_preview": "Test Use Wartime Cargos >= 1",
"requires_candidate_name_binding": false,
"notes": [
"tracked whole-game condition sample"
"checked-in whole-game condition metadata sample"
]
},
{
"row_index": 1,
"raw_condition_id": 3902,
"raw_condition_id": 435,
"subtype": 0,
"flag_bytes": [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"candidate_name": null,
"candidate_name": "Mogul",
"comparator": "ge",
"metric": "Candidate Availability: Mogul",
"semantic_family": "world_state_threshold",
"semantic_preview": "Test Mogul >= 2",
"requires_candidate_name_binding": false,
"notes": [
"tracked whole-game condition sample"
"checked-in whole-game condition metadata sample with candidate-name side string"
]
},
{
"row_index": 2,
"raw_condition_id": 3903,
"raw_condition_id": 2350,
"subtype": 0,
"flag_bytes": [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"candidate_name": null,
@ -227,7 +227,7 @@
"semantic_preview": "Test Economic Status >= 4",
"requires_candidate_name_binding": false,
"notes": [
"tracked whole-game condition sample"
"checked-in whole-game condition metadata sample"
]
}
],

View file

@ -14,21 +14,18 @@
],
"expected_summary": {
"packed_event_collection_present": true,
"packed_event_record_count": 2,
"packed_event_decoded_record_count": 2,
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 0,
"event_runtime_record_count": 0,
"packed_event_blocked_unmapped_world_descriptor_count": 1,
"packed_event_blocked_unmapped_world_condition_count": 1
"packed_event_blocked_unmapped_world_condition_count": 0
},
"expected_state_fragment": {
"packed_event_collection": {
"records": [
{
"import_outcome": "blocked_unmapped_world_descriptor"
},
{
"import_outcome": "blocked_unmapped_world_condition"
}
]
}

View file

@ -2,12 +2,12 @@
"format_version": 1,
"save_slice_id": "packed-event-world-parity-save-slice",
"source": {
"description": "Tracked save-slice document preserving the current whole-game descriptor and condition frontier.",
"description": "Tracked save-slice document preserving the remaining whole-game descriptor frontier.",
"original_save_filename": "captured-world-parity.gms",
"original_save_sha256": "world-parity-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"keeps one unmapped world descriptor and one unmapped world condition explicit",
"keeps the still-unmapped world descriptor family explicit after the first real whole-game condition batch moved to checked-in metadata",
"whole-game world-flag descriptor identity is checked in, but keyed runtime mapping remains parity-only"
]
},
@ -31,10 +31,10 @@
"close_tag_offset": 33024,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 52,
"live_record_count": 2,
"live_entry_ids": [49, 52],
"decoded_record_count": 2,
"live_id_bound": 49,
"live_record_count": 1,
"live_entry_ids": [49],
"decoded_record_count": 1,
"imported_runtime_record_count": 0,
"records": [
{
@ -94,56 +94,6 @@
"notes": [
"world-side descriptor remains parity-only"
]
},
{
"record_index": 1,
"live_entry_id": 52,
"payload_offset": 32464,
"payload_len": 120,
"decode_status": "parity_only",
"payload_family": "real_packed_v1",
"trigger_kind": 7,
"one_shot": false,
"compact_control": {
"mode_byte_0x7ef": 7,
"primary_selector_0x7f0": 0,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 0,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [0, 0, 0, 0],
"grouped_scope_checkboxes_0x7ff": [0, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 1,
"standalone_condition_rows": [
{
"row_index": 0,
"raw_condition_id": 3904,
"subtype": 0,
"flag_bytes": [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"candidate_name": null,
"comparator": "ge",
"metric": "Special Condition: Disable Stock Buying and Selling",
"semantic_family": "world_state_threshold",
"semantic_preview": "Test Disable Stock Buying and Selling >= 1",
"requires_candidate_name_binding": false,
"notes": [
"recovered world-side ordinary condition family without a checked-in executable mapping yet"
]
}
],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [0, 0, 0, 0],
"grouped_effect_rows": [],
"decoded_conditions": [],
"decoded_actions": [],
"executable_import_ready": false,
"notes": [
"world-side ordinary condition remains parity-only"
]
}
]
},