# `SmolBox.Manifest`
[🔗](https://github.com/hfiguera/smolbox/blob/v0.1.3/lib/smolbox/manifest.ex#L1)

Exact input/output file declarations using opaque host artifact-store references.

Inputs use string keys `source`, `path`, `size`, `sha256`, and `mode`. The only
supported mode is `runtime_default`; the pinned HTTP API cannot set permissions.
Outputs use `destination`, `path`, and `max_bytes`. References are identifiers,
never URLs or host paths. Each direction allows at most 32 unique paths and
references. Collection takes a byte snapshot of each file; a multi-file atomic
snapshot is not promised. Neither archives nor recursive globs are interpreted.

# `input`

```elixir
@type input() :: %{required(String.t()) =&gt; String.t() | non_neg_integer()}
```

# `output`

```elixir
@type output() :: %{required(String.t()) =&gt; String.t() | pos_integer()}
```

# `validate`

```elixir
@spec validate(term(), term(), SmolBox.Profile.t()) ::
  :ok | {:error, SmolBox.Error.t()}
```

---

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