# `ExTbpMonty.Core.Supervisor`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/ex_tbp_monty_core/supervisor.ex#L1)

The processes the core needs, for a host to put in its own tree.

    children = [
      ExMontyTbp.Core.Supervisor,
      MyApp.Endpoint
    ]

Two of them, and both are about finding a module by name:

  * `Monty.Runtime.Registry` — every sensor and learning module registers
    here, so the step coordinator can address a module across restarts;
  * `ExMontyTbp.Core.ModelSupervisor` — one child per running model, holding
    its module servers and step coordinator. A model is stopped by
    terminating its supervisor, so its children cannot outlive the run.

A host that names these differently passes the supervisor name to
`Monty.Runtime.Model.stop/1`; nothing else in the core knows a host's names.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(term()) :: Supervisor.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
