applyRowReorderWithinBlock
fun <T> MutableList<T>.applyRowReorderWithinBlock(move: RowWithinBlockMove, keyOf: (T) -> Any, blockOf: (T) -> Any?)
Lifts a RowWithinBlockMove to the SOURCE list: relocates the single moved row among its block-mates, using RowWithinBlockMove.afterKey as the primary anchor and beforeKey as the fallback. Block members hidden by the current filter keep their relative order; the moved row lands immediately adjacent to the resolved visible anchor. The list is left untouched when the moved row is gone, its block id no longer matches, or neither anchor resolves.