# MigrationPlanLeg

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

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

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>index</code> | Yes | <code>integer</code> | Minimum: <code>0</code> |
| <code>legId</code> | Yes | <code>string</code> | — |
| <code>route</code> | Yes | <code>string</code> | Allowed: <code>FORWARD</code>, <code>ROLLBACK</code> |
| <code>kind</code> | Yes | <code>string</code> | Allowed: <code>WITHDRAW</code>, <code>HOLD&#95;CHECKPOINT</code>, <code>DEPLOY</code>, <code>VERIFY</code>, <code>ROLLBACK&#95;CHECKPOINT</code>, <code>ROLLBACK&#95;WITHDRAW&#95;TARGET</code>, <code>ROLLBACK&#95;REDEPLOY&#95;SOURCE</code>, <code>ROLLBACK&#95;VERIFY&#95;SOURCE</code> |
| <code>venueId</code> | Yes | <code>string</code> | — |
| <code>capitalQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>minimumDepthAfterQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>maximumSlippagePips</code> | Yes | [Pips](/api-reference/schemas/pips/) | — |
| <code>dependsOnLegId</code> | No | <code>string</code> | — |
| <code>requiresPreviousLegFinalizedAndReconciled</code> | Yes | <code>boolean</code> | — |
| <code>conditional</code> | Yes | <code>boolean</code> | — |
| <code>controllerExecution</code> | No | [ControllerExecutionBindingV2](/api-reference/schemas/controller-execution-binding-v2/) | — |
| <code>economicBinding</code> | No | [MigrationLegEconomicBindingV2](/api-reference/schemas/migration-leg-economic-binding-v2/) | — |

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/MigrationPlanLeg</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).