# `Exdantic.Runtime.Validator`
[🔗](https://github.com/nshkrdotcom/exdantic/blob/v0.1.0/lib/exdantic/runtime/validator.ex#L1)

Validation functions specifically for runtime schemas.

This module provides validation logic that works with both DynamicSchema
and EnhancedSchema, handling the full validation pipeline including
model validators and computed fields.

# `enhance_schema`

```elixir
@spec enhance_schema(
  Exdantic.Runtime.DynamicSchema.t(),
  keyword()
) :: Exdantic.Runtime.EnhancedSchema.t()
```

Converts a DynamicSchema to an EnhancedSchema.

## Parameters
  * `dynamic_schema` - DynamicSchema to convert
  * `opts` - Options for enhancement

## Options
  * `:model_validators` - Model validators to add
  * `:computed_fields` - Computed fields to add

## Returns
  * EnhancedSchema struct

# `enhanced_schema?`

```elixir
@spec enhanced_schema?(
  Exdantic.Runtime.DynamicSchema.t()
  | Exdantic.Runtime.EnhancedSchema.t()
) ::
  boolean()
```

Checks if a schema supports enhanced features.

## Parameters
  * `schema` - DynamicSchema or EnhancedSchema struct

## Returns
  * `true` if schema supports enhanced features, `false` otherwise

# `schema_info`

```elixir
@spec schema_info(
  Exdantic.Runtime.DynamicSchema.t()
  | Exdantic.Runtime.EnhancedSchema.t()
) :: map()
```

Returns information about a runtime schema.

## Parameters
  * `schema` - DynamicSchema or EnhancedSchema struct

## Returns
  * Map with schema information

# `to_json_schema`

```elixir
@spec to_json_schema(
  Exdantic.Runtime.DynamicSchema.t() | Exdantic.Runtime.EnhancedSchema.t(),
  keyword()
) :: map()
```

Generates JSON Schema for a runtime schema.

## Parameters
  * `schema` - DynamicSchema or EnhancedSchema struct
  * `opts` - JSON Schema generation options

## Returns
  * JSON Schema map

# `validate`

```elixir
@spec validate(
  map(),
  Exdantic.Runtime.DynamicSchema.t() | Exdantic.Runtime.EnhancedSchema.t(),
  keyword()
) :: {:ok, map()} | {:error, [Exdantic.Error.t()]}
```

Validates data against a runtime schema (DynamicSchema or EnhancedSchema).

## Parameters
  * `data` - The data to validate
  * `schema` - DynamicSchema or EnhancedSchema struct
  * `opts` - Validation options

## Returns
  * `{:ok, validated_data}` on success
  * `{:error, errors}` on validation failure

# `validate!`

```elixir
@spec validate!(
  map(),
  Exdantic.Runtime.DynamicSchema.t() | Exdantic.Runtime.EnhancedSchema.t(),
  keyword()
) :: map()
```

Validates data against a runtime schema, raising on failure.

## Parameters
  * `data` - The data to validate
  * `schema` - DynamicSchema or EnhancedSchema struct
  * `opts` - Validation options

## Returns
  * Validated data on success
  * Raises `Exdantic.ValidationError` on failure

---

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