///|
fn main raise {
  let permit = @moonpermit.compile_plan("example-docs", [
    @moonpermit.effect_request(
      @moonpermit.FileRead(@moonpermit.path_tree("docs")),
      @moonpermit.budget(max_calls=1),
    ),
  ])
  let runtime = @moonpermit.runtime(permit)
  let allowed = runtime.check(
    "example-1",
    @moonpermit.FileRead(@moonpermit.path_exact("docs/guide.md")),
    1L,
  )
  let exhausted = runtime.check(
    "example-2",
    @moonpermit.FileRead(@moonpermit.path_exact("docs/other.md")),
    2L,
  )
  let audit = @moonpermit.audit_receipts(permit, runtime.receipts())
  println(
    "allowed=" +
    allowed.allowed().to_string() +
    " exhausted=" +
    (!exhausted.allowed()).to_string() +
    " audit=" +
    audit.passed().to_string(),
  )
}