ReadonlycellsLayer id → [row][col] → criteria for that cell, or null.
ReadonlypointsLayer id → per-data-index criteria, for point clouds only.
ReadonlyworksheetsLayer id → the name of the worksheet that layer was built from.
A worksheet that yields no layer contributes no subplot, so a layer id is the index among the survivors and does not line up with the caller's own worksheet list. The binder needs the correspondence to route a selection to the right worksheet, and only the extractor knows which snapshots survived.
Everything the runtime needs to turn a MAIDR navigation position back into a Tableau mark selection.
Positions are addressed exactly as MAIDR addresses them, so a lookup is an index rather than a search:
[0][col];SegmentedTraceappends a synthetic "Total" row of its own, and that row deliberately has no entry here: a total is not a mark; the lookup misses and the runtime clears the selection instead;Heatmap's own constructor, which flipsyandpointsso row 0 is the bottom of the drawn grid;pointIndicesrather than by row/column, so it lives in SelectionIndex.points instead.A
nullentry means the position is not addressable — a rectangularized filler cell that no mark was ever drawn for, or a row whose dimension value is missing. The runtime clears the selection for those rather than selecting something adjacent.