# tractor docs diagram: the hero supervision tree.
# A process tree of trio-task-trees; every arrow is
# a parent which *must wait* on its children.
vars: {
  d2-config: {
    sketch: true
    theme-id: 1
    pad: 16
    layout-engine: elk
  }
}
direction: down
root: "root actor" {
  main: "main()"
  an: "ActorNursery"
  main -> an: opens
}
w0: "subactor\n'worker_0'" {
  tasks: "trio task tree"
}
w1: "subactor\n'worker_1'" {
  main: "serve()"
  an: "ActorNursery"
  main -> an: opens
}
gc: "subactor\n'deeper'" {
  tasks: "trio task tree"
}
root.an -> w0: "spawns +\nsupervises"
root.an -> w1: "spawns +\nsupervises"
w1.an -> gc: "spawns +\nsupervises"
