# `Sake.Content`
[🔗](https://github.com/hattoriai/sake/blob/v0.4.3/lib/sake/content.ex#L1)

A content block of a tool result, a resource read, or a prompt message.

# `t`

```elixir
@type t() :: %Sake.Content{
  annotations: map() | nil,
  blob: boolean(),
  data: binary() | nil,
  description: String.t() | nil,
  meta: map() | nil,
  mime_type: String.t() | nil,
  name: String.t() | nil,
  text: String.t() | nil,
  title: String.t() | nil,
  type: :text | :image | :audio | :resource_link | :resource,
  uri: String.t() | nil
}
```

# `audio`

```elixir
@spec audio(binary(), String.t(), keyword()) :: t()
```

# `from_wire`

```elixir
@spec from_wire(map()) :: t() | {:error, :unknown_content}
```

# `image`

```elixir
@spec image(binary(), String.t(), keyword()) :: t()
```

# `resource`

```elixir
@spec resource(String.t(), String.t() | {:blob, binary()}, keyword()) :: t()
```

An embedded resource: `content` is text, or `{:blob, binary}`.

# `resource_link`

```elixir
@spec resource_link(String.t(), keyword()) :: t()
```

# `text`

```elixir
@spec text(String.t(), keyword()) :: t()
```

# `to_wire`

```elixir
@spec to_wire(t()) :: map()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
