label + value pairs as aligned rows — labels bold by default, both styles merged over
DEFAULT_TEXT_STYLE (3-layer merge, same color-bleed guard as TextBlock: a style that doesn't
set color must still fall back to black, not inherit whatever the previous block left).
Single-line by design: labels/values are drawn as-is without wrapping (see KeyValueNode JSDoc).
label + value pairs as aligned rows — labels bold by default, both styles merged over DEFAULT_TEXT_STYLE (3-layer merge, same color-bleed guard as TextBlock: a style that doesn't set
colormust still fall back to black, not inherit whatever the previous block left). Single-line by design: labels/values are drawn as-is without wrapping (see KeyValueNode JSDoc).