That's a lot to unpack!
Thanks!
Meh...
I never "fed" the "online monsters", but I played with offline models with... hmm... mixed results (yes, tiny models compared to what is available in the interwebs). Still, after chewing the SCOM, replying that the SSMEs have 3.3Mlbf of thrust doesn't get my confidence up.

Plus, it would be hopeless with a 1980s doc, which such poor scanning that no OCR can make it readable. I think another issue is diagrams and schematics... how well will it chew those?
I'm sure it is good enough to help in (very) limited tasks (math, physics, structure/organization), but I don't think it will produce a complete subsystem easily, with the required detail of commands and sensors, etc.
Still...
..., I wouldn't mind taking a look at the ASAs, ATVCs, (hyd actuators too?), as those are not yet being commanded via the FC busses, but "directly" from the software, so I consider those candidates for improvement in the short term.
Failures would be nice to have, but: a) needs to be thought thru, and, b) needs "good enough" subsystems in order for something to fail properly.
Aborts I want to leave for v3.0, because the stack will need to be attached differently, and I'd also like to get a better countdown, etc.
As for the dumps, I fully expect they will be possible in v2.0, both ascent OMS dumps as well as RCS dumps prior to entry. The DPS branch is currently the main focus, which started as a need for "a bit better" displays for the OMS/RCS work, and then became a monster.
Dirty word!

Like I said above, I wouldn't mind taking a look, so a fork would work.
here you go:
Space Shuttle Vessel. Contribute to maximqaxd/SSV development by creating an account on GitHub.
github.com
The irony that i named the branch because first I attempted to separete model to 5 GPCs, you will see by commit history

Commits are pretty messy, because coauthored by AI, and i actually needed to create a new branch for every new subsystem i was working on, but i didn't expected a good results in short-time term, you can see by commit history that TAL was done in one day, and it is really flyable from ABORT pb to the ground.
Summary from Opus, what's been done to FCS->MDM->FC wiring:
Here's the full FCS↔MDM↔FC-bus wiring in SSV, verified against the code.
## FC bus strings (4)
Each string = one
FF (Flight-critical Forward) + one
FA (Flight-critical Aft) MDM, commanded by its GPC:
| String | FF (addr) | FA (addr) | Commander |
|--------|-----------|-----------|-----------|
| 1 | FF1 (25) | FA1 (19) | GPC 1 |
| 2 | FF2 (26) | FA2 (20) | GPC 2 |
| 3 | FF3 (27) | FA3 (21) | GPC 3 |
| 4 | FF4 (28) | FA4 (22) | GPC 4 |
FCS
effector commands/feedback go through the
FA MDMs; FCS
sensors (RGA rates, accelerometers, ADTA) come in through the
FF MDMs. Each RS GPC commands only its own string's FA MDM (RSM
fcStringMask); the 4 redundant commands OR at the hardware — so
GPC1→FA1→ASA channel 1, GPC2→FA2→ch 2, … (matches the MDM Equipment-Lost chart, FA*n*→FCS CH
n).
## Aerosurface command (GPC → FA MDM AOD → ASA → actuator)
1.
Aero_Act_SOP computes each surface command, encodes deg→volts (
AOD_KV: elevon/rudder 0.1 V/deg, speedbrake 0.05) into COMPOOL
SCP_FAn_IOM4_CHm_DATA — one channel per surface, per string.
2.
SimpleFCOS_IO_GNC::output() sends them to each string's FA MDM
IOM4 (AOD), CH0–5, gated by
CommandsString.
3.
SimpleMDM_FAn drives
dopIOM4_HI[0..5] → bundle
AEROSURFACE_FAn (CH0=LOB, LIB, RIB, ROB elevons, CH4=rudder, CH5=speedbrake).
4.
AeroSurfaces reads
dipCh[surf][string] from the four
AEROSURFACE_FA1..4 bundles, decodes volts→deg = each
ASA channel command, and
force-sums the 4 channels at the ram. (Body flap is still the legacy single-channel path.)
## Aerosurface feedback (RVDT → FA MDM AIS → GPC)
AeroSurfaces drives
dopFB[surf] →
AEROSURFACE_FB (ram-position RVDT) → each
SimpleMDM_FAn reads it via
IOM6 (AIS) CH0–5 →
SCP_FAn_IOM6_CHm_DATA →
SimpleFCOS_IO_GNC::input() → the
PFB SOPs (Elevon/Rudder/Speedbrake) do a 4-channel
mid-value-select RM → selected position.
## SSME / SRB TVC (ATVC)
MPS_ATVC_CMD_SOP /
SRB_ATVC_CMD_SOP encode gimbal commands into FA
IOM4 AOD —
SSME CH9–14, SRB CH15–18 →
SimpleMDM_FAn → bundle
ATVC_FAn →
gnc::ATVC decodes +
force-sums the 4 strings → drives the SSME/SRB hydraulic actuators (
MPS_TVC::UpdateActuator).
## OMS TVC
OMS_TVC_Command_SOP → FA
IOM4 CH7/8 (L/R pitch/yaw) →
OMS_TVC; feedback via FA
IOM14 (AIS) CH14/15.
## Failure propagation
- FA MDM power —
MDM_Power bundle (FA1–4 = ch 4–7) → AeroSurfaces drops an unpowered string's ASA channel from the force-sum (single-MDM loss tolerated; surface held by remaining strings).
- Commfault —
SCP_COMMFAULT_WORD_1 bits 12–15 = FA1–4 (0–3 = FF1–4) gate each MDM's I/O and trip the FCS-channel down-arrows / annunciation.
So end to end:
GPC (Aero_Act/ATVC SOP) → COMPOOL FAn_IOM4 → FCOS per-string send → FA*n* MDM AOD → AEROSURFACE_FAn/ATVC_FAn bundle → ASA/ATVC channel → 4-channel force-sum → actuator, with RVDT feedback returning through FA*n* IOM6 AIS to the PFB-SOP MVS. The FF MDMs feed the sensor side of the loop.