# `Incant.Admin.Contract`
[🔗](https://github.com/elixir-vibe/incant/blob/v0.1.1/lib/incant/admin/contract.ex#L1)

Transport-safe description of an Incant admin surface.

Contracts are intended for discovery, SafeRPC responses, audits, and remote UI
clients. They contain stable data only; local callbacks, repos, schemas, and
other executable BEAM terms remain in regular Incant metadata and executors.

# `surface`

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

# `t`

```elixir
@type t() :: %Incant.Admin.Contract{
  dashboards: [surface()],
  datasets: [surface()],
  id: String.t(),
  module: String.t(),
  opts: map(),
  plugins: [String.t()],
  resources: [surface()],
  service: atom() | String.t() | nil,
  version: String.t() | nil
}
```

---

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