# `Macaw.Surface.Validated`
[🔗](https://github.com/dcoai/macaw/blob/v0.1.3/lib/macaw/surface/validated.ex#L1)

A surface that passed the static pass (spec/06 §3.4), and what rendering needs of it:
each cell's component module, validated settings and declarations, and each slot's
source, description, fields and request params; `order` is the cells in reading order.

Rendering takes only a validated surface, so nothing renders that hasn't passed.

# `cell`

```elixir
@type cell() :: %{
  module: module(),
  settings: map(),
  declarations: Macaw.Component.Declarations.t(),
  slots: %{required(String.t()) =&gt; slot()}
}
```

# `slot`

```elixir
@type slot() :: %{
  source: String.t(),
  description: Macaw.Data.Source.Description.t(),
  fields: map(),
  params: map()
}
```

# `t`

```elixir
@type t() :: %Macaw.Surface.Validated{
  cells: %{required(String.t()) =&gt; cell()},
  order: [String.t()],
  surface: Macaw.Surface.t()
}
```

---

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