CARD T3  (written 2026-09-26 01:45:15 -0700, before the trace)  unit source/cutscene/cinematics fn _cinematic_render (park register-allocation)
Residual (J vs production): +0x45d..+0x468 J `shl eax,24; and ecx,0xffffff; or eax,ecx; push eax`,
ours `and ecx,0xffffff; shl eax,24; or ecx,eax; push ecx` for `((pixel32)shadow_alpha << 24) | (shadow_color & 0x00FFFFFF)`.
NEW evidence class since the park: the commutative-operand sort decode (fable5 commute-order, C2 0x1070d41d; key =
(hi<<16)|inner16; kind-13 subtree inner = sum of child keys << (i mod 8) + opcode - 0x248; kind 1/2 symbol inner =
fold(id)<<5; kind 5/6 memory = disp + opcode - 0x248 + base hash<<8; higher key = input 1 = the destination register).
The fifty-objects ledger's reopen criterion 1 asks exactly for this key on this OR.
Observation-only trace of PRODUCTION source; the OR is the encoder node at +0x466.
Predictions: (a) the OR passes the sort site; post-sort input 1 = the AND subtree (ours: `or ecx,eax`, ecx = masked
colour), i.e. key(AND) > key(SHL) in production; (b) both keys are kind-13 subtree sums whose 16-bit fold makes the
comparison depend on the symbol id of the alpha value (the PIN phi temp) and of `title` (the field base) - so a
different id in January (e.g. one more/less symbol first-referenced before these) can flip it; (c) lab10's MIN-count
threshold (0 -> SHL first, 1..3 -> AND first, >=4 -> SHL first) is a 16-bit fold effect of ids shifting.
