sots-re/findings/objects
alex 48fcc3ff3a lane G: wire-schema channel — layouts.json -> generated stream schema for sots-engine
objects/layouts.json is a memory-layout projection: build() sorts fields by
off_abs (89 of 386 classes have offset order != write order) and merges
duplicate offsets into alt_tags, which is exactly the JewelsOfTheCrown
double-tag trap. Both losses are the substance of the on-disk format.

tools/streams.py is a second projection of the same recovery that keeps the
program order Lab.layout() already computes and the repeated tags, and drops
every memory fact — no off, size, sizeof, gaps or strides. The engine must read
and write the format, not inherit the original's ABI.

tools/gen_stream_schema.py emits sots-engine's include/generated/sots_stream_schema.h
under the same discipline as gen_addresses.py: generated, provenance header,
never hand-edited.

386 classes, 2042 wire items.
2026-09-08 06:29:30 -04:00
..
.keep.md scaffold RE campaign: board, backlog, findings template, verify tree 2026-09-07 14:40:44 -04:00
00-inventory.md map: RTTI class inventory (1924 types, engine=Mars); reseed board with real targets 2026-09-07 14:48:43 -04:00
classes-game.txt map: RTTI class inventory (1924 types, engine=Mars); reseed board with real targets 2026-09-07 14:48:43 -04:00
classes-mars.txt map: RTTI class inventory (1924 types, engine=Mars); reseed board with real targets 2026-09-07 14:48:43 -04:00
ghidra-recon.md recon: RTTI hierarchy + vftables, affinity pin has no topology branch, save-struct reference 2026-09-07 15:01:50 -04:00
rtti-raw.txt map: RTTI class inventory (1924 types, engine=Mars); reseed board with real targets 2026-09-07 14:48:43 -04:00
save-editor-structs.md events: recover the player event-posting API (lane E) 2026-09-08 02:47:11 -04:00
schema-gaps-resolved.md objects: save-schema gaps resolved from serializers; StrategyServer complete 2026-09-07 16:24:54 -04:00
serializable-types.txt map: RTTI class inventory (1924 types, engine=Mars); reseed board with real targets 2026-09-07 14:48:43 -04:00
serializer-struct-recovery.md lane D: automated struct recovery from the IStreamable serializers 2026-09-08 05:51:37 -04:00
struct-recovery.md lane S: std::string is 0x1c binary-wide; ObservedTech element fully mapped 2026-09-08 05:09:33 -04:00
wire-schema-channel.md lane G: wire-schema channel — layouts.json -> generated stream schema for sots-engine 2026-09-08 06:29:30 -04:00