All the types that implement this protocol.
@type t() :: term()
@spec selector_value(t(), map()) :: any()
@spec subtype(t(), any()) :: atom()