> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryblend.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Data types & compatibility

> What each handle's data type means, and the rules for which connections are allowed.

Every handle carries a **data type**. It's how the editor knows which connections make sense — drag from an output and only compatible inputs accept the edge. A type describes *what* flows through a handle, not *how many* values; that's a separate axis, covered in [Lists & single values](/concepts/lists-and-values).

## The types

| Type         | Carries                                                                                        |
| ------------ | ---------------------------------------------------------------------------------------------- |
| `text`       | Strings — prompts, captions, model output.                                                     |
| `image`      | An image file.                                                                                 |
| `video`      | A video file.                                                                                  |
| `audio`      | An audio file.                                                                                 |
| `file`       | Any file, including the media types above.                                                     |
| `model`      | A model selection. Keeping it distinct preserves model filtering and the model-picker control. |
| `collection` | A saved collection selection.                                                                  |
| `any`        | A flexible wildcard slot that adapts to whatever connects to it.                               |
| `tool-list`  | A bundle of tools or sub-agents — only ever wired into an Agent's tools input.                 |

The distinctions are semantic, not cosmetic. An `image` is not a `video` is not `audio`; `model` and `collection` preserve their specialized selectors rather than degrading to plain text; and a `tool-list` isn't content at all—it's agent wiring.

## Compatibility

When you drag an edge, the editor checks the source type against the target type:

| Source                      | Target                                        | Allowed?                                                     |
| --------------------------- | --------------------------------------------- | ------------------------------------------------------------ |
| `text`                      | `text` (same type)                            | ✅ Exact match always connects.                               |
| anything                    | `any`                                         | ✅ `any` is a wildcard — except it never accepts `tool-list`. |
| `any`                       | anything                                      | ✅ `any` adapts to the target.                                |
| `image` / `video` / `audio` | `file`                                        | ✅ Media is a kind of file.                                   |
| `model`                     | `model`                                       | ✅ Model selectors connect to model selectors.                |
| `collection`                | `collection`                                  | ✅ Collection selectors connect to collection selectors.      |
| `tool-list`                 | `tool-list`                                   | ✅ The only valid use — strict on both sides.                 |
| `tool-list`                 | anything else                                 | ❌ Tools only plug into a tools input.                        |
| `text`                      | `image` (and other mismatched concrete types) | ❌ Rejected.                                                  |

<Note>
  Type answers *what* flows. *How many values* flow — a single value versus a list — is a different axis entirely, covered in [Lists & single values](/concepts/lists-and-values).
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Handles, edges & connections" icon="diagram-project" href="/concepts/handles-and-edges">
    How handles emit and receive data, and the rules that govern edges.
  </Card>

  <Card title="Lists & single values" icon="list" href="/concepts/lists-and-values">
    The other axis — how many values move through a connection.
  </Card>
</CardGroup>
