# `Orchid.Repo.Transferable`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L86)

Optional behaviour for bulk export / import of store contents.

Safety note: adapters **must** implement `validate/1` and callers
**must** call it before `import/2` when the serialized payload
crosses a trust boundary.

# `scope`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L95)

```elixir
@type scope() :: :all | {:keys, [Orchid.Repo.key()]} | {:condition, term()}
```

# `serialized`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L94)

```elixir
@type serialized() :: binary()
```

# `export`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L97)

```elixir
@callback export(store :: Orchid.Repo.store_ref(), scope(), opts :: keyword()) ::
  {:ok, serialized()} | {:error, term()}
```

# `import`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L100)

```elixir
@callback import(store :: Orchid.Repo.store_ref(), serialized()) :: :ok | {:error, term()}
```

# `validate`
[🔗](https://github.com/SynapticStrings/Orchid/blob/main/lib/orchid/repo.ex#L103)

```elixir
@callback validate(serialized()) :: :ok | {:error, term()}
```

---

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