accept?(mime_type :: String.t) :: boolean
decode(mime_type :: String.t, String.t) :: {:ok, decoded :: term} | {:error, reason :: term}
encode(mime_type :: String.t, term) :: {mime_type :: String.t, encoded :: String.t}