# `DocShell.Presentation.Renderer.Capability`
[🔗](https://github.com/futhr/doc_shell/blob/v2.0.0/lib/doc_shell/presentation/renderer/capability.ex#L1)

Describes the states a renderer can provide for one feature.

`states` records whether output contains a semantic fallback, a local browser
enhancement, or a connected live experience. `runtime` records only what the
served result needs (`:browser_js` or `:live_transport`), not tools used while
building assets. Static admission can therefore reject live-only output
without treating JavaScript enhancement as a server dependency.

# `t`

```elixir
@type t() :: %DocShell.Presentation.Renderer.Capability{
  runtime: [:browser_js | :live_transport],
  states: [:fallback | :enhanced | :connected]
}
```

A closed capability declaration.

# `validate`

```elixir
@spec validate(t()) :: :ok | {:error, term()}
```

Validates feature states and runtime requirements.

---

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