# `Continuum.DurableTerm`
[🔗](https://github.com/Yyeger/Continuum/blob/main/lib/continuum/durable_term.ex#L1)

Validates values before they cross a Continuum journal boundary.

ETF can encode node-local identities, but decoding them during replay does
not make them meaningful on another process or node. This validator rejects
those identities recursively and reports their exact location.

# `path`

```elixir
@type path() :: [path_segment()]
```

# `path_segment`

```elixir
@type path_segment() ::
  atom() | {:field, term()} | {:index, non_neg_integer()} | :tail
```

# `validate`

```elixir
@spec validate(term(), atom()) :: :ok | {:error, Continuum.DurableTermError.t()}
```

# `validate!`

```elixir
@spec validate!(term(), atom()) :: term()
```

---

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