t() :: map()
event?(any()) :: boolean()
id(t()) :: term()
key(t()) :: term()
key(t()) :: :string | :integer
on_error(t()) :: :halt | :skip
timestamp(t()) :: NaiveDateTime.t()
type(t()) :: String.t() | nil