# ProposalWorkspaceInput

[All API schemas](/api-reference/schemas/)

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>proposalId</code> | Yes | <code>string</code> | — |
| <code>title</code> | Yes | <code>string</code> | — |
| <code>rationale</code> | Yes | <code>string</code> | — |
| <code>trigger</code> | No | <code>string</code> | User-authored proposal context, not verified source evidence. Whitespace is trimmed on input. Min length: <code>3</code>; Max length: <code>500</code> |
| <code>expectedImprovementQuote</code> | Yes | [SignedAtomicAmount](/api-reference/schemas/signed-atomic-amount/) | — |
| <code>maximumDownsideQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>costOfNoActionQuote</code> | Yes | [SignedAtomicAmount](/api-reference/schemas/signed-atomic-amount/) | — |
| <code>exactTokenFlows</code> | Yes | Array of <code>object</code> | — |
| <code>exactTokenFlows&#91;&#93;.token</code> | Yes | [Address](/api-reference/schemas/address/) | — |
| <code>exactTokenFlows&#91;&#93;.amount</code> | Yes | [SignedAtomicAmount](/api-reference/schemas/signed-atomic-amount/) | — |
| <code>exactTokenFlows&#91;&#93;.destination</code> | Yes | [Address](/api-reference/schemas/address/) | — |
| <code>beforeDepthQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>afterDepthQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>simulationStudyId</code> | Yes | <code>string</code> | — |
| <code>strategyDefinitionId</code> | Yes | <code>string</code> | — |
| <code>strategyValidationEventId</code> | Yes | <code>string</code> | — |
| <code>strategyValidationArtifactHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>alternatives</code> | Yes | Array of <code>object</code> | — |
| <code>alternatives&#91;&#93;.label</code> | Yes | <code>string</code> | — |
| <code>alternatives&#91;&#93;.outcomeQuote</code> | Yes | [SignedAtomicAmount](/api-reference/schemas/signed-atomic-amount/) | — |
| <code>alternatives&#91;&#93;.selected</code> | Yes | <code>boolean</code> | — |
| <code>internalApprovalsRequired</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>20</code> |
| <code>expiresAt</code> | Yes | <code>string</code> | Format: <code>date-time</code> |
| <code>safeTransactionIntent</code> | No | [ProposalSafeTransactionIntent](/api-reference/schemas/proposal-safe-transaction-intent/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: <code>#/components/schemas/ProposalWorkspaceInput</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).