DataFlowSegment
data class DataFlowSegment(val id: String, val instructionIds: List<String>, val factIds: List<String> = emptyList(), val mergedSegmentIds: List<String> = emptyList(), val sourceBoundaryInstructionIds: List<String> = emptyList())
Segment ids are globally unique across all sinks (one counter on the analyzer side). instructionIds references ControlFlowGraph.nodes.id — segments are normalized over the ICFG, not denormalized with full instruction data.