///|
/// File fixture or caller-selected path is assembled through the public API.
async fn main {
  let args = @env.args()
  let mut path = "fixtures/earthquakes-2024-01-01.csv"
  for i in 0..= args.length() {
        fail("--input requires a file path")
      }
      path = args[i + 1]
    }
  }
  let data = @fs.read_file(path).binary()
  let object = @ledger.ObjectSpec::new(
    path,
    data.length().to_int64(),
    "\"fixture-v1\"",
    @ledger.digest(data),
  )
  let session = @ledger.Session::new(object, chunk_size=4096)
  let leases = []
  while session.reserve_missing() is Some(lease) {
    leases.push(lease)
  }
  let storage = FixedArray::make(data.length(), b'\x00')
  for i in 0.. {
    Bytes::from_array(storage[range.start.to_int():range.end.to_int()])
  })
  println(
    "verified \{restored.confirmed_bytes()} bytes; invalidated \{invalidated} block; sha256=\{object.sha256}",
  )
}