///|
pub fn init_demo() -> Unit {
  let hsm : @hsm.HSM[Int, Int, Unit] = @hsm.HSM::new(0, ())
  hsm.add_state(1, parent=0)
  hsm.add_state(2, parent=1)
  hsm.add_transition(0, 1, 1)
  hsm.add_transition(1, 2, 2)
  println("[Game] Spawned boss at 100% health")
  ignore(hsm.send(1))
  println("[Game] Player attacking... boss health at 80%")
  ignore(hsm.send(2))
  println("[Game] Boss phase changed to Enraged")
  let diagram = @export.export_hsm_mermaid(hsm, fn(x : Int) { x.to_string() }, fn(
    y : Int,
  ) {
    y.to_string()
  })
  let _ = diagram.length()
}