RINGBRP.locationTables and RINGBRP.bodyArt lived inside ringbrp.mjs, which no tool
can import — it touches game, Hooks and foundry at load. So nothing outside Foundry
could ask how many hit locations a Cadence has, or what shape a Vesh is, which is
exactly what art generated from a statblock needs to know.
Moved byte for byte to anatomy.mjs and assigned back, the same move rules.mjs got
when the simulator needed the combat rules. One definition, two readers.
check-rules matched those tables with a regex against ringbrp.mjs and went blind the
moment they moved — it reported "could not read locationTables" and the species check
silently stopped running. It imports the value now. A guard that parses source text
breaks when the source is refactored; one that imports it cannot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>