The snapshot a caching run publishes to its listeners on every progress tick.
Every field is required: a partial snapshot would force each consumer to invent its own
default for the missing ones, which is how two progress bars end up disagreeing. Sizes are
in bytes, speeds in bytes per second, eta and elapsedTime in milliseconds, and
percentage is already scaled to 0-100 — consumers display it, they do not recompute it.
The snapshot a caching run publishes to its listeners on every progress tick.
Every field is required: a partial snapshot would force each consumer to invent its own default for the missing ones, which is how two progress bars end up disagreeing. Sizes are in bytes, speeds in bytes per second,
etaandelapsedTimein milliseconds, andpercentageis already scaled to 0-100 — consumers display it, they do not recompute it.