entries_areContiguousAndAscending_acrossSeparateAppends
Mirrors the contiguity half of RaftEngine.checkedRestoredEntries (#1887): entries written contiguously must come back contiguous, in ascending index order, with no gap and no reordering — across however many RaftStorage.appendEntries calls produced them.
RaftLogMath resolves entryAt(i) positionally as log[i - snapshotIndex - 1], valid only while the restored list begins at snapshotIndex + 1 and steps by one. A gap or a swap silently returns the wrong entry for every lookup above it — wrong prevTerm, wrong conflict resolution, wrong applies, no error anywhere. The adapter shape that produces it is ordinary: a SELECT with no ORDER BY, or a hash-keyed store iterated in bucket order.