Resolved typography for a single ChartElement::Text literal. All fields
are already prepared as Option<String> — plug them directly into the
Text enum variant.
Legacy font-weight for all chrome text. None because no current
emission site sets font-weight at all — the attribute is absent from
every pre-Phase-4 baseline SVG.
Legacy hardcoded font-size string for legend labels. Note this differs
from LEGACY_LABEL_FONT_SIZE — the legend has historically used a
slightly smaller size (11px) while all other chrome uses 12px.
Emit a halo element to render BEFORE a dot marker, or None when
theme.dot_halo_color is None. Uses theme.dot_halo_width as the
stroke width. The halo radius always matches the dot’s own radius so the
ring hugs the dot — bubble charts pass the per-point radius here, not a
static theme default.