Committed, text-free observer event for an inference lifecycle.
@type t() :: %Spectre.Inference.Event{ attempt_id: term(), canonical_revision: term(), id: term(), inference_id: term(), instance_key: term(), invocation_id: term(), metadata: term(), progress: term(), stream_epoch: term(), timestamp: term(), type: term() }
@spec new(atom(), Spectre.Inference.Progress.t(), keyword()) :: t()
@spec validate(t()) :: :ok | {:error, term()}