Klineo/Docs
Open app ↗

API schemas

DecisionPack

All API schemas

Exactly one of: object; object; object

Field Required at this level Type Description and constraints
oneOf[1].schemaVersion Yes Constant decision-pack-v1 —
oneOf[1].organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[1].packId Yes string Pattern: ^decisionpack_[a-f0-9]{32}$
oneOf[1].sequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[1].resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[1].createdAt 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)))$
oneOf[1].recordedAt 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)))$
oneOf[1].state Yes string Allowed: DRAFT, READY_FOR_REVIEW, DECISION_RECORDED, FOLLOW_UP_DUE, CLOSED, SUPERSEDED
oneOf[1].scope Yes Constant PUBLIC_EVIDENCE_REVIEW —
oneOf[1].coverage Yes Constant PARTIAL —
oneOf[1].question Yes string Min length: 3; Max length: 2000
oneOf[1].project Yes object Additional properties rejected
oneOf[1].project.projectId Yes string Pattern: ^project_[0-9a-f]{32}$
oneOf[1].project.observationSequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[1].project.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[1].healthReport Yes At least one of: object; null —
oneOf[1].healthReport.anyOf[1].question Yes string Min length: 3; Max length: 2000
oneOf[1].healthReport.anyOf[1].relation Yes Constant SUPPORTING_EVIDENCE_ONLY —
oneOf[1].healthReport.anyOf[1].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[1].healthReport.anyOf[1].resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[1].healthReport.anyOf[1].captureHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[1].healthReport.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)))$
oneOf[1].healthReport.anyOf[1].status Yes string Allowed: PARTIAL, ABSTAINED
oneOf[1].assumptions Yes object Additional properties rejected
oneOf[1].assumptions.version Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[1].assumptions.items Yes Array of string Max items: 10
oneOf[1].references Yes object Additional properties rejected
oneOf[1].references.baselineStudy Yes null —
oneOf[1].references.alternativeStudies Yes Array of JSON value Min items: 0; Max items: 0
oneOf[1].references.proposalReview Yes null —
oneOf[1].references.treasuryProjection Yes null —
oneOf[1].references.commercialOrder Yes null —
oneOf[1].unsupportedReferences Yes Array of No value allowed Min items: 4; Max items: 4
oneOf[1].decision Yes At least one of: object; null —
oneOf[1].decision.anyOf[1].choice Yes string Allowed: DO_NOTHING, REQUEST_MORE_EVIDENCE, TAKE_TO_SEPARATE_APPROVAL
oneOf[1].decision.anyOf[1].rationale Yes string Min length: 1; Max length: 4000
oneOf[1].decision.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[1].decision.anyOf[1].recordedAt 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)))$
oneOf[1].decision.anyOf[1].followUpAt Yes At least one of: string; null —
oneOf[1].closure Yes At least one of: object; null —
oneOf[1].closure.anyOf[1].note Yes string Min length: 1; Max length: 4000
oneOf[1].closure.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[1].closure.anyOf[1].recordedAt 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)))$
oneOf[1].supersededBy Yes At least one of: string; null —
oneOf[1].financialAuthority Yes Constant false —
oneOf[1].publicationAuthority Yes Constant false —
oneOf[2].schemaVersion Yes Constant decision-pack-v2 —
oneOf[2].organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].packId Yes string Pattern: ^decisionpack_[a-f0-9]{32}$
oneOf[2].sequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[2].resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].createdAt 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)))$
oneOf[2].recordedAt 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)))$
oneOf[2].state Yes string Allowed: DRAFT, READY_FOR_REVIEW, DECISION_RECORDED, FOLLOW_UP_DUE, CLOSED, SUPERSEDED
oneOf[2].scope Yes Constant RESEARCH_CANDIDATE_REVIEW —
oneOf[2].coverage Yes Constant PARTIAL —
oneOf[2].question Yes string Min length: 3; Max length: 2000
oneOf[2].project Yes object Additional properties rejected
oneOf[2].project.projectId Yes string Pattern: ^project_[0-9a-f]{32}$
oneOf[2].project.observationSequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[2].project.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].healthReport Yes At least one of: object; null —
oneOf[2].healthReport.anyOf[1].question Yes string Min length: 3; Max length: 2000
oneOf[2].healthReport.anyOf[1].relation Yes Constant SUPPORTING_EVIDENCE_ONLY —
oneOf[2].healthReport.anyOf[1].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].healthReport.anyOf[1].resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].healthReport.anyOf[1].captureHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].healthReport.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)))$
oneOf[2].healthReport.anyOf[1].status Yes string Allowed: PARTIAL, ABSTAINED
oneOf[2].assumptions Yes object Additional properties rejected
oneOf[2].assumptions.version Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].assumptions.items Yes Array of string Max items: 10
oneOf[2].references Yes object Additional properties rejected
oneOf[2].references.baselineStudy Yes object Additional properties rejected
oneOf[2].references.baselineStudy.kind Yes Constant RESEARCH_TRIAL —
oneOf[2].references.baselineStudy.runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].references.baselineStudy.protocolHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.baselineStudy.trialKey Yes string Allowed: baseline, alternative-1, alternative-2, alternative-3
oneOf[2].references.baselineStudy.inputHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.baselineStudy.artifactHash Yes At least one of: string; null —
oneOf[2].references.baselineStudy.state Yes string Allowed: QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED
oneOf[2].references.baselineStudy.recordedAt Yes At least one of: string; null —
oneOf[2].references.baselineStudy.failureCode Yes At least one of: string; null —
oneOf[2].references.alternativeStudies Yes Array of object Max items: 3
oneOf[2].references.alternativeStudies[].kind Yes Constant RESEARCH_TRIAL —
oneOf[2].references.alternativeStudies[].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].references.alternativeStudies[].protocolHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.alternativeStudies[].trialKey Yes string Allowed: baseline, alternative-1, alternative-2, alternative-3
oneOf[2].references.alternativeStudies[].inputHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.alternativeStudies[].artifactHash Yes At least one of: string; null —
oneOf[2].references.alternativeStudies[].state Yes string Allowed: QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED
oneOf[2].references.alternativeStudies[].recordedAt Yes At least one of: string; null —
oneOf[2].references.alternativeStudies[].failureCode Yes At least one of: string; null —
oneOf[2].references.proposalReview Yes At least one of: object; null —
oneOf[2].references.proposalReview.anyOf[1].kind Yes Constant CANDIDATE_REVIEW —
oneOf[2].references.proposalReview.anyOf[1].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].references.proposalReview.anyOf[1].resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.proposalReview.anyOf[1].captureHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.proposalReview.anyOf[1].contentHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.proposalReview.anyOf[1].reviewedPackResourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].references.proposalReview.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)))$
oneOf[2].references.proposalReview.anyOf[1].status Yes Constant PARTIAL —
oneOf[2].references.proposalReview.anyOf[1].relation Yes Constant ANALYSIS_REVIEW_ONLY —
oneOf[2].references.treasuryProjection Yes null —
oneOf[2].references.commercialOrder Yes null —
oneOf[2].unsupportedReferences Yes At least one of: Array of No value allowed; Array of No value allowed —
oneOf[2].decision Yes At least one of: object; null —
oneOf[2].decision.anyOf[1].choice Yes string Allowed: DO_NOTHING, REQUEST_MORE_EVIDENCE, TAKE_TO_SEPARATE_APPROVAL
oneOf[2].decision.anyOf[1].rationale Yes string Min length: 1; Max length: 4000
oneOf[2].decision.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[2].decision.anyOf[1].recordedAt 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)))$
oneOf[2].decision.anyOf[1].followUpAt Yes At least one of: string; null —
oneOf[2].closure Yes At least one of: object; null —
oneOf[2].closure.anyOf[1].note Yes string Min length: 1; Max length: 4000
oneOf[2].closure.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[2].closure.anyOf[1].recordedAt 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)))$
oneOf[2].supersededBy Yes At least one of: string; null —
oneOf[2].financialAuthority Yes Constant false —
oneOf[2].publicationAuthority Yes Constant false —
oneOf[2].contentHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].sourceAssociation Yes object Additional properties rejected
oneOf[2].sourceAssociation.relation Yes Constant USER_SELECTED_RESEARCH_CONTEXT —
oneOf[2].sourceAssociation.assertedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[2].sourceAssociation.assertedAt 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)))$
oneOf[2].sourceAssociation.ownershipVerified Yes Constant false —
oneOf[2].sourceAssociation.quoteUnitsVerified Yes Constant false —
oneOf[2].research Yes object Additional properties rejected
oneOf[2].research.runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].research.resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.protocolHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.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)))$
oneOf[2].research.issuerIntent Yes object Additional properties rejected
oneOf[2].research.issuerIntent.id Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].research.issuerIntent.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.issuerIntent.artifactHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.question Yes string Min length: 3; Max length: 2000
oneOf[2].research.relation Yes Constant SUPPORTING_EVIDENCE_ONLY —
oneOf[2].research.objective Yes object Additional properties rejected
oneOf[2].research.objective.metric Yes string Allowed: ENDING_VALUE_P50, MINIMUM_DEPTH_P5, GAS_COST_P50, DRAWDOWN_P95, RESERVE_BREACH_PROBABILITY
oneOf[2].research.objective.direction Yes string Allowed: MAXIMIZE, MINIMIZE
oneOf[2].research.comparisonStatus Yes string Allowed: BASELINE_UNAVAILABLE, COMPLETE, PARTIAL
oneOf[2].research.quote Yes object Additional properties rejected
oneOf[2].research.quote.symbol Yes string Max length: 256
oneOf[2].research.quote.assetId Yes null —
oneOf[2].research.quote.decimals Yes null —
oneOf[2].research.quote.unit Yes Constant ISSUER_INTENT_QUOTE_ATOMIC —
oneOf[2].research.limitations Yes Array of string Min items: 6; Max items: 6
oneOf[2].research.trials Yes Array of object Min items: 1; Max items: 4
oneOf[2].research.trials[].reference Yes object Additional properties rejected
oneOf[2].research.trials[].reference.kind Yes Constant RESEARCH_TRIAL —
oneOf[2].research.trials[].reference.runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[2].research.trials[].reference.protocolHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.trials[].reference.trialKey Yes string Allowed: baseline, alternative-1, alternative-2, alternative-3
oneOf[2].research.trials[].reference.inputHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[2].research.trials[].reference.artifactHash Yes At least one of: string; null —
oneOf[2].research.trials[].reference.state Yes string Allowed: QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED
oneOf[2].research.trials[].reference.recordedAt Yes At least one of: string; null —
oneOf[2].research.trials[].reference.failureCode Yes At least one of: string; null —
oneOf[2].research.trials[].label Yes string Min length: 1; Max length: 160
oneOf[2].research.trials[].comparisonStatus Yes string Allowed: PENDING, FAILED, CANCELLED, INVALID, INCOMPATIBLE, BASELINE_UNAVAILABLE, COMPARABLE
oneOf[2].research.trials[].reasons Yes Array of string Max items: 16
oneOf[2].research.trials[].warningCount Yes integer Minimum: 0; Maximum: 64
oneOf[2].research.trials[].selected Yes At least one of: object; null —
oneOf[2].research.trials[].selected.anyOf[1].variant Yes string Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY
oneOf[2].research.trials[].selected.anyOf[1].eligible Yes boolean —
oneOf[2].research.trials[].selected.anyOf[1].ineligibilityReasons Yes Array of string Max items: 4
oneOf[2].candidate Yes object Additional properties rejected
oneOf[2].candidate.selectedVariant Yes string Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY
oneOf[2].candidate.capitalPlan Yes object Additional properties rejected
oneOf[2].candidate.capitalPlan.kind Yes string Allowed: CURRENT, RECOMMENDED, CONSERVATIVE, CAPITAL_EFFICIENT, EMERGENCY
oneOf[2].candidate.capitalPlan.requiredCapitalQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.deployableCapitalQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.stableReserveQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.emergencyReserveQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.rangeWidthPips Yes integer Minimum: 0; Maximum: 1000000
oneOf[2].candidate.capitalPlan.expectedSlippagePips Yes integer Minimum: 0; Maximum: 1000000
oneOf[2].candidate.capitalPlan.expectedFeeIncomeLowQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.expectedFeeIncomeHighQuote Yes string Pattern: ^-?(0|[1-9][0-9]{0,77})$
oneOf[2].candidate.capitalPlan.inventoryExposurePips Yes integer Minimum: 0; Maximum: 1000000
oneOf[2].candidate.capitalPlan.maximumDailyTurnoverPips Yes integer Minimum: 0; Maximum: 1000000
oneOf[2].candidate.capitalPlan.satisfiesIntent Yes boolean —
oneOf[2].candidate.capitalPlan.reasons Yes Array of string Max items: 64
oneOf[2].candidate.baselineEligible Yes boolean —
oneOf[2].candidate.status Yes string Allowed: BLOCKED_BASELINE_UNAVAILABLE, BLOCKED_BASELINE_INELIGIBLE, INCOMPLETE_ALTERNATIVES, INELIGIBLE_IN_ALTERNATIVES, ELIGIBLE_IN_CAPTURED_SCENARIOS
oneOf[2].candidate.rankingScope Yes Constant WITHIN_SCENARIO_VARIANTS —
oneOf[3].schemaVersion Yes Constant decision-pack-v3 —
oneOf[3].organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[3].packId Yes string Pattern: ^decisionpack_[a-f0-9]{32}$
oneOf[3].sequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[3].resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].createdAt 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)))$
oneOf[3].recordedAt 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)))$
oneOf[3].state Yes string Allowed: DRAFT, READY_FOR_REVIEW, DECISION_RECORDED, FOLLOW_UP_DUE, CLOSED, SUPERSEDED
oneOf[3].scope Yes Constant TREASURY_SCENARIO_REVIEW —
oneOf[3].coverage Yes Constant PARTIAL —
oneOf[3].question Yes string Min length: 3; Max length: 2000
oneOf[3].project Yes object Additional properties rejected
oneOf[3].project.projectId Yes string Pattern: ^project_[0-9a-f]{32}$
oneOf[3].project.observationSequence Yes string Pattern: ^[1-9][0-9]{0,17}$
oneOf[3].project.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].healthReport Yes At least one of: object; null —
oneOf[3].healthReport.anyOf[1].question Yes string Min length: 3; Max length: 2000
oneOf[3].healthReport.anyOf[1].relation Yes Constant SUPPORTING_EVIDENCE_ONLY —
oneOf[3].healthReport.anyOf[1].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
oneOf[3].healthReport.anyOf[1].resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].healthReport.anyOf[1].captureHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].healthReport.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)))$
oneOf[3].healthReport.anyOf[1].status Yes string Allowed: PARTIAL, ABSTAINED
oneOf[3].assumptions Yes object Additional properties rejected
oneOf[3].assumptions.version Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].assumptions.items Yes Array of string Max items: 10
oneOf[3].references Yes object Additional properties rejected
oneOf[3].references.baselineStudy Yes null —
oneOf[3].references.alternativeStudies Yes Array of JSON value Min items: 0; Max items: 0
oneOf[3].references.proposalReview Yes null —
oneOf[3].references.treasuryProjection Yes object Additional properties rejected
oneOf[3].references.treasuryProjection.kind Yes Constant DECLARED_TREASURY_SCENARIO —
oneOf[3].references.treasuryProjection.projectionId Yes string Pattern: ^treasury_projection_[0-9a-f]{32}$
oneOf[3].references.treasuryProjection.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].references.treasuryProjection.modelHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].references.treasuryProjection.sourceHash Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].references.treasuryProjection.assumptions Yes object Additional properties rejected
oneOf[3].references.treasuryProjection.assumptions.id Yes string Pattern: ^treasury_assumptions_[0-9a-f]{32}$
oneOf[3].references.treasuryProjection.assumptions.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].references.treasuryProjection.reconciliation Yes object Additional properties rejected
oneOf[3].references.treasuryProjection.reconciliation.id Yes string Pattern: ^reconciliation_[0-9a-f]{32}$
oneOf[3].references.treasuryProjection.reconciliation.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
oneOf[3].references.treasuryProjection.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)))$
oneOf[3].references.treasuryProjection.relation Yes Constant HISTORICAL_SUPPORTING_EVIDENCE_ONLY —
oneOf[3].references.treasuryProjection.provenance Yes Constant DECLARED_SCENARIO —
oneOf[3].references.treasuryProjection.spendability Yes Constant NOT_ESTABLISHED —
oneOf[3].references.commercialOrder Yes null —
oneOf[3].unsupportedReferences Yes Array of No value allowed Min items: 3; Max items: 3
oneOf[3].decision Yes At least one of: object; null —
oneOf[3].decision.anyOf[1].choice Yes string Allowed: DO_NOTHING, REQUEST_MORE_EVIDENCE, TAKE_TO_SEPARATE_APPROVAL
oneOf[3].decision.anyOf[1].rationale Yes string Min length: 1; Max length: 4000
oneOf[3].decision.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[3].decision.anyOf[1].recordedAt 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)))$
oneOf[3].decision.anyOf[1].followUpAt Yes At least one of: string; null —
oneOf[3].closure Yes At least one of: object; null —
oneOf[3].closure.anyOf[1].note Yes string Min length: 1; Max length: 4000
oneOf[3].closure.anyOf[1].recordedBy Yes string Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
oneOf[3].closure.anyOf[1].recordedAt 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)))$
oneOf[3].supersededBy Yes At least one of: string; null —
oneOf[3].financialAuthority Yes Constant false —
oneOf[3].publicationAuthority Yes Constant false —

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/DecisionPack in the OpenAPI contract.