# `Selecto.Domain.ContractVerification`

Read-only verification for published Selecto domain query surfaces.

This module is the first consumer-aware contract verification slice. It
projects provider domains into named published query surfaces, reads consumer
`domain_dependencies`, and verifies that each consumer still depends only on
fields, filters, query members, versions, and fingerprints the provider
currently publishes.

# `verification_result`

```elixir
@type verification_result() :: {:ok, map()} | {:error, map()}
```

# `diff_snapshots`

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

Diffs two contract snapshots and classifies compatible, review-required, and
breaking changes.

# `published_surfaces`

```elixir
@spec published_surfaces(
  term(),
  keyword()
) :: {:ok, map()} | {:error, term()}
```

Projects published query surfaces from a provider domain and validates that
explicit surface references resolve against the provider query contract.

# `snapshot`

```elixir
@spec snapshot(
  term(),
  keyword()
) :: {:ok, map()} | {:error, term()}
```

Builds a stable snapshot artifact for a provider's published query surfaces.

# `snapshot_format`

# `snapshot_format_version`

# `verify`

```elixir
@spec verify(term(), term(), keyword()) :: verification_result()
```

Verifies one consumer domain against one provider domain.

---

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