MLB-specific peripherals not surfaced by the flat batter/pitcher
remap. Mirrors the NFL categories pattern — sport-specific extras
stay nested so the flat shape doesn't accumulate per-sport fields.
Batter rows populate singles / doubles / triples / runs (singles is
computed in the parser as H − 2B − 3B − HR; ESPN doesn't surface 1B
directly). Pitcher rows populate pitchesThrown (parsed from PC-ST's
LHS, e.g. "95-62" → "95"). Either side leaves the other's keys
undefined; the adapter's role discriminator is what gates which keys
are read.
Note on HBP: the PrizePicks Hitter FS formula references HBP, but
ESPN doesn't surface HBP at the per-game player level. The field is
intentionally absent from this shape — the formula reads
mlbExtras?.hbp, gets undefined, and returns null. PrizePicks Hitter
FS therefore stays gate-off-only until a feed onboards HBP. The
Underdog Fantasy Score formula (Total Bases) doesn't read HBP and
works once the gate flips.
MLB-specific peripherals not surfaced by the flat batter/pitcher remap. Mirrors the NFL
categoriespattern — sport-specific extras stay nested so the flat shape doesn't accumulate per-sport fields.Batter rows populate singles / doubles / triples / runs (singles is computed in the parser as H − 2B − 3B − HR; ESPN doesn't surface 1B directly). Pitcher rows populate pitchesThrown (parsed from PC-ST's LHS, e.g. "95-62" → "95"). Either side leaves the other's keys undefined; the adapter's role discriminator is what gates which keys are read.
Note on HBP: the PrizePicks Hitter FS formula references HBP, but ESPN doesn't surface HBP at the per-game player level. The field is intentionally absent from this shape — the formula reads mlbExtras?.hbp, gets undefined, and returns null. PrizePicks Hitter FS therefore stays gate-off-only until a feed onboards HBP. The Underdog Fantasy Score formula (Total Bases) doesn't read HBP and works once the gate flips.