# The .trex manifest reference

> Every rule the .trex manifest must follow: child order, id and version patterns, the four-encoding cap, min-api-version floors, and icon size.

Canonical: https://ext.tableauops.com/knowledge/trex-manifest-reference
Updated: 2026-09-18
Author: Eric Summers

A `.trex` file is the manifest that tells Tableau where your extension lives and what it is. It is small, but it is order-sensitive: Tableau validates it against a compiled schema, and the wrong child order throws before your code ever runs.

## Caps and floors

- **Maximum custom encodings:** 4 (the schema's maxOccurs). A fifth Marks-card tile is rejected.
- **Viz extension min-api-version:** 1.12. **Dashboard:** 1.10.
- **Embedded icon size:** base64 must be at most 19608 characters.
- **Reserved encoding ids:** `detail`, `tooltip` (Tableau built-ins; never use them for a custom tile).
- **Built-in encoding names:** `color`, `size`, `shape`, `text`, `label`, `angle`, `path`.

## Patterns the schema enforces

| Field | Pattern |
| --- | --- |
| Extension id | `^[A-Za-z]{2,6}(\.[A-Za-z0-9-]{1,63})+$` |
| min-api-version | `^\d+\.\d+$` |
| version (semver) | `^\d+\.\d+\.\d+$` |
| author website | `^[Hh][Tt][Tt][Pp][Ss]:\/\/.+` |

## Child order

Tableau's XSD is order-sensitive. These are the child orders the linter enforces; out-of-order children throw FD722608.

**Worksheet (viz) extension children:** `default-locale` > `name` > `description` > `author` > `min-api-version` > `source-location` > `icon` > `permissions` > `context-menu` > `disable-sorting-ui` > `encoding`

**Dashboard extension children:** `default-locale` > `name` > `description` > `author` > `min-api-version` > `source-location` > `icon` > `permissions` > `context-menu` > `layout`

**Required children:** `default-locale`, `name`, `description`, `author`, `min-api-version`, `source-location`, `icon`

**Encoding children:** `display-name` > `data-spec` > `role-spec` > `fields` > `encoding-icon` > `tooltip`

## Data and role types

- **Data types:** `numeric`, `temporal`, `string`, `boolean`
- **Role types:** `continuous-measure`, `discrete-dimension`, `continuous-dimension`, `discrete-measure`

## FAQ

### Why does Tableau throw FD722608 on my manifest?
Almost always the manifest children are out of order, or an XML comment contains a double hyphen. Match the child order above.

### How many Marks-card tiles can a viz extension have?
Four. The schema caps custom encodings at maxOccurs=4.


---
Try it live: Check a .trex in Studio — https://ext.tableauops.com/studio
