# `Snodo.Protocol.Profile.Method`
[🔗](https://github.com/joshrotenberg/snodo/blob/v0.1.0/lib/snodo/protocol/profile.ex#L1)

A declarative method rule for one exact MCP protocol profile.

# `direction`

```elixir
@type direction() :: :client_to_server | :server_to_client
```

# `kind`

```elixir
@type kind() :: :request | :notification
```

# `lifecycle`

```elixir
@type lifecycle() :: :active | :deprecated
```

# `params_policy`

```elixir
@type params_policy() :: :required | :optional
```

# `placement`

```elixir
@type placement() :: :top_level | :mrtr_embedded
```

# `status`

```elixir
@type status() :: :implemented | :unsupported
```

# `t`

```elixir
@type t() :: %Snodo.Protocol.Profile.Method{
  capability: String.t() | nil,
  directions: [direction()],
  kind: kind(),
  lifecycle: lifecycle(),
  name: String.t(),
  params: params_policy(),
  placement: placement(),
  status: status(),
  validator: validator() | nil
}
```

# `validator`

```elixir
@type validator() :: {module(), atom()}
```

---

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