Structural validation and producer-authority verification for borrowed frames.
@type reason() :: term()
@spec validate_descriptor(term()) :: :ok | {:error, reason()}
@spec validate_format(term()) :: :ok | {:error, reason()}
@spec validate_frame(term()) :: :ok | {:error, reason()}
@spec validate_frame_against_format(term(), term()) :: :ok | {:error, reason()}