object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
schemaVersion |
Yes | Constant research-comparison-v1 |
— |
baselineTrialId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{0,159}$ |
objective |
Yes | object |
Additional properties rejected |
objective.metric |
Yes | string |
Allowed: ENDING_VALUE_P50, MINIMUM_DEPTH_P5, GAS_COST_P50, DRAWDOWN_P95, RESERVE_BREACH_PROBABILITY |
objective.direction |
Yes | string |
Allowed: MAXIMIZE, MINIMIZE |
context |
Yes | At least one of: object; null |
— |
context.anyOf[1].organizationId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
context.anyOf[1].issuerIntentId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
context.anyOf[1].issuerIntentResourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
context.anyOf[1].issuerIntentArtifactHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
context.anyOf[1].sourceCutoff |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
context.anyOf[1].quoteSymbol |
Yes | string |
Min length: 1; Max length: 256 |
context.anyOf[1].quoteAssetId |
Yes | At least one of: string; null |
— |
context.anyOf[1].quoteDecimals |
Yes | At least one of: integer; null |
— |
context.anyOf[1].seedPolicyVersion |
Yes | string |
Min length: 1; Max length: 256 |
context.anyOf[1].horizonUnit |
Yes | string |
Allowed: MODELED_STEPS, CALIBRATED_STEPS |
context.anyOf[1].stepDurationSeconds |
Yes | At least one of: integer; null |
— |
context.anyOf[1].analysisBasis |
Yes | string |
Allowed: CURRENT_DATA_HYPOTHETICAL, HISTORICAL_POINT_IN_TIME |
context.anyOf[1].historicalAvailabilityEvidenceHash |
Yes | At least one of: string; null |
— |
status |
Yes | string |
Allowed: BASELINE_UNAVAILABLE, COMPLETE, PARTIAL |
eligibilityRule |
Yes | Constant ADMITTED_INTENT_CONSTRAINTS_AND_RESERVE_BREACH_AT_MOST_100000_PIPS |
— |
rankingScope |
Yes | Constant WITHIN_SCENARIO_VARIANTS |
— |
limitations |
Yes | Array of string |
Min items: 6; Max items: 6 |
trials |
Yes | Array of object |
Min items: 1; Max items: 4 |
trials[].trialId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{0,159}$ |
trials[].label |
Yes | string |
Min length: 1; Max length: 160 |
trials[].state |
Yes | string |
Allowed: QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED |
trials[].failureCode |
Yes | At least one of: string; null |
— |
trials[].admittedInputHash |
Yes | At least one of: string; null |
— |
trials[].resultArtifactHash |
Yes | At least one of: string; null |
— |
trials[].context |
Yes | At least one of: object; null |
— |
trials[].context.anyOf[1].organizationId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
trials[].context.anyOf[1].issuerIntentId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
trials[].context.anyOf[1].issuerIntentResourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
trials[].context.anyOf[1].issuerIntentArtifactHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
trials[].context.anyOf[1].sourceCutoff |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
trials[].context.anyOf[1].quoteSymbol |
Yes | string |
Min length: 1; Max length: 256 |
trials[].context.anyOf[1].quoteAssetId |
Yes | At least one of: string; null |
— |
trials[].context.anyOf[1].quoteDecimals |
Yes | At least one of: integer; null |
— |
trials[].context.anyOf[1].seedPolicyVersion |
Yes | string |
Min length: 1; Max length: 256 |
trials[].context.anyOf[1].horizonUnit |
Yes | string |
Allowed: MODELED_STEPS, CALIBRATED_STEPS |
trials[].context.anyOf[1].stepDurationSeconds |
Yes | At least one of: integer; null |
— |
trials[].context.anyOf[1].analysisBasis |
Yes | string |
Allowed: CURRENT_DATA_HYPOTHETICAL, HISTORICAL_POINT_IN_TIME |
trials[].context.anyOf[1].historicalAvailabilityEvidenceHash |
Yes | At least one of: string; null |
— |
trials[].admittedInput |
Yes | At least one of: object; null |
— |
trials[].admittedInput.anyOf[1].schemaVersion |
Yes | Constant simulation-study-input-snapshot-v1 |
— |
trials[].admittedInput.anyOf[1].engineVersion |
Yes | Constant digital-twin-pcg64-fixed-v2 |
— |
trials[].admittedInput.anyOf[1].seed |
Yes | string |
Min length: 1; Max length: 256 |
trials[].admittedInput.anyOf[1].pathCount |
Yes | At least one of: Constant 2000; Constant 10000 |
— |
trials[].admittedInput.anyOf[1].stepCount |
Yes | integer |
Minimum: 1; Maximum: 365 |
trials[].admittedInput.anyOf[1].targetTradeSizeQuote |
Yes | string |
Pattern: ^[1-9][0-9]*$ |
trials[].admittedInput.anyOf[1].startingPortfolioQuote |
Yes | string |
Pattern: ^[1-9][0-9]*$ |
trials[].admittedInput.anyOf[1].startingDepthQuote |
Yes | string |
Pattern: ^[1-9][0-9]*$ |
trials[].admittedInput.anyOf[1].startingInventoryPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario |
Yes | object |
Additional properties rejected |
trials[].admittedInput.anyOf[1].scenario.id |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
trials[].admittedInput.anyOf[1].scenario.name |
Yes | string |
Min length: 3; Max length: 160 |
trials[].admittedInput.anyOf[1].scenario.kind |
Yes | string |
Allowed: HISTORICAL_REPLAY, BULL, BEAR, SIDEWAYS, LIQUIDITY_CRISIS, TOKEN_UNLOCK, LARGE_BUYER, LARGE_SELLER, LIQUIDITY_WITHDRAWAL, GAS_SPIKE, ORACLE_OUTAGE, COMBINED |
trials[].admittedInput.anyOf[1].scenario.driftPipsPerStep |
Yes | integer |
Minimum: -1000000; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.volatilityPipsPerStep |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.liquidityWithdrawalPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.oneSidedFlowPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.gasIncreasePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.oracleOutageStep |
No | integer |
Minimum: 0; Maximum: 364 |
trials[].admittedInput.anyOf[1].scenario.historicalReturnPips |
No | Array of integer |
Min items: 1; Max items: 365 |
trials[].admittedInput.anyOf[1].scenario.protocolFeePips |
No | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.platformFeePips |
No | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.unlocks |
Yes | Array of object |
Max items: 256 |
trials[].admittedInput.anyOf[1].scenario.unlocks[].id |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,152}$ |
trials[].admittedInput.anyOf[1].scenario.unlocks[].unlocksAt |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
trials[].admittedInput.anyOf[1].scenario.unlocks[].tokenAmount |
Yes | string |
Pattern: ^[1-9][0-9]*$ |
trials[].admittedInput.anyOf[1].scenario.unlocks[].recipientCategory |
Yes | string |
Allowed: TEAM, INVESTOR, COMMUNITY, TREASURY, ECOSYSTEM, OTHER |
trials[].admittedInput.anyOf[1].scenario.unlocks[].expectedSaleParticipationPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.unlocks[].confidencePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].scenario.unlocks[].correlationGroup |
No | string |
Min length: 1; Max length: 120 |
trials[].admittedInput.anyOf[1].scenario.unlocks[].evidenceHash |
No | string |
Pattern: ^0x[0-9a-fA-F]{64}$ |
trials[].admittedInput.anyOf[1].variants |
Yes | Array of object |
Min items: 5; Max items: 5 |
trials[].admittedInput.anyOf[1].variants[].kind |
Yes | string |
Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY |
trials[].admittedInput.anyOf[1].variants[].requiredCapitalQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].deployableCapitalQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].stableReserveQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].emergencyReserveQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].rangeWidthPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].variants[].expectedSlippagePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].variants[].expectedFeeIncomeLowQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].expectedFeeIncomeHighQuote |
Yes | string |
Pattern: ^(0|[1-9][0-9]*)$ |
trials[].admittedInput.anyOf[1].variants[].inventoryExposurePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].variants[].maximumDailyTurnoverPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].admittedInput.anyOf[1].variants[].satisfiesIntent |
Yes | boolean |
— |
trials[].admittedInput.anyOf[1].variants[].reasons |
Yes | Array of string |
Max items: 64 |
trials[].status |
Yes | string |
Allowed: PENDING, FAILED, CANCELLED, INVALID, INCOMPATIBLE, BASELINE_UNAVAILABLE, COMPARABLE |
trials[].reasons |
Yes | Array of string |
Max items: 16 |
trials[].warnings |
Yes | Array of string |
Max items: 64 |
trials[].variants |
Yes | Array of object |
Max items: 5 |
trials[].variants[].variant |
Yes | string |
Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY |
trials[].variants[].capitalPlan |
Yes | object |
Additional properties rejected |
trials[].variants[].capitalPlan.kind |
Yes | string |
Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY |
trials[].variants[].capitalPlan.requiredCapitalQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.deployableCapitalQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.stableReserveQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.emergencyReserveQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.rangeWidthPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].capitalPlan.expectedSlippagePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].capitalPlan.expectedFeeIncomeLowQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.expectedFeeIncomeHighQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].capitalPlan.inventoryExposurePips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].capitalPlan.maximumDailyTurnoverPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].capitalPlan.satisfiesIntent |
Yes | boolean |
— |
trials[].variants[].capitalPlan.reasons |
Yes | Array of string |
Max items: 64 |
trials[].variants[].outcomes |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.variant |
Yes | string |
Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY |
trials[].variants[].outcomes.endingValueQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.endingValueQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.endingValueQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.endingValueQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.endingValueQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.endingValueQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.turnoverQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.turnoverQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.turnoverQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.turnoverQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.turnoverQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.turnoverQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.gasCostQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.gasCostQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.gasCostQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.gasCostQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.gasCostQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.gasCostQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.feeIncomeQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.feeIncomeQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.feeIncomeQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.feeIncomeQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.feeIncomeQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.feeIncomeQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.protocolFeesQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.protocolFeesQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.protocolFeesQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.protocolFeesQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.protocolFeesQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.protocolFeesQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.platformFeesQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.platformFeesQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.platformFeesQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.platformFeesQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.platformFeesQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.platformFeesQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.minimumDepthQuote |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.minimumDepthQuote.p5 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.minimumDepthQuote.p25 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.minimumDepthQuote.p50 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.minimumDepthQuote.p75 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.minimumDepthQuote.p95 |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.slippagePips |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.slippagePips.p5 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.slippagePips.p25 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.slippagePips.p50 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.slippagePips.p75 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.slippagePips.p95 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drawdownPips |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.drawdownPips.p5 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drawdownPips.p25 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drawdownPips.p50 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drawdownPips.p75 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drawdownPips.p95 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.inventoryPips |
Yes | object |
Additional properties rejected |
trials[].variants[].outcomes.inventoryPips.p5 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.inventoryPips.p25 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.inventoryPips.p50 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.inventoryPips.p75 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.inventoryPips.p95 |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.reserveBreachProbabilityPips |
Yes | integer |
Minimum: 0; Maximum: 1000000 |
trials[].variants[].outcomes.drivers |
Yes | Array of object |
Max items: 7 |
trials[].variants[].outcomes.drivers[].driver |
Yes | string |
Allowed: PRICE_PATH, VOLATILITY, FLOW, LIQUIDITY, UNLOCK, GAS, RESERVE |
trials[].variants[].outcomes.drivers[].impactQuote |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].outcomes.drivers[].evidence |
Yes | string |
Max length: 1200 |
trials[].variants[].outcomes.drivers[].method |
Yes | Constant DETERMINISTIC_COUNTERFACTUAL_DELTA_V1 |
— |
trials[].variants[].eligible |
Yes | boolean |
— |
trials[].variants[].ineligibilityReasons |
Yes | Array of string |
Max items: 4 |
trials[].variants[].differences |
Yes | Array of object |
Max items: 51 |
trials[].variants[].differences[].metric |
Yes | string |
Allowed: endingValueQuote, turnoverQuote, gasCostQuote, feeIncomeQuote, protocolFeesQuote, platformFeesQuote, minimumDepthQuote, slippagePips, drawdownPips, inventoryPips, reserveBreachProbabilityPips |
trials[].variants[].differences[].percentile |
Yes | At least one of: string; null |
— |
trials[].variants[].differences[].unit |
Yes | string |
Allowed: VERIFIED_QUOTE_ASSET_ATOMIC, ISSUER_INTENT_QUOTE_ATOMIC, PIPS_POINT_DIFFERENCE |
trials[].variants[].differences[].baseline |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].differences[].scenario |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
trials[].variants[].differences[].delta |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,78})$ |
trials[].variants[].differences[].interpretation |
Yes | string |
Allowed: DIFFERENCE_OF_MARGINAL_PERCENTILES, DIFFERENCE_OF_PROBABILITIES |
trials[].ranking |
Yes | object |
Additional properties rejected |
trials[].ranking.status |
Yes | string |
Allowed: BLOCKED, NO_ELIGIBLE_RECOMMENDATION, RANKED |
trials[].ranking.reason |
Yes | At least one of: string; null |
— |
trials[].ranking.entries |
Yes | Array of object |
Max items: 5 |
trials[].ranking.entries[].variant |
Yes | string |
Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY |
trials[].ranking.entries[].rank |
Yes | integer |
Minimum: 1; Maximum: 5 |
trials[].ranking.entries[].objectiveValue |
Yes | string |
Pattern: ^-?(0|[1-9][0-9]{0,77})$ |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Exact definition: #/components/schemas/ResearchComparison in the OpenAPI contract.