Describes the document media type of the content. Not every provider supports every media type.
Includes also programming languages as document types for providers who support code running.
Convertible to and from MIME type strings.
A message represents a run of input (user) and output (assistant).
Each message type (based on it’s role) can contain a atleast one bit of content such as text,
images, audio, documents, or tool related information. While each message type can contain
multiple content, most often, you’ll only see one content type per message
(an image w/ a description, etc).
Describes the content of a message, which can be text, a tool result, an image, audio, or
a document. Dependent on provider supporting the content type. Multimedia content is generally
base64 (defined by it’s format) encoded but additionally supports urls (for some providers).