# `CliSubprocessCore.Schema`
[🔗](https://github.com/nshkrdotcom/cli_subprocess_core/blob/v0.1.0/lib/cli_subprocess_core/schema.ex#L1)

Canonical schema helpers and shared validation error types for common-lane
dynamic boundaries.

# `error_detail`

```elixir
@type error_detail() :: %{
  message: String.t(),
  errors: map(),
  issues: [issue_detail()]
}
```

# `issue_detail`

```elixir
@type issue_detail() :: %{code: atom(), message: String.t(), path: [term()]}
```

# `parse_error`

```elixir
@type parse_error(tag) :: {tag, error_detail()}
```

# `error_details`

```elixir
@spec error_details([Zoi.Error.t()]) :: error_detail()
```

# `merge_extra`

```elixir
@spec merge_extra(map(), map()) :: map()
```

# `parse`

```elixir
@spec parse(Zoi.schema(), term(), term()) ::
  {:ok, term()} | {:error, parse_error(term())}
```

# `parse!`

```elixir
@spec parse!(Zoi.schema(), term(), term()) :: term()
```

# `split_extra`

```elixir
@spec split_extra(map(), [term()]) :: {map(), map()}
```

# `to_map`

```elixir
@spec to_map(
  struct(),
  [atom()]
) :: map()
```

---

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