Structured machine-readable policy or graph violation.
@type t() :: %Weld.Violation{ code: atom(), dependency: atom() | nil, details: map(), message: String.t(), project: String.t() | nil }
@spec new(atom(), String.t(), keyword()) :: t()