HexView is organized as a small set of layers.
ILineReaderMemoryMappedLineReaderByteOverlayLineReaderByteOverlayEditJournalSelectionServiceNavigationServiceHexFormatterHexViewControlSingleView and DiffViewThe normal read path is:
file -> MemoryMappedLineReader -> ByteOverlay -> ByteOverlayLineReader -> HexViewControl
The edit path is:
keyboard/paste/search-replace -> ByteWriteAction or services -> ByteOverlay -> render refresh
DifferencesProvider to supply changed offsetsAnnotations plus HexAnnotationStorage to draw, navigate, and persist labeled ranges