Cached Tile
data class CachedTile(val bytes: ByteArray, val tileScale: Float, val tileOffset: Float, val cachedAt: Long? = null, val etag: String? = null, val lastModified: String? = null)
One stored tile pulled out of an ElevationStoreBackend: the encoded blob plus the per-tile (scale, offset) the codec needs to decode it. cachedAt is the epoch-millis the tile was written (for stale-while-revalidate); null when the backend doesn't track it. etag / lastModified are the stored HTTP validators for a conditional refresh.