# `SnakeBridge.Docs.Manifest`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.16.0/lib/snakebridge/docs/manifest.ex#L1)

Loads a docs-derived public surface manifest for a SnakeBridge library.

A manifest is a JSON file that encodes which Python modules/objects should be
treated as the "public surface" for wrapper generation. This enables:

- small, stable default bindings (e.g. `:summary`)
- an opt-in "everything the docs publish" surface (e.g. `:full`)
- deterministic builds without walking large Python package trees

# `object_entry`

```elixir
@type object_entry() :: %{name: String.t(), kind: object_kind()}
```

# `object_kind`

```elixir
@type object_kind() :: :class | :function | :data | :unknown
```

# `profile`

```elixir
@type profile() :: %{modules: [String.t()], objects: [object_entry()]}
```

# `load_profile`

```elixir
@spec load_profile(SnakeBridge.Config.Library.t()) ::
  {:ok, profile()} | {:error, term()}
```

---

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