# Field extension declaration

Learn more about field extension declaration properties, supported FieldExtensionType enumeration values, and FieldExtensionFature enumaration.

## Field extension declaration properties

| Key             | Type                                                                         | Description                                                                                                                  |
| --------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `extensionType` | `field` (required)                                                           | The type of extension                                                                                                        |
| `fieldType`     | [`FieldExtensionType`](#field-extension-type-enumeration) (required)         | What field type is your extension targeting                                                                                  |
| `features`      | [`[FieldExtensionFeature]`](#field-extension-feature-enumeration) (required) | List of features implemented by the extension (at least one)                                                                 |
| `fieldConfig`   | `ConfigFields`                                                               | Optional definition of _field_ configuration settings. Supports the following field types: `string`, `number`, and `boolean` |

## FieldExtensionType enumeration

Supported `FieldExtensionType` enumeration values:

| Type       | `value` type                                                                                                                     |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `STRING`   | `string`                                                                                                                         |
| `INT`      | `number` (without decimals)                                                                                                      |
| `FLOAT`    | `number`                                                                                                                         |
| `BOOLEAN`  | `boolean`                                                                                                                        |
| `JSON`     | any valid [JSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) value                    |
| `DATE`     | `string` in format 'yyyy-MM-dd'                                                                                                  |
| `DATETIME` | `string` in [ISO 8601 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) |
| `LOCATION` | `object { "latitude": number; "longitude": number; }`                                                                            |
| `COLOR`    | `object { "rgba": { "r": number; "g": number; "b": number; "a": number; } }`                                                     |

Soon to be supported `FieldExtensionType` values:
`RICHTEXT`, `UNION`, `RELATION`, `ASSET`

## FieldExtensionFeature enumeration

- `FieldRenderer`: The extension replaces a form field.
- [`ListRenderer`](./list-renderer): By enabling this feature, you indicate
  that the extension can handle array values as well, and that Hygraph should call
  it directly instead of the default list renderer on multiple value inputs.
- [`TableRenderer`](./table-renderer): The extension should also be used to display values in the content table.
