DownloadProgress
data class DownloadProgress(val receivedBytes: Long, val totalBytes: Long, val bytesPerSec: Long, val etaMs: Long)
Live progress of a model download. receivedBytes/totalBytes drive a progress bar; bytesPerSec and etaMs drive a "12 MB/s · 2 min left" label. totalBytes and etaMs are -1 when unknown (server sent no Content-Length).