sync
suspend fun sync(snapshot: SyncSnapshot, onProgress: (done: Int, total: Int) -> Unit = { _, _ -> }): SyncOutcome(source)
Runs on the caller's dispatcher. Never throws for cloud failures; they come back as SyncOutcome.Failed. Concurrent calls are serialised: a second caller waits for the first run. A WriteHold set while a run is in progress stops it before its next put or delete.