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

# ContentBlock Reference

> Schema reference for the block type returned by the API

Every response from `/render/enhance` contains an ordered array of `ContentBlock` objects. All blocks — including plain text — are component blocks.

## ComponentBlock

A structured UI component with typed props, ready for rendering. Text content uses `component: "text"` and is rendered by the Typography component.

### Text example

```json theme={null}
{
  "component": "text",
  "version": "1.0",
  "props": {
    "content": "PostgreSQL and MongoDB are both excellent databases...",
    "variant": "prose"
  }
}
```

### Component example

```json theme={null}
{
  "type": "component",
  "component": "table",
  "version": "1.0",
  "props": {
    "columns": ["Feature", "PostgreSQL", "MongoDB"],
    "rows": [
      { "Feature": "Data Model", "PostgreSQL": "Relational", "MongoDB": "Document" }
    ],
    "sortable": true
  },
  "meta": {
    "title": "Database Comparison",
    "description": "Feature comparison between PostgreSQL and MongoDB",
    "confidence": 0.95
  },
  "fallback": "| Feature | PostgreSQL | MongoDB |..."
}
```

| Field              | Type      | Description                                                            |
| ------------------ | --------- | ---------------------------------------------------------------------- |
| `component`        | `string`  | Component type key (e.g. `"text"`, `"table"`, `"alert"`, `"checkbox"`) |
| `version`          | `string`  | Schema version. Currently `"1.0"`                                      |
| `props`            | `object`  | Component-specific structured data. See [Components](/docs/components) |
| `meta`             | `object?` | Optional metadata                                                      |
| `meta.title`       | `string?` | Component title                                                        |
| `meta.description` | `string?` | Component description                                                  |
| `meta.confidence`  | `number?` | Classification confidence (0–1)                                        |
| `fallback`         | `string?` | Original markdown text. Use this if the component fails to render      |

<Note>
  The API transmits blocks in a compact [wire format](/docs/api/enhance#wire-format) with single-character keys (`c`, `v`, `p`, `m`, `f`).
</Note>

## Ordering Guarantee

Blocks always appear in document order, matching the flow of the original text:

```
{ component: "text",  props: { content: "..." } }
{ component: "table", props: { columns: [...], rows: [...] } }
{ component: "text",  props: { content: "..." } }
{ component: "alert", props: { variant: "tip", message: "..." } }
```

Your renderer can rely on this ordering for progressive/streaming rendering.
