# `Weld.Manifest`
[🔗](https://github.com/nshkrdotcom/weld/blob/main/lib/weld/manifest.ex#L1)

Loads and validates a repo-local weld manifest.

# `classify_config`

```elixir
@type classify_config() :: %{
  tooling: MapSet.t(String.t()),
  proofs: MapSet.t(String.t()),
  ignored: MapSet.t(String.t())
}
```

# `dependency_config`

```elixir
@type dependency_config() :: %{
  optional(atom()) =&gt; %{requirement: String.t() | nil, opts: keyword()}
}
```

# `publication_config`

```elixir
@type publication_config() :: %{
  internal_only: MapSet.t(String.t()),
  separate: MapSet.t(String.t()),
  optional: %{optional(String.t()) =&gt; MapSet.t(String.t())}
}
```

# `t`

```elixir
@type t() :: %Weld.Manifest{
  artifacts: %{optional(String.t()) =&gt; Weld.Manifest.Artifact.t()},
  classify: classify_config(),
  dependencies: dependency_config(),
  manifest_path: Path.t(),
  publication: publication_config(),
  repo_root: Path.t(),
  workspace: workspace_config()
}
```

# `workspace_config`

```elixir
@type workspace_config() :: %{root: String.t(), project_globs: [String.t()]}
```

# `artifact!`

```elixir
@spec artifact!(t(), nil | String.t() | atom()) :: Weld.Manifest.Artifact.t()
```

# `load!`

```elixir
@spec load!(Path.t()) :: t()
```

---

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