> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# FormDefinition

> Interface exported by @botmesh/core.

Defined in: [forms/types.ts:155](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L155)

A transport-agnostic form.

## Properties

### id

```ts theme={null}
id: string;
```

Defined in: [forms/types.ts:161](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L161)

Stable form id: default `c.state` key of the answers, the key a native
provider uses to find the published form (e.g. a WhatsApp Flow id mapping),
and the node label in `describe()`. Same charset as field names.

***

### title?

```ts theme={null}
title?: string;
```

Defined in: [forms/types.ts:163](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L163)

Title shown on the native form screen.

***

### intro?

```ts theme={null}
intro?: string;
```

Defined in: [forms/types.ts:165](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L165)

Text sent with the form (native message body) or before the first question (degraded).

***

### cta?

```ts theme={null}
cta?: string;
```

Defined in: [forms/types.ts:167](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L167)

Label of the button that opens a native form. Default: `core.form.cta` in `ctx.lang` (`'Abrir formulario'` / `'Open form'`).

***

### submitLabel?

```ts theme={null}
submitLabel?: string;
```

Defined in: [forms/types.ts:169](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L169)

Label of the submit button of a native form. Default: `core.form.submit` in `ctx.lang` (`'Enviar'` / `'Submit'`).

***

### fields

```ts theme={null}
fields: readonly FormField[];
```

Defined in: [forms/types.ts:171](https://github.com/andresayac/botmesh/blob/main/packages/core/src/forms/types.ts#L171)

Fields, in order. At least one; names must be unique.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.