///|
fn main {
  let source = @moonkeyguard.clean_demo_source()
  let (parsed, analysis) = @moonkeyguard.audit(source, name="basic-example")
  println("MoonKeyguard basic example")
  println("parser_ok=" + parsed.ok.to_string())
  println(@moonkeyguard.analysis_to_text(analysis))
  let graph = @moonkeyguard.build_conflict_graph(parsed.keymap, analysis)
  println(@moonkeyguard.conflict_graph_to_markdown(graph))
  let trace = @moonkeyguard.replay(
    parsed.keymap,
    ["Ctrl+S", "Ctrl+Z"],
    context="editor",
  )
  println(@moonkeyguard.dispatch_trace_to_markdown(trace))
  let reachability = @moonkeyguard.reachability_matrix(
    parsed.keymap,
    contexts=["global", "editor", "terminal"],
    platforms=["all", "mac"],
  )
  println(@moonkeyguard.reachability_to_markdown(reachability))
  let gate = @moonkeyguard.release_gate(
    "basic-example",
    "0.3.1",
    @moonkeyguard.release_input(parsed.keymap),
  )
  println(@moonkeyguard.release_gate_to_markdown(gate))
}