int sourceAt(int index) { if (sourceIndices.isEmpty) return 0; final int safe = index < 0 ? 0 : (index >= sourceIndices.length ? sourceIndices.length - 1 : index); return sourceIndices[safe]; }