# `Minga.Extension.RuntimeSupervisor`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga/extension/runtime_supervisor.ex#L1)

Local `DynamicSupervisor` for one extension's runtime implementation.

Child mechanics live here. Every child spec is forced to `:temporary`; the
sibling `Instance` is the only process that interprets the declaration's
original restart policy.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `local_child`

```elixir
@spec local_child(GenServer.server(), timeout()) ::
  {:ok, pid()} | :empty | {:error, term()}
```

Returns this supervisor's sole local runtime child, bounded by the caller's deadline.

# `start_child`

```elixir
@spec start_child(GenServer.server(), Supervisor.child_spec()) ::
  {:ok, pid()} | {:error, term()}
```

Starts one temporary runtime child.

# `start_link`

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

Starts the runtime supervisor for one extension root.

# `terminate_child`

```elixir
@spec terminate_child(GenServer.server(), pid()) :: :ok | {:error, term()}
```

Terminates the currently owned runtime child.

---

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