Player span

A player span (PlayerSpan(message_index, start, end, text, speaker=None, label=None)) records where one Player sits: the index of its message in the flattened snapshot and its character range in that message’s text. display_label is the partitioner’s label, else the text with a "<speaker>: " prefix. The Partition fills one span per player in PlayerSet.spans; absence policies replace exactly those ranges and keep the rest of the text, and the renderers read labels from them, so nothing re-tokenises.

Package: domain.