Maps each data position "row,col" to its 1-based visual display index
(top-left = 1, reading order).
The data-array row index that corresponds to the visually top-left subplot.
Whether pressing the Up arrow should decrease the data row index.
This is true when data row 0 is already at the visual top (lower Y),
because MovableGrid maps UPWARD to row + 1 by default.
Total number of <g id="axes_*"> groups found in the SVG.
Used by Figure.highlight to decide whether to show subplot outlines.
Pre-resolved SVG axes elements keyed by "row,col".
Each subplot's axes <g> is looked up once and stored here so that
the Figure.highlight getter needs no runtime DOM access.
Pre-computed visual layout information for a multi-panel figure.
Because the ordering of subplots in the MAIDR JSON data array does not always match the visual (top-to-bottom, left-to-right) ordering in the SVG, we must inspect the DOM at initialization time to determine the true visual positions.
This data is computed once by resolveSubplotLayout (called from the Controller) and then passed into the Figure, keeping the Model layer free of direct DOM access.