clusters property
Where the changes are, as rects, largest first.
Never a tangle: boxes that overlap are folded into their union so none draws over another, and when there are more than readableRegions of them, changes near each other are grouped until there are few enough to read. So a font change over a paragraph is the paragraph, not a box per word.
Implementation
final List<DiffRect> clusters;