# ScenarioDefinition

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

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

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>id</code> | Yes | <code>string</code> | — |
| <code>name</code> | Yes | <code>string</code> | — |
| <code>kind</code> | Yes | <code>string</code> | Allowed: <code>HISTORICAL&#95;REPLAY</code>, <code>BULL</code>, <code>BEAR</code>, <code>SIDEWAYS</code>, <code>LIQUIDITY&#95;CRISIS</code>, <code>TOKEN&#95;UNLOCK</code>, <code>LARGE&#95;BUYER</code>, <code>LARGE&#95;SELLER</code>, <code>LIQUIDITY&#95;WITHDRAWAL</code>, <code>GAS&#95;SPIKE</code>, <code>ORACLE&#95;OUTAGE</code>, <code>COMBINED</code> |
| <code>driftPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>-1000000</code>; Maximum: <code>1000000</code> |
| <code>volatilityPipsPerStep</code> | Yes | [Pips](/api-reference/schemas/pips/) | — |
| <code>liquidityWithdrawalPips</code> | Yes | [Pips](/api-reference/schemas/pips/) | — |
| <code>oneSidedFlowPips</code> | Yes | [Pips](/api-reference/schemas/pips/) | — |
| <code>gasIncreasePips</code> | Yes | [Pips](/api-reference/schemas/pips/) | — |
| <code>oracleOutageStep</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>364</code> |
| <code>historicalReturnPips</code> | No | Array of <code>integer</code> | Min items: <code>1</code>; Max items: <code>365</code> |
| <code>protocolFeePips</code> | No | [Pips](/api-reference/schemas/pips/) | — |
| <code>platformFeePips</code> | No | [Pips](/api-reference/schemas/pips/) | — |
| <code>unlocks</code> | Yes | Array of [UnlockTranche](/api-reference/schemas/unlock-tranche/) | Max items: <code>256</code> |

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