All the types that implement this protocol.
@type t() :: term()
@spec category(t()) :: nil | binary()
@spec metadata(t()) :: map()
@spec name(t()) :: nil | binary()
@spec params(t()) :: map()
@spec session(t()) :: map()