{ "_comment": "Figure + face bounding boxes per unique story beat, in panel-image coords (1024x1536, the portrait monarch-keeper set). Keyed by section NAME (preview-score.mjs looks up FORMS by SECTIONS[i].name; names repeat across the C/D/E/F passes, so ONE entry per unique name covers every pass). Single figure (the keeper) per beat -> one box under `jeffrey`. `face` drives BOTH the in/out face zoom AND the warm sun-rim halo (drawTransmittedBacklight/drawLeadedContrast key off the FACE box, not the figure box); `figure` only feeds zoomTargetBox as a fallback. RE-MEASURED 2026-06-24 against the real generated masters (out/_fluttabap360-beat-.png) over a 128px grid -- the previous boxes were all pinned to the UPPER-LEFT (sky) region, which is why the backlight/halo read as stuck in the top-left corner. The keeper is center / center-right in every beat except intro (where he is small + far at lower-right near the horizon). Coords are [x, y, w, h] from the top-left of the 1024x1536 panel.", "imgW": 1024, "imgH": 1536, "sections": { "intro": { "jeffrey": { "figure": [745, 688, 105, 240], "face": [762, 690, 52, 58] } }, "butterfly": { "jeffrey": { "figure": [320, 150, 360, 700], "face": [410, 150, 110, 120] } }, "palofmine": { "jeffrey": { "figure": [340, 90, 360, 700], "face": [420, 110, 104, 116] } }, "mommywow": { "jeffrey": { "figure": [300, 90, 380, 700], "face": [430, 110, 100, 118] } }, "slinky": { "jeffrey": { "figure": [300, 120, 380, 700], "face": [432, 148, 100, 116] } }, "fly": { "jeffrey": { "figure": [320, 150, 360, 640], "face": [400, 150, 110, 116] } }, "ride": { "jeffrey": { "figure": [300, 150, 400, 660], "face": [432, 168, 100, 118] } }, "cave": { "jeffrey": { "figure": [300, 110, 340, 720], "face": [428, 118, 100, 116] } }, "progression":{ "jeffrey": { "figure": [280, 120, 380, 700], "face": [408, 158, 104, 116] } }, "land": { "jeffrey": { "figure": [300, 130, 380, 700], "face": [430, 150, 102, 118] } }, "button": { "jeffrey": { "figure": [240, 100, 360, 700], "face": [340, 120, 100, 116] } } } }