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.
Summary
Types
@type scope() :: :all | {:keys, [Orchid.Repo.key()]} | {:condition, term()}
@type serialized() :: binary()
Callbacks
@callback export(store :: Orchid.Repo.store_ref(), scope(), opts :: keyword()) :: {:ok, serialized()} | {:error, term()}
@callback import(store :: Orchid.Repo.store_ref(), serialized()) :: :ok | {:error, term()}
@callback validate(serialized()) :: :ok | {:error, term()}