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

Contains one validated `doc-shell-site/v1` generation.

A site binds an exact collection cohort to pages, routes, navigation, search,
redirects, locale policy, and host metadata. `cohort_digest` identifies the
source and profile content deterministically; `generation_id` distinguishes
publication attempts. Renderers consume this value without reading collection
directories or repeating visibility and route decisions.

# `t`

```elixir
@type t() :: %DocShell.Presentation.Site{
  base_path: String.t(),
  cohort_digest: String.t(),
  default_locale: String.t(),
  generation_id: String.t(),
  locales: [String.t()],
  metadata: map(),
  navigation: [DocShell.Presentation.NavigationItem.t()],
  pages: %{required(String.t()) =&gt; DocShell.Presentation.Page.t()},
  presentation: DocShell.Presentation.Settings.t(),
  profile: String.t(),
  redirects: %{required(String.t()) =&gt; String.t()},
  routes: %{required(String.t()) =&gt; String.t()},
  schema_version: String.t(),
  search: [DocShell.Presentation.SiteSearchEntry.t()],
  title: String.t()
}
```

A portable site generation with one coherent source cohort.

# `schema_version`

```elixir
@spec schema_version() :: String.t()
```

Returns the portable site schema identifier.

---

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