# `Jido.Messaging.Demo.Topology`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/demo/topology.ex#L1)

YAML-backed bootstrap helpers for demo runtime topology.

This module keeps demo setup declarative by loading a topology file and
applying bridge configs, rooms, bindings, and routing policies.

# `summary`

```elixir
@type summary() :: %{
  bridge_rooms: non_neg_integer(),
  bridge_configs: non_neg_integer(),
  rooms: non_neg_integer(),
  room_bindings: non_neg_integer(),
  routing_policies: non_neg_integer()
}
```

# `t`

```elixir
@type t() :: map()
```

# `adapter_module`

```elixir
@spec adapter_module(t(), String.t()) :: module() | nil
```

Resolves an adapter module configured in the topology's `bridge` section.

# `apply`

```elixir
@spec apply(module(), t()) :: {:ok, summary()} | {:error, term()}
```

Applies bridge configs, rooms, bindings, and routing policies to an instance.

# `bridge_value`

```elixir
@spec bridge_value(t(), String.t()) :: term()
```

Reads a value from the topology's `bridge` section.

# `load`

```elixir
@spec load(String.t()) :: {:ok, t()} | {:error, term()}
```

Loads a YAML topology file and resolves environment placeholders.

# `mode`

```elixir
@spec mode(t()) :: :echo | :bridge | :agent | nil
```

Returns the configured demo runtime mode.

---

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