Structured violation returned when a policy halts the pipeline.
Provides machine-readable error data so callers can distinguish policy blocks from provider errors and take appropriate action.
@type t() :: %PhoenixAI.Guardrails.PolicyViolation{ message: String.t() | nil, metadata: map(), policy: module(), reason: String.t() }