Add parsers for RT3 language and engine type assets

This commit is contained in:
Jan Petykiewicz 2026-04-21 22:10:04 -07:00
commit 61472bf72d
17 changed files with 32835 additions and 9 deletions

View file

@ -31,6 +31,9 @@ Canonical derived outputs for the patch 1.06 executable.
- `event-effects-building-bindings.json`
- `economy-cargo-sources.json`
- `building-type-sources.json`
- `rt3-language-catalog.json`
- `engine-type-locomotive-display-census.json`
- `locomotive-catalog-tail-census.json`
- `candidate-table-header-clusters.json`
- `candidate-table-named-runs.json`
- `compact-event-dispatch-cluster-counts.json`

View file

@ -0,0 +1,589 @@
{
"format_version": 1,
"semantic_family": "engine-type-locomotive-display-census",
"source_root": "rt3_wineprefix/drive_c/rt3_105/Data/EngineTypes",
"car_header_layout": {
"content_name_offset": "0x48",
"format_version_dword_offset": "0x00",
"internal_stem_offset": "0x84",
"primary_display_name_offset": "0x0c",
"record_kind_dword_offset": "0x04"
},
"observed_locomotive_pair_count": 66,
"grounded_prefix_count": 61,
"grounded_prefix_match_count": 61,
"unmatched_display_family_count": 5,
"unmatched_display_families": [
{
"car_file": "242_A1_L.car",
"lco_file": "242_A1_L.lco",
"primary_display_name": "242 A1",
"content_name": "242_A1_L",
"internal_stem": "242_A1L"
},
{
"car_file": "Class_460.car",
"lco_file": "Class_460.lco",
"primary_display_name": "Class 460",
"content_name": "Class_460",
"internal_stem": "Class460L"
},
{
"car_file": "Class_A1L.car",
"lco_file": "Class_A1L.lco",
"primary_display_name": "Class A1",
"content_name": "Class_A1L",
"internal_stem": "ClassA1L"
},
{
"car_file": "Class_P8L.car",
"lco_file": "Class_P8L.lco",
"primary_display_name": "Class P8",
"content_name": "Class_P8L",
"internal_stem": "ClassP8L"
},
{
"car_file": "Class_QJL.car",
"lco_file": "Class_QJL.lco",
"primary_display_name": "Class QJ",
"content_name": "Class_QJL",
"internal_stem": "classqjl"
}
],
"entries": [
{
"car_file": "242_A1_L.car",
"lco_file": "242_A1_L.lco",
"primary_display_name": "242 A1",
"content_name": "242_A1_L",
"internal_stem": "242_A1L",
"matches_grounded_prefix_name": false
},
{
"car_file": "2D2L.car",
"lco_file": "2D2L.lco",
"primary_display_name": "2-D-2",
"content_name": "2D2L",
"internal_stem": "2D2L",
"matches_grounded_prefix_name": true
},
{
"car_file": "88L.car",
"lco_file": "88L.lco",
"primary_display_name": "E-88",
"content_name": "88L",
"internal_stem": "88L",
"matches_grounded_prefix_name": true
},
{
"car_file": "AMD103.car",
"lco_file": "AMD103.lco",
"primary_display_name": "USA 103",
"content_name": "AMD103",
"internal_stem": "AMD103L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Adler 2-2-2 Loco.car",
"lco_file": "Adler 2-2-2 Loco.lco",
"primary_display_name": "Adler 2-2-2",
"content_name": "Adler 2-2-2 Loco",
"internal_stem": "AdlerL",
"matches_grounded_prefix_name": true
},
{
"car_file": "American 4-4-0 Loco.car",
"lco_file": "American 4-4-0 Loco.lco",
"primary_display_name": "American 4-4-0",
"content_name": "American 4-4-0 Loco",
"internal_stem": "AMER440L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Atlantic Class 4-4-2 Loco.car",
"lco_file": "Atlantic Class 4-4-2 Loco.lco",
"primary_display_name": "Atlantic 4-4-2",
"content_name": "Atlantic Class 4-4-2 Loco",
"internal_stem": "AtlanticL",
"matches_grounded_prefix_name": true
},
{
"car_file": "BE 5-7.car",
"lco_file": "BE 5-7.lco",
"primary_display_name": "Be 5/7",
"content_name": "BE 5-7",
"internal_stem": "BE57L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Baldwin 060 Loco.car",
"lco_file": "Baldwin 060 Loco.lco",
"primary_display_name": "Baldwin 0-6-0",
"content_name": "Baldwin 060 Loco",
"internal_stem": "Baldwin060L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Beuth 222 Loco.car",
"lco_file": "Beuth 222 Loco.lco",
"primary_display_name": "Beuth 2-2-2",
"content_name": "Beuth 222 Loco",
"internal_stem": "beuth222l",
"matches_grounded_prefix_name": true
},
{
"car_file": "Big Boy.car",
"lco_file": "Big Boy.lco",
"primary_display_name": "Big Boy 4-8-8-4",
"content_name": "Big Boy",
"internal_stem": "BigBoyL",
"matches_grounded_prefix_name": true
},
{
"car_file": "C55 Deltic.car",
"lco_file": "C55 Deltic.lco",
"primary_display_name": "C55 Deltic",
"content_name": "C55 Deltic",
"internal_stem": "c55DelticL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Camelback Loco.car",
"lco_file": "Camelback Loco.lco",
"primary_display_name": "Camelback 0-6-0",
"content_name": "Camelback Loco",
"internal_stem": "CamelBackL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Challenger Loco.car",
"lco_file": "Challenger Loco.lco",
"primary_display_name": "Challenger 4-6-6-4",
"content_name": "Challenger Loco",
"internal_stem": "CHALLENGERL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class 01 Loco.car",
"lco_file": "Class 01 Loco.lco",
"primary_display_name": "Class 01 4-6-2",
"content_name": "Class 01 Loco",
"internal_stem": "Class01L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class 103.car",
"lco_file": "Class 103.lco",
"primary_display_name": "Class 103",
"content_name": "Class 103",
"internal_stem": "C103L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class 132 Loco.car",
"lco_file": "Class 132 Loco.lco",
"primary_display_name": "Class 132",
"content_name": "Class 132 Loco",
"internal_stem": "C132L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class 500 Loco.car",
"lco_file": "Class 500 Loco.lco",
"primary_display_name": "Class 500 4-6-0",
"content_name": "Class 500 Loco",
"internal_stem": "Class500L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class 9100.car",
"lco_file": "Class 9100.lco",
"primary_display_name": "Class 9100",
"content_name": "Class 9100",
"internal_stem": "Class9100L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class EF 66.car",
"lco_file": "Class EF 66.lco",
"primary_display_name": "Class EF 66",
"content_name": "Class EF 66",
"internal_stem": "EF66L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class6EL.car",
"lco_file": "Class6EL.lco",
"primary_display_name": "Class 6E",
"content_name": "Class6EL",
"internal_stem": "Class6EL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Class_460.car",
"lco_file": "Class_460.lco",
"primary_display_name": "Class 460",
"content_name": "Class_460",
"internal_stem": "Class460L",
"matches_grounded_prefix_name": false
},
{
"car_file": "Class_A1L.car",
"lco_file": "Class_A1L.lco",
"primary_display_name": "Class A1",
"content_name": "Class_A1L",
"internal_stem": "ClassA1L",
"matches_grounded_prefix_name": false
},
{
"car_file": "Class_P8L.car",
"lco_file": "Class_P8L.lco",
"primary_display_name": "Class P8",
"content_name": "Class_P8L",
"internal_stem": "ClassP8L",
"matches_grounded_prefix_name": false
},
{
"car_file": "Class_QJL.car",
"lco_file": "Class_QJL.lco",
"primary_display_name": "Class QJ",
"content_name": "Class_QJL",
"internal_stem": "classqjl",
"matches_grounded_prefix_name": false
},
{
"car_file": "Consolidation Loco.car",
"lco_file": "Consolidation Loco.lco",
"primary_display_name": "Consolidation 2-8-0",
"content_name": "Consolidation Loco",
"internal_stem": "CONSOLIDATIONL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Crampton 4-2-0 Locomotive.car",
"lco_file": "Crampton 4-2-0 Locomotive.lco",
"primary_display_name": "Crampton 4-2-0",
"content_name": "Crampton 4-2-0 Locomotive",
"internal_stem": "CramptonL",
"matches_grounded_prefix_name": true
},
{
"car_file": "DD080-X.car",
"lco_file": "DD080-X.lco",
"primary_display_name": "DD 080-X",
"content_name": "DD080-X",
"internal_stem": "FutureL",
"matches_grounded_prefix_name": true
},
{
"car_file": "DD40AXL.car",
"lco_file": "DD40AXL.lco",
"primary_display_name": "DD40AX",
"content_name": "DD40AXL",
"internal_stem": "DD40AXL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Duke Class 4-4-0 Loco.car",
"lco_file": "Duke Class 4-4-0 Loco.lco",
"primary_display_name": "Duke Class 4-4-0",
"content_name": "Duke Class 4-4-0 Loco",
"internal_stem": "DukeL",
"matches_grounded_prefix_name": true
},
{
"car_file": "E 18.car",
"lco_file": "E 18.lco",
"primary_display_name": "E18",
"content_name": "E 18",
"internal_stem": "E18L",
"matches_grounded_prefix_name": true
},
{
"car_file": "E 428L.car",
"lco_file": "E 428L.lco",
"primary_display_name": "E428",
"content_name": "E 428L",
"internal_stem": "E428L",
"matches_grounded_prefix_name": true
},
{
"car_file": "E412L.car",
"lco_file": "E412L.lco",
"primary_display_name": "Brenner E412",
"content_name": "E412L",
"internal_stem": "E412L",
"matches_grounded_prefix_name": true
},
{
"car_file": "E60CP.car",
"lco_file": "E60CP.lco",
"primary_display_name": "E60CP",
"content_name": "E60CP",
"internal_stem": "E60CPL",
"matches_grounded_prefix_name": true
},
{
"car_file": "EP2 Bipolar.car",
"lco_file": "EP2 Bipolar.lco",
"primary_display_name": "EP-2 Bipolar",
"content_name": "EP2 Bipolar",
"internal_stem": "EP2BipolarL",
"matches_grounded_prefix_name": true
},
{
"car_file": "ET-22.car",
"lco_file": "ET-22.lco",
"primary_display_name": "ET22",
"content_name": "ET-22",
"internal_stem": "ET22L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Eight Wheeler 4-4-0 Loco.car",
"lco_file": "Eight Wheeler 4-4-0 Loco.lco",
"primary_display_name": "Eight Wheeler 4-4-0",
"content_name": "Eight Wheeler 4-4-0 Loco",
"internal_stem": "No999L",
"matches_grounded_prefix_name": true
},
{
"car_file": "F3 Loco.car",
"lco_file": "F3 Loco.lco",
"primary_display_name": "F3",
"content_name": "F3 Loco",
"internal_stem": "F3L",
"matches_grounded_prefix_name": true
},
{
"car_file": "FP45L.car",
"lco_file": "FP45L.lco",
"primary_display_name": "FP45",
"content_name": "FP45L",
"internal_stem": "FP45L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Fairlie Loco.car",
"lco_file": "Fairlie Loco.lco",
"primary_display_name": "Fairlie 0-6-6-0",
"content_name": "Fairlie Loco",
"internal_stem": "FairlieL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Firefly Loco.car",
"lco_file": "Firefly Loco.lco",
"primary_display_name": "Firefly 2-2-2",
"content_name": "Firefly Loco",
"internal_stem": "FireflyL",
"matches_grounded_prefix_name": true
},
{
"car_file": "GG1.car",
"lco_file": "GG1.lco",
"primary_display_name": "GG1",
"content_name": "GG1",
"internal_stem": "GG1L",
"matches_grounded_prefix_name": true
},
{
"car_file": "GP35L.car",
"lco_file": "GP35L.lco",
"primary_display_name": "GP 35",
"content_name": "GP35L",
"internal_stem": "GP35l",
"matches_grounded_prefix_name": true
},
{
"car_file": "GP7.car",
"lco_file": "GP7.lco",
"primary_display_name": "GP7",
"content_name": "GP7",
"internal_stem": "GP7L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Ge 66 Crocodile.car",
"lco_file": "Ge 66 Crocodile.lco",
"primary_display_name": "Ge 6/6 Crocodile",
"content_name": "Ge 66 Crocodile",
"internal_stem": "Ge66CrocodileL",
"matches_grounded_prefix_name": true
},
{
"car_file": "H10 282.car",
"lco_file": "H10 282.lco",
"primary_display_name": "H10 2-8-2",
"content_name": "H10 282",
"internal_stem": "H10282L",
"matches_grounded_prefix_name": true
},
{
"car_file": "HST 125 Loco.car",
"lco_file": "HST 125 Loco.lco",
"primary_display_name": "HST 125",
"content_name": "HST 125 Loco",
"internal_stem": "HST125L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Kriegslok Loco.car",
"lco_file": "Kriegslok Loco.lco",
"primary_display_name": "Kriegslok 2-10-0",
"content_name": "Kriegslok Loco",
"internal_stem": "KriegslokL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Mallard Loco.car",
"lco_file": "Mallard Loco.lco",
"primary_display_name": "Mallard 4-6-2",
"content_name": "Mallard Loco",
"internal_stem": "MallardL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Norris Loco.car",
"lco_file": "Norris Loco.lco",
"primary_display_name": "Norris 4-2-0",
"content_name": "Norris Loco",
"internal_stem": "NorrisL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Northern 4-8-4 Loco.car",
"lco_file": "Northern 4-8-4 Loco.lco",
"primary_display_name": "Northern 4-8-4",
"content_name": "Northern 4-8-4 Loco",
"internal_stem": "Northern484l",
"matches_grounded_prefix_name": true
},
{
"car_file": "Orca NX462 Loco.car",
"lco_file": "Orca NX462 Loco.lco",
"primary_display_name": "Orca NX462",
"content_name": "Orca NX462 Loco",
"internal_stem": "WhaleL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Pacific 4-6-2 Loco.car",
"lco_file": "Pacific 4-6-2 Loco.lco",
"primary_display_name": "Pacific 4-6-2",
"content_name": "Pacific 4-6-2 Loco",
"internal_stem": "Penn462L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Planet Loco.car",
"lco_file": "Planet Loco.lco",
"primary_display_name": "Planet 2-2-0",
"content_name": "Planet Loco",
"internal_stem": "PlanetL",
"matches_grounded_prefix_name": true
},
{
"car_file": "RE66.car",
"lco_file": "RE66.lco",
"primary_display_name": "Re 6/6",
"content_name": "RE66",
"internal_stem": "RE66L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Red Devil 4-8-4 Loco.car",
"lco_file": "Red Devil 4-8-4 Loco.lco",
"primary_display_name": "Red Devil 4-8-4",
"content_name": "Red Devil 4-8-4 Loco",
"internal_stem": "ReddevilL",
"matches_grounded_prefix_name": true
},
{
"car_file": "S3 Loco.car",
"lco_file": "S3 Loco.lco",
"primary_display_name": "S3 4-4-0",
"content_name": "S3 Loco",
"internal_stem": "S3L",
"matches_grounded_prefix_name": true
},
{
"car_file": "SD90Mac Loco.car",
"lco_file": "SD90Mac Loco.lco",
"primary_display_name": "NA-90D",
"content_name": "SD90Mac Loco",
"internal_stem": "SD90MacL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Shay Loco.car",
"lco_file": "Shay Loco.lco",
"primary_display_name": "Shay (2-Truck)",
"content_name": "Shay Loco",
"internal_stem": "ShayL",
"matches_grounded_prefix_name": true
},
{
"car_file": "Shinkansen Series.car",
"lco_file": "Shinkansen Series.lco",
"primary_display_name": "Shinkansen Series 0",
"content_name": "Shinkansen Series",
"internal_stem": "ShinkansenSeries0L",
"matches_grounded_prefix_name": true
},
{
"car_file": "Stirling422 Loco.car",
"lco_file": "Stirling422 Loco.lco",
"primary_display_name": "Stirling 4-2-2",
"content_name": "Stirling422 Loco",
"internal_stem": "Stirling422L",
"matches_grounded_prefix_name": true
},
{
"car_file": "TransEuro.car",
"lco_file": "TransEuro.lco",
"primary_display_name": "Trans-Euro",
"content_name": "TransEuro",
"internal_stem": "TransEuroL",
"matches_grounded_prefix_name": true
},
{
"car_file": "U1L.car",
"lco_file": "U1L.lco",
"primary_display_name": "U1",
"content_name": "U1L",
"internal_stem": "u1l",
"matches_grounded_prefix_name": true
},
{
"car_file": "V200 Loco.car",
"lco_file": "V200 Loco.lco",
"primary_display_name": "V200",
"content_name": "V200 Loco",
"internal_stem": "V200L",
"matches_grounded_prefix_name": true
},
{
"car_file": "VL80T Loco.car",
"lco_file": "VL80T Loco.lco",
"primary_display_name": "VL80T",
"content_name": "VL80T Loco",
"internal_stem": "VL80TL",
"matches_grounded_prefix_name": true
},
{
"car_file": "ZephyrL.car",
"lco_file": "ZephyrL.lco",
"primary_display_name": "Zephyr",
"content_name": "ZephyrL",
"internal_stem": "zephyrl",
"matches_grounded_prefix_name": true
}
],
"notes": [
"Each row comes from one shipped .car/.lco locomotive engine-type pair under Data/EngineTypes.",
"The primary display string is parsed directly from the .car header at 0x0c rather than inferred from strings output.",
"The five unmatched display families are shipped named locomotive assets whose names do not appear in the current 61-name grounded descriptor prefix.",
"This export grounds the extra shipped locomotive-name cohort, but it does not by itself prove where those names land in the live ordinal catalog or descriptor bands."
]
}

File diff suppressed because it is too large Load diff