///|
fn summary(sql : String, execution : @lens.Execution) -> Json {
  let report = @lens.review_sql(
    sql,
    execution~,
    max_lock_timeout_ms=100,
    initial_lock_timeout_ms=0,
  )
  let timeout = report.diagnostics
    .filter(d => ["ML201", "ML202", "ML205"].contains(d.code))
    .map(d => Json(d.code))
  {
    "report": report.to_json(),
    "conflict": report.diagnostics.any(d => d.code == "ML101"),
    "timeout_codes": Json(timeout),
  }
}

///|
fn main {
  let args = @env.args()[argument_prefix():].to_owned()
  let values = args.map(arg => @string.parse_int(arg) catch { _ => -1 })
  guard values is [seed, count, steps] &&
    seed >= 1 &&
    seed <= 2147483646 &&
    count >= 1 &&
    count <= 256 &&
    steps >= 0 &&
    steps <= 128 else {
    println(
      "usage: scenarios   ",
    )
    @sys.exit(2)
    return
  }
  let cases : Array[Json] = []
  for i in 0.. Int32 {
  2
}

///|
#cfg(target="wasm")
fn argument_prefix() -> Int32 {
  1
}

///|
#cfg(target="wasm-gc")
fn argument_prefix() -> Int32 {
  1
}

///|
#cfg(target="native")
fn argument_prefix() -> Int32 {
  1
}