Execute real packed event world and train descriptors

This commit is contained in:
Jan Petykiewicz 2026-04-15 20:20:25 -07:00
commit e481274243
31 changed files with 3287 additions and 206 deletions

View file

@ -0,0 +1,32 @@
{
"format_version": 1,
"fixture_id": "packed-event-confiscate-all-false-save-slice-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture keeping the unsupported FALSE Confiscate All variant explicit."
},
"state_save_slice_path": "packed-event-confiscate-all-false-save-slice.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"packed_event_collection_present": true,
"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_confiscation_variant_count": 1
},
"expected_state_fragment": {
"packed_event_collection": {
"records": [
{
"import_outcome": "blocked_confiscation_variant"
}
]
}
}
}

View file

@ -0,0 +1,101 @@
{
"format_version": 1,
"save_slice_id": "packed-event-confiscate-all-false-save-slice",
"source": {
"description": "Tracked save-slice document with an unsupported FALSE Confiscate All row.",
"original_save_filename": "captured-confiscate-all-false.gms",
"original_save_sha256": "confiscate-all-false-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"keeps the unsupported descriptor 9 variant explicit"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 20,
"live_record_count": 1,
"live_entry_ids": [20],
"decoded_record_count": 1,
"imported_runtime_record_count": 0,
"records": [
{
"record_index": 0,
"live_entry_id": 20,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [1, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 9,
"descriptor_label": "Confiscate All",
"target_mask_bits": 1,
"parameter_family": "company_confiscation_variant",
"opcode": 1,
"raw_scalar_value": 0,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Confiscate All to FALSE",
"locomotive_name": null,
"notes": []
}
],
"decoded_conditions": [],
"decoded_actions": [],
"executable_import_ready": false,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"unsupported real confiscate-all FALSE variant sample"
]
}
}

View file

@ -0,0 +1,81 @@
{
"format_version": 1,
"fixture_id": "packed-event-confiscate-all-overlay-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture proving descriptor 9 Confiscate All imports and executes through the ordinary runtime path."
},
"state_import_path": "packed-event-confiscate-all-overlay.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"calendar_projection_source": "base-snapshot-preserved",
"calendar_projection_is_placeholder": false,
"company_count": 2,
"active_company_count": 1,
"train_count": 3,
"active_train_count": 1,
"retired_train_count": 2,
"packed_event_collection_present": true,
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 1,
"event_runtime_record_count": 1,
"total_event_record_service_count": 1,
"total_trigger_dispatch_count": 1,
"total_company_cash": 90
},
"expected_state_fragment": {
"selected_company_id": null,
"companies": [
{
"company_id": 1,
"current_cash": 0,
"debt": 0,
"active": false
},
{
"company_id": 2,
"current_cash": 90,
"debt": 40,
"active": true
}
],
"trains": [
{
"train_id": 100,
"active": false,
"retired": true
},
{
"train_id": 101,
"active": false,
"retired": true
},
{
"train_id": 102,
"active": true,
"retired": false
}
],
"packed_event_collection": {
"records": [
{
"import_outcome": "imported",
"decoded_actions": [
{
"kind": "confiscate_company_assets",
"target": {
"kind": "selected_company"
}
}
]
}
]
}
}
}

View file

@ -0,0 +1,9 @@
{
"format_version": 1,
"import_id": "packed-event-confiscate-all-overlay",
"source": {
"description": "Overlay import combining world/train runtime context with the real Confiscate All descriptor sample."
},
"base_snapshot_path": "packed-event-world-train-overlay-base-snapshot.json",
"save_slice_path": "packed-event-confiscate-all-save-slice.json"
}

View file

@ -0,0 +1,108 @@
{
"format_version": 1,
"save_slice_id": "packed-event-confiscate-all-save-slice",
"source": {
"description": "Tracked save-slice document with a real Confiscate All row.",
"original_save_filename": "captured-confiscate-all.gms",
"original_save_sha256": "confiscate-all-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves descriptor 9 import into company liquidation plus owned-train retirement"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 19,
"live_record_count": 1,
"live_entry_ids": [19],
"decoded_record_count": 1,
"imported_runtime_record_count": 1,
"records": [
{
"record_index": 0,
"live_entry_id": 19,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [1, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 9,
"descriptor_label": "Confiscate All",
"target_mask_bits": 1,
"parameter_family": "company_confiscation_variant",
"opcode": 1,
"raw_scalar_value": 1,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Confiscate All to TRUE",
"locomotive_name": null,
"notes": []
}
],
"decoded_conditions": [],
"decoded_actions": [
{
"kind": "confiscate_company_assets",
"target": {
"kind": "selected_company"
}
}
],
"executable_import_ready": true,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"real confiscate-all descriptor sample"
]
}
}

View file

@ -0,0 +1,48 @@
{
"format_version": 1,
"fixture_id": "packed-event-economic-status-overlay-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture proving descriptor 8 Economic Status imports and executes through the ordinary runtime path."
},
"state_import_path": "packed-event-economic-status-overlay.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"calendar_projection_source": "base-snapshot-preserved",
"calendar_projection_is_placeholder": false,
"company_count": 2,
"train_count": 3,
"territory_count": 2,
"world_restore_economic_status_code": 2,
"packed_event_collection_present": true,
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 1,
"event_runtime_record_count": 1,
"total_event_record_service_count": 1,
"total_trigger_dispatch_count": 1
},
"expected_state_fragment": {
"world_restore": {
"economic_status_code": 2
},
"packed_event_collection": {
"records": [
{
"import_outcome": "imported",
"decoded_actions": [
{
"kind": "set_economic_status_code",
"value": 2
}
]
}
]
}
}
}

View file

@ -0,0 +1,9 @@
{
"format_version": 1,
"import_id": "packed-event-economic-status-overlay",
"source": {
"description": "Overlay import combining world/train runtime context with the real Economic Status descriptor sample."
},
"base_snapshot_path": "packed-event-world-train-overlay-base-snapshot.json",
"save_slice_path": "packed-event-economic-status-save-slice.json"
}

View file

@ -0,0 +1,106 @@
{
"format_version": 1,
"save_slice_id": "packed-event-economic-status-save-slice",
"source": {
"description": "Tracked save-slice document with a real Economic Status row.",
"original_save_filename": "captured-economic-status.gms",
"original_save_sha256": "economic-status-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves descriptor 8 import into the opaque economic-status runtime lane"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 18,
"live_record_count": 1,
"live_entry_ids": [18],
"decoded_record_count": 1,
"imported_runtime_record_count": 1,
"records": [
{
"record_index": 0,
"live_entry_id": 18,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [1, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 8,
"descriptor_label": "Economic Status",
"target_mask_bits": 8,
"parameter_family": "whole_game_state_enum",
"opcode": 3,
"raw_scalar_value": 2,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "scalar_assignment",
"semantic_family": "scalar_assignment",
"semantic_preview": "Set Economic Status to 2",
"locomotive_name": null,
"notes": []
}
],
"decoded_conditions": [],
"decoded_actions": [
{
"kind": "set_economic_status_code",
"value": 2
}
],
"executable_import_ready": true,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"real economic status descriptor sample"
]
}
}

View file

@ -21,7 +21,7 @@
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 0,
"packed_event_blocked_unmapped_real_descriptor_count": 1,
"packed_event_blocked_confiscation_variant_count": 1,
"event_runtime_record_count": 0,
"total_event_record_service_count": 0,
"total_trigger_dispatch_count": 1
@ -45,7 +45,7 @@
"packed_event_collection": {
"records": [
{
"import_outcome": "blocked_unmapped_real_descriptor"
"import_outcome": "blocked_confiscation_variant"
}
]
},

View file

@ -86,21 +86,21 @@
{
"group_index": 1,
"row_index": 0,
"descriptor_id": 8,
"descriptor_label": "Economic Status",
"target_mask_bits": 8,
"parameter_family": "whole_game_state_enum",
"opcode": 3,
"raw_scalar_value": 2,
"descriptor_id": 9,
"descriptor_label": "Confiscate All",
"target_mask_bits": 1,
"parameter_family": "company_confiscation_variant",
"opcode": 1,
"raw_scalar_value": 0,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "scalar_assignment",
"semantic_family": "scalar_assignment",
"semantic_preview": "Set Economic Status to 2",
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Confiscate All to FALSE",
"locomotive_name": null,
"notes": []
}

View file

@ -0,0 +1,64 @@
{
"format_version": 1,
"fixture_id": "packed-event-retire-train-company-overlay-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture proving descriptor 15 Retire Train executes against company scope."
},
"state_import_path": "packed-event-retire-train-company-overlay.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"calendar_projection_source": "base-snapshot-preserved",
"calendar_projection_is_placeholder": false,
"company_count": 2,
"train_count": 3,
"active_train_count": 1,
"retired_train_count": 2,
"packed_event_collection_present": true,
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 1,
"event_runtime_record_count": 1,
"total_event_record_service_count": 1,
"total_trigger_dispatch_count": 1
},
"expected_state_fragment": {
"trains": [
{
"train_id": 100,
"active": false,
"retired": true
},
{
"train_id": 101,
"active": false,
"retired": true
},
{
"train_id": 102,
"active": true,
"retired": false
}
],
"packed_event_collection": {
"records": [
{
"import_outcome": "imported",
"decoded_actions": [
{
"kind": "retire_trains",
"company_target": {
"kind": "selected_company"
}
}
]
}
]
}
}
}

View file

@ -0,0 +1,9 @@
{
"format_version": 1,
"import_id": "packed-event-retire-train-company-overlay",
"source": {
"description": "Overlay import combining world/train runtime context with the company-scoped Retire Train descriptor sample."
},
"base_snapshot_path": "packed-event-world-train-overlay-base-snapshot.json",
"save_slice_path": "packed-event-retire-train-company-save-slice.json"
}

View file

@ -0,0 +1,108 @@
{
"format_version": 1,
"save_slice_id": "packed-event-retire-train-company-save-slice",
"source": {
"description": "Tracked save-slice document with a real company-scoped Retire Train row.",
"original_save_filename": "captured-retire-train-company.gms",
"original_save_sha256": "retire-train-company-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves descriptor 15 import through company scope"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 21,
"live_record_count": 1,
"live_entry_ids": [21],
"decoded_record_count": 1,
"imported_runtime_record_count": 1,
"records": [
{
"record_index": 0,
"live_entry_id": 21,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [1, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 15,
"descriptor_label": "Retire Train",
"target_mask_bits": 13,
"parameter_family": "company_or_territory_asset_toggle",
"opcode": 1,
"raw_scalar_value": 1,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Retire Train to TRUE",
"locomotive_name": null,
"notes": []
}
],
"decoded_conditions": [],
"decoded_actions": [
{
"kind": "retire_trains",
"company_target": {
"kind": "selected_company"
}
}
],
"executable_import_ready": true,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"real retire-train descriptor sample scoped by company"
]
}
}

View file

@ -0,0 +1,32 @@
{
"format_version": 1,
"fixture_id": "packed-event-retire-train-missing-scope-save-slice-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture keeping the missing-scope Retire Train variant explicit."
},
"state_save_slice_path": "packed-event-retire-train-missing-scope-save-slice.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"packed_event_collection_present": true,
"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_retire_train_scope_count": 1
},
"expected_state_fragment": {
"packed_event_collection": {
"records": [
{
"import_outcome": "blocked_retire_train_scope"
}
]
}
}
}

View file

@ -0,0 +1,103 @@
{
"format_version": 1,
"save_slice_id": "packed-event-retire-train-missing-scope-save-slice",
"source": {
"description": "Tracked save-slice document with a Retire Train row missing both company and territory scope.",
"original_save_filename": "captured-retire-train-missing-scope.gms",
"original_save_sha256": "retire-train-missing-scope-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"keeps the missing-scope descriptor 15 variant explicit"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 23,
"live_record_count": 1,
"live_entry_ids": [23],
"decoded_record_count": 1,
"imported_runtime_record_count": 0,
"records": [
{
"record_index": 0,
"live_entry_id": 23,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [8, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 15,
"descriptor_label": "Retire Train",
"target_mask_bits": 13,
"parameter_family": "company_or_territory_asset_toggle",
"opcode": 1,
"raw_scalar_value": 1,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Retire Train to TRUE",
"locomotive_name": "Mikado",
"notes": [
"retire train row is missing company and territory scope"
]
}
],
"decoded_conditions": [],
"decoded_actions": [],
"executable_import_ready": false,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"unsupported real retire-train missing-scope sample"
]
}
}

View file

@ -0,0 +1,66 @@
{
"format_version": 1,
"fixture_id": "packed-event-retire-train-territory-overlay-fixture",
"source": {
"kind": "captured-runtime",
"description": "Fixture proving descriptor 15 Retire Train executes against territory and locomotive filters."
},
"state_import_path": "packed-event-retire-train-territory-overlay.json",
"commands": [
{
"kind": "service_trigger_kind",
"trigger_kind": 7
}
],
"expected_summary": {
"calendar_projection_source": "base-snapshot-preserved",
"calendar_projection_is_placeholder": false,
"company_count": 2,
"train_count": 3,
"active_train_count": 1,
"retired_train_count": 2,
"packed_event_collection_present": true,
"packed_event_record_count": 1,
"packed_event_decoded_record_count": 1,
"packed_event_imported_runtime_record_count": 1,
"event_runtime_record_count": 1,
"total_event_record_service_count": 1,
"total_trigger_dispatch_count": 1
},
"expected_state_fragment": {
"trains": [
{
"train_id": 100,
"active": false,
"retired": true
},
{
"train_id": 101,
"active": true,
"retired": false
},
{
"train_id": 102,
"active": false,
"retired": true
}
],
"packed_event_collection": {
"records": [
{
"import_outcome": "imported",
"decoded_actions": [
{
"kind": "retire_trains",
"territory_target": {
"kind": "ids",
"ids": [7]
},
"locomotive_name": "Mikado"
}
]
}
]
}
}
}

View file

@ -0,0 +1,9 @@
{
"format_version": 1,
"import_id": "packed-event-retire-train-territory-overlay",
"source": {
"description": "Overlay import combining world/train runtime context with the territory-scoped Retire Train descriptor sample."
},
"base_snapshot_path": "packed-event-world-train-overlay-base-snapshot.json",
"save_slice_path": "packed-event-retire-train-territory-save-slice.json"
}

View file

@ -0,0 +1,112 @@
{
"format_version": 1,
"save_slice_id": "packed-event-retire-train-territory-save-slice",
"source": {
"description": "Tracked save-slice document with a real territory- and locomotive-scoped Retire Train row.",
"original_save_filename": "captured-retire-train-territory.gms",
"original_save_sha256": "retire-train-territory-sample-sha256",
"notes": [
"tracked as JSON save-slice document rather than raw .smp",
"proves descriptor 15 import through territory selector plus locomotive-name filtering"
]
},
"save_slice": {
"file_extension_hint": "gms",
"container_profile_family": "rt3-classic-save-container-v1",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"trailer_family": null,
"bridge_family": null,
"profile": null,
"candidate_availability_table": null,
"special_conditions_table": null,
"event_runtime_collection": {
"source_kind": "packed-event-runtime-collection",
"mechanism_family": "classic-save-rehydrate-v1",
"mechanism_confidence": "grounded",
"container_profile_family": "rt3-classic-save-container-v1",
"metadata_tag_offset": 28928,
"records_tag_offset": 29184,
"close_tag_offset": 29696,
"packed_state_version": 1001,
"packed_state_version_hex": "0x000003e9",
"live_id_bound": 22,
"live_record_count": 1,
"live_entry_ids": [22],
"decoded_record_count": 1,
"imported_runtime_record_count": 1,
"records": [
{
"record_index": 0,
"live_entry_id": 22,
"payload_offset": 29280,
"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": 99,
"grouped_mode_0x7f4": 2,
"one_shot_header_0x7f5": 0,
"modifier_flag_0x7f9": 1,
"modifier_flag_0x7fa": 0,
"grouped_target_scope_ordinals_0x7fb": [8, 1, 1, 1],
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
"summary_toggle_0x800": 1,
"grouped_territory_selectors_0x80f": [7, -1, -1, -1]
},
"text_bands": [],
"standalone_condition_row_count": 0,
"standalone_condition_rows": [],
"negative_sentinel_scope": null,
"grouped_effect_row_counts": [1, 0, 0, 0],
"grouped_effect_rows": [
{
"group_index": 0,
"row_index": 0,
"descriptor_id": 15,
"descriptor_label": "Retire Train",
"target_mask_bits": 13,
"parameter_family": "company_or_territory_asset_toggle",
"opcode": 1,
"raw_scalar_value": 1,
"value_byte_0x09": 0,
"value_dword_0x0d": 0,
"value_byte_0x11": 0,
"value_byte_0x12": 0,
"value_word_0x14": 0,
"value_word_0x16": 0,
"row_shape": "bool_toggle",
"semantic_family": "bool_toggle",
"semantic_preview": "Set Retire Train to TRUE",
"locomotive_name": "Mikado",
"notes": [
"grouped effect row carries locomotive-name side string"
]
}
],
"decoded_conditions": [],
"decoded_actions": [
{
"kind": "retire_trains",
"territory_target": {
"kind": "ids",
"ids": [7]
},
"locomotive_name": "Mikado"
}
],
"executable_import_ready": true,
"notes": [
"decoded from grounded real 0x4e9a row framing"
]
}
]
},
"notes": [
"real retire-train descriptor sample scoped by territory and locomotive name"
]
}
}

View file

@ -0,0 +1,81 @@
{
"format_version": 1,
"snapshot_id": "packed-event-world-train-overlay-base-snapshot",
"source": {
"description": "Base runtime snapshot supplying company, territory, and train context for real descriptor 8/9/15 overlays."
},
"state": {
"calendar": {
"year": 1845,
"month_slot": 2,
"phase_slot": 1,
"tick_slot": 3
},
"world_flags": {
"base.only": true
},
"metadata": {
"base.note": "world-and-train overlay context"
},
"companies": [
{
"company_id": 1,
"current_cash": 150,
"debt": 80,
"credit_rating_score": 650,
"prime_rate": 5,
"controller_kind": "human"
},
{
"company_id": 2,
"current_cash": 90,
"debt": 40,
"credit_rating_score": 480,
"prime_rate": 6,
"controller_kind": "ai"
}
],
"selected_company_id": 1,
"players": [],
"trains": [
{
"train_id": 100,
"owner_company_id": 1,
"territory_id": 7,
"locomotive_name": "Mikado"
},
{
"train_id": 101,
"owner_company_id": 1,
"territory_id": 8,
"locomotive_name": "Orca"
},
{
"train_id": 102,
"owner_company_id": 2,
"territory_id": 7,
"locomotive_name": "Mikado"
}
],
"territories": [
{
"territory_id": 7,
"name": "Appalachia"
},
{
"territory_id": 8,
"name": "Great Plains"
}
],
"company_territory_track_piece_counts": [],
"event_runtime_records": [],
"candidate_availability": {},
"special_conditions": {},
"service_state": {
"periodic_boundary_calls": 0,
"trigger_dispatch_counts": {},
"total_event_record_services": 0,
"dirty_rerun_count": 0
}
}
}