Verified that merge_glyphs_to_spans() correctly implements:
- 5-trigger break detector (font_name, font_size delta >0.5pt, rendering_mode, RGB-normalized color, is_word_boundary)
- Word boundary handling option (a): append space to previous span
- Confidence tracking: minimum of all glyphs, source from worst glyph
- Bbox union of member glyphs
All 54 span module tests pass. Acceptance criteria:
- "Hello World" → 2 spans "Hello " and "World" ✓
- Font name change triggers break ✓
- Font size 12pt vs 12.2pt → 1 span (delta < 0.5pt) ✓
- DeviceGray vs DeviceRGB normalized same color ✓
- Spot vs DeviceRGB different colors ✓
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>