Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create’s answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call’s run is an ImportExamplesResponse, whose results carry each example’s feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import’s, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment’s run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).
An API key, sent as Authorization: Bearer <key>. Each operation lists the scope its key needs: decisions:evaluate (evaluate and read evaluations), decisions:feedback (your app's feedback) or decisions:develop (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.
The environment of the key that made the call: production or test. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.
A name you choose for this decision, such as refund-exception: a lowercase letter, then up to 127 of a-z 0-9 _ . -. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Moonbounce Decisions API","colors":{"primary":"#1D5AB5","light":"#74A8F0","dark":"#478EF0"},"logo":{"light":"https://mintcdn.com/moonbounce/mWuXGW-nUJSEdABp/logo/lockup-light.svg?fit=max\u0026auto=format\u0026n=mWuXGW-nUJSEdABp\u0026q=85\u0026s=367a5dedb5799a16c5737d136af68dc5","dark":"https://mintcdn.com/moonbounce/mWuXGW-nUJSEdABp/logo/lockup-dark.svg?fit=max\u0026auto=format\u0026n=mWuXGW-nUJSEdABp\u0026q=85\u0026s=3b3e891bc9f1e5b26bee272f878ecd4f","href":"https://moonbounce.ai"},"favicon":{"light":"https://mintcdn.com/moonbounce/XgvwJtU0Z2TC5k2H/logo/symbol-light.svg?fit=max\u0026auto=format\u0026n=XgvwJtU0Z2TC5k2H\u0026q=85\u0026s=cd361cb434cc5cabaa2240471ebc780a","dark":"https://mintcdn.com/moonbounce/XgvwJtU0Z2TC5k2H/logo/symbol-dark.svg?fit=max\u0026auto=format\u0026n=XgvwJtU0Z2TC5k2H\u0026q=85\u0026s=30d3353b4d3a5756ecfadd153e271d89"},"background":{"color":{"light":"#FFFEEE","dark":"#000000"}},"navbar":{"primary":{"type":"button","label":"Request access","href":"https://app.moonbounce.ai"}},"banner":{"content":"Looking for the Clavata policy and labeling API? Those docs are at [docs.clavata.ai](https://docs.clavata.ai). You are on the docs for the Moonbounce decisions platform.","dismissible":true,"type":"info","color":{"light":"#1D5AB5","dark":"#1D5AB5"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moonbounce","hasAudioNarration":false,"actualSubdomain":"moonbounce","customDomains":["docs.moonbounce.ai"],"gitSource":{"type":"github","owner":"clavataai","repo":"decisions-platform","deployBranch":"main","contentDirectory":"docs/site","isPrivate":true,"mountPath":"","label":"","_id":"6ae8f7a905e268646b31d443"},"entitlements":{},"buildId":"6af2d07010b1a0d7de12f5ab","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API reference","count":37},{"language":"default","tag":"Guides","count":16},{"language":"default","tag":"Decisions","count":7},{"language":"default","tag":"Suggestions","count":6},{"language":"default","tag":"Feedback","count":5},{"language":"default","tag":"Run a decision","count":4},{"language":"default","tag":"Objective","count":4},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Build a decision","count":3},{"language":"default","tag":"Improve a decision","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"brand.css","content":":root{--mb-font-sans: \"Helvetica Neue\", Helvetica, Arial, sans-serif;--mb-font-mono: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;--mb-rule: rgb(225, 230, 240);--mb-rule-strong: rgb(134, 134, 134)}.dark{--mb-rule: rgb(68, 69, 74);--mb-rule-strong: rgb(134, 134, 134)}body{font-family:var(--mb-font-sans)}h1,h2,h3,h4,h5,h6{font-family:var(--mb-font-sans);font-weight:600;letter-spacing:-0.011em}#page-title{letter-spacing:-0.03em;line-height:1.05}code,pre,kbd,samp{font-family:var(--mb-font-mono)}#navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"]>span.absolute{background:rgb(0, 0, 0);border-radius:999px}#navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"] .text-white,#navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"] svg{color:rgb(255, 254, 238)}.dark #navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"]>span.absolute{background:rgb(255, 254, 238)}.dark #navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"] .text-white,.dark #navbar a[target=\"_blank\"][href=\"https://app.moonbounce.ai\"] svg{color:rgb(0, 0, 0)}.card,.callout,.code-block,.accordion,table{border-radius:0;box-shadow:none}.card{border:1px solid var(--mb-rule)}.card:hover{border-color:var(--mb-rule-strong)}"}],"page":{"pagePath":"api-reference/previews-\u0026-tests/get-a-run","slug":"/api-reference/previews-\u0026-tests/get-a-run","pageMetadata":{"title":"Get a run","description":"Reads back a run until its `expires_at`: the body its create call answered, byte for byte, with the `include` and `results` that call used. It takes no query parameters and has no pages, so it is as large as the create's answer. To judge a run, pass its `run_id` to loss_report, which reads it without returning the results. A run of `items` or `cases` (createRun) is a Run; an import_examples call's run is an ImportExamplesResponse, whose results carry each example's `feedback_id`. Reading a run of `items` needs the `decisions:evaluate` scope; a run of `items_from` or stored `cases`, or an import's, needs `decisions:develop` (403 INSUFFICIENT_SCOPE otherwise). Another environment's run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/runs/{run_id}","href":"/api-reference/previews-\u0026-tests/get-a-run","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Reads back a run until its \", _jsx(_components.code, {\n children: \"expires_at\"\n }), \": the body its create call answered, byte for byte, with the \", _jsx(_components.code, {\n children: \"include\"\n }), \" and \", _jsx(_components.code, {\n children: \"results\"\n }), \" that call used. It takes no query parameters and has no pages, so it is as large as the create’s answer. To judge a run, pass its \", _jsx(_components.code, {\n children: \"run_id\"\n }), \" to loss_report, which reads it without returning the results. A run of \", _jsx(_components.code, {\n children: \"items\"\n }), \" or \", _jsx(_components.code, {\n children: \"cases\"\n }), \" (createRun) is a Run; an import_examples call’s run is an ImportExamplesResponse, whose results carry each example’s \", _jsx(_components.code, {\n children: \"feedback_id\"\n }), \". Reading a run of \", _jsx(_components.code, {\n children: \"items\"\n }), \" needs the \", _jsx(_components.code, {\n children: \"decisions:evaluate\"\n }), \" scope; a run of \", _jsx(_components.code, {\n children: \"items_from\"\n }), \" or stored \", _jsx(_components.code, {\n children: \"cases\"\n }), \", or an import’s, needs \", _jsx(_components.code, {\n children: \"decisions:develop\"\n }), \" (403 INSUFFICIENT_SCOPE otherwise). Another environment’s run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get a run","description":"Reads back a run until its `expires_at`: the body its create call answered, byte for byte, with the `include` and `results` that call used. It takes no query parameters and has no pages, so it is as large as the create's answer. To judge a run, pass its `run_id` to loss_report, which reads it without returning the results. A run of `items` or `cases` (createRun) is a Run; an import_examples call's run is an ImportExamplesResponse, whose results carry each example's `feedback_id`. Reading a run of `items` needs the `decisions:evaluate` scope; a run of `items_from` or stored `cases`, or an import's, needs `decisions:develop` (403 INSUFFICIENT_SCOPE otherwise). Another environment's run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/runs/{run_id}","href":"/api-reference/previews-\u0026-tests/get-a-run","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getRun","x-mcp-annotations":{"readOnlyHint":true,"openWorldHint":false},"tags":["Previews \u0026 tests"],"security":["e880036a-09bc-453b-bf38-e24044523665","416f8ce3-05bb-4fa4-b375-b69b4f81b312"],"summary":"Get a run","description":"Reads back a run until its `expires_at`: the body its create call answered, byte for byte, with the `include` and `results` that call used. It takes no query parameters and has no pages, so it is as large as the create's answer. To judge a run, pass its `run_id` to loss_report, which reads it without returning the results. A run of `items` or `cases` (createRun) is a Run; an import_examples call's run is an ImportExamplesResponse, whose results carry each example's `feedback_id`. Reading a run of `items` needs the `decisions:evaluate` scope; a run of `items_from` or stored `cases`, or an import's, needs `decisions:develop` (403 INSUFFICIENT_SCOPE otherwise). Another environment's run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).","parameters":["b242e117-c065-4442-bc24-50d52f736bfc"],"responses":{"200":"801a8f75-3120-47a9-be5b-ceb3e267a832","400":"9765d77e-b96d-4a33-98e0-93e6e3223e2d","401":"a9723c74-1ace-434d-a3d8-6d6eff309479","403":"f433e9e4-0f00-4335-9e66-14941a539699","404":"00874ebd-960d-4cbc-8dcf-f12d981d4bce","429":"08a9672e-e9bd-4131-9f28-2a34ae29d7cd","503":"99424176-a0af-4757-95c7-141842a45d9c"},"method":"get","type":"path","servers":["a52a69e5-36be-4c74-afaf-f5a9d47fcd0c"],"path":"/v1/runs/{run_id}","baseUrlOptions":["https://api.moonbounce.ai"],"title":"Get a run","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"b242e117-c065-4442-bc24-50d52f736bfc":{"schema":{"type":"string","pattern":"^evr_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"run_id","in":"path"}},"responses":{"801a8f75-3120-47a9-be5b-ceb3e267a832":{"description":"The run as its create call answered it: a Run from createRun, or an ImportExamplesResponse from import_examples","content":{"application/json":{"examples":{"labeled_items":{"title":"labeled_items","value":{"run_id":"evr_0199f2c4-1a2b-7c3d-8e4f-5a6b7c8d9e20","expires_at":"2026-11-07T10:00:00.000Z","dry_run":true,"environment":"test","decision_id":"refund-exception","version":{"structure_hash":"sha256:bdad6e5b1b879209305f1555b43ec62666a4d74a925280c66e54cc4dc07bb1ae","number":1},"model":{"id":"jev-1.14.0","resolved_model":"jev-1.14.0","revision":1,"profile":"defective=jev:jev-1.14.0@jev@0.1.0,item_used=jev:jev-1.14.0@jev@0.1.0"},"counts":{"total":2,"decided":2,"computed":0,"abstained":0,"failed":0,"labeled":2},"cost":{"model_calls":2,"questions":4,"input_tokens":1040,"output_tokens":8,"usd_micros":42},"results":[{"item_id":"t-001","id":"dry_0199f2c4-1a2b-7c3d-8e4f-5a6b7c8d9e21","status":"decided","outcome":"escalate","cost":{"model_calls":1,"questions":2,"input_tokens":520,"output_tokens":4,"usd_micros":21}},{"item_id":"t-002","id":"dry_0199f2c4-1a2b-7c3d-8e4f-5a6b7c8d9e22","status":"decided","outcome":"grant","cost":{"model_calls":1,"questions":2,"input_tokens":520,"output_tokens":4,"usd_micros":21}}]}}},"schema":{"oneOf":[{"type":"object","required":["run_id","expires_at","dry_run","environment","decision_id","version","model","counts","cost","results"],"x-moonbounce-sdk-known-fields":true,"properties":{"run_id":{"type":"string","pattern":"^evr_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"Pass it to loss_report, or read this response back with getRun; kept until `expires_at`. A stored run's evaluations stay after it expires.","isRequired":true,"uniqueKey":"oneOf.0.run_id","typeLabel":"string"},"expires_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"oneOf.0.expires_at","typeLabel":"string\u003cdate-time>"},"dry_run":{"type":"boolean","description":"Whether the items were dry runs (no evaluation stored; the run keeps their results) or stored as evaluations.","isRequired":true,"uniqueKey":"oneOf.0.dry_run","typeLabel":"boolean"},"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.environment","typeLabel":"enum\u003cstring>"},"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.decision_id","typeLabel":"string"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.model","typeLabel":"object"},"counts":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.counts.total","typeLabel":"integer"},"decided":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.counts.decided","typeLabel":"integer"},"computed":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.counts.computed","typeLabel":"integer"},"abstained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.counts.abstained","typeLabel":"integer"},"failed":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.counts.failed","typeLabel":"integer"},"labeled":{"type":"integer","minimum":0,"description":"Items that carried `expected`.","isRequired":true,"uniqueKey":"oneOf.0.counts.labeled","typeLabel":"integer"}},"required":["total","decided","computed","abstained","failed","labeled"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.counts","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.cost.cache_hits","typeLabel":"integer"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.cost","typeLabel":"object"},"results":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"string","minLength":1,"maxLength":256,"description":"The item's id; a stored case's `evaluation_id`.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].item_id","typeLabel":"string"},"status":{"type":"string","enum":["decided","computed","abstained","failed"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"evaluation_id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"A stored case: the evaluation replayed.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation_id","typeLabel":"string"},"id":{"type":"string","description":"The item's evaluation id, as one evaluate gives it: `evl_` when stored, `dry_` on a dry run (it names only the usage). Absent on a failed item.","uniqueKey":"oneOf.0.results.items.[INDEX].id","typeLabel":"string"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].outcome","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].value","typeLabel":"number"},"via":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].missing.items.[INDEX]","typeLabel":"string"},"description":"Questions on the result's path with no answer.","uniqueKey":"oneOf.0.results.items.[INDEX].missing","typeLabel":"string[]"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","maximum":1,"minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"object","description":"A choice question's answer.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A score question's answer.","required":["type","score","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].answers.additionalProperties","typeLabel":"number · object · object · null"},"description":"With `include: [\"answers\"]`: each question's answer (P(true) for a noul, an object for a choice or score), null when it has none.","uniqueKey":"oneOf.0.results.items.[INDEX].answers","typeLabel":"object"},"attributes":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":200,"uniqueKey":"oneOf.0.results.items.[INDEX].attributes.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].attributes.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].attributes.additionalProperties.oneOf.2","typeLabel":"boolean"}],"uniqueKey":"oneOf.0.results.items.[INDEX].attributes.additionalProperties","typeLabel":"string | number | boolean"},"description":"With `include: [\"attributes\"]`, when the decision keeps content (absent when its `store_state` is false).","uniqueKey":"oneOf.0.results.items.[INDEX].attributes","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].cost.cache_hits","typeLabel":"integer"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"description":"What this item's model calls cost (money): on a failed item, what they spent before failing; absent when none ran.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].cost","typeLabel":"object"},"evaluation":{"oneOf":[{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status","value"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.cost","typeLabel":"object"},"status":{"type":"string","enum":["computed"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.status","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.value","typeLabel":"number"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.dry_run","typeLabel":"any"},"outcome":{"not":{},"description":"Must be absent: a computed result is a number, with no outcome.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.outcome","typeLabel":"any"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.0","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status","outcome"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.cost","typeLabel":"object"},"status":{"type":"string","enum":["decided"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.status","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.outcome","typeLabel":"string"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.dry_run","typeLabel":"any"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.value","typeLabel":"number"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.1","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.cost","typeLabel":"object"},"status":{"type":"string","enum":["abstained"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.status","typeLabel":"enum\u003cstring>"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.dry_run","typeLabel":"any"},"value":{"not":{},"description":"Must be absent: an abstained result has no value.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.value","typeLabel":"any"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.outcome","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.2","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status","value"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.cost","typeLabel":"object"},"status":{"type":"string","enum":["computed"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.status","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.value","typeLabel":"number"},"outcome":{"not":{},"description":"Must be absent: a computed result is a number, with no outcome.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.outcome","typeLabel":"any"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.3","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status","outcome"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.cost","typeLabel":"object"},"status":{"type":"string","enum":["decided"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.status","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.outcome","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.value","typeLabel":"number"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.4","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.cost","typeLabel":"object"},"status":{"type":"string","enum":["abstained"],"isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.status","typeLabel":"enum\u003cstring>"},"value":{"not":{},"description":"Must be absent: an abstained result has no value.","x-moonbounce-absent":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.value","typeLabel":"any"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.outcome","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation.oneOf.5","typeLabel":"object"}],"uniqueKey":"oneOf.0.results.items.[INDEX].evaluation","typeLabel":"object"},"error":{"type":"object","properties":{"code":{"type":"string","description":"The reason, such as `ENGINE_FAILED`, `ENGINE_UNAVAILABLE` or `NOT_STARTED`.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].error.message","typeLabel":"string"},"retryable":{"type":"boolean","description":"Sending the item again may work.","isRequired":true,"uniqueKey":"oneOf.0.results.items.[INDEX].error.retryable","typeLabel":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true,"description":"Why it failed; only with status `failed`.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX].error","typeLabel":"object"}},"required":["item_id","status"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.results.items.[INDEX]","typeLabel":"object"},"description":"One per item `results` lists (every item by default; with `failed` only the failed ones, with `none` none), in item order (cases: newest label first).","isRequired":true,"uniqueKey":"oneOf.0.results","typeLabel":"object[]"},"cases":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"description":"Cases that match the filters, across every page; with `evaluation_ids`, those found.","isRequired":true,"uniqueKey":"oneOf.0.cases.total","typeLabel":"integer"},"excluded":{"type":"object","properties":{"withdrawn":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.withdrawn","typeLabel":"integer"},"retired":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.retired","typeLabel":"integer"},"excluded":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.excluded","typeLabel":"integer"},"contested":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.contested","typeLabel":"integer"},"no_consensus":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.no_consensus","typeLabel":"integer"},"no_outcome":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.no_outcome","typeLabel":"integer"},"outcome_not_in_result":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.outcome_not_in_result","typeLabel":"integer"},"no_deciding_ballot":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.no_deciding_ballot","typeLabel":"integer"},"attribute_inputs_unavailable":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.attribute_inputs_unavailable","typeLabel":"integer"},"duplicate_group":{"type":"integer","minimum":1,"uniqueKey":"oneOf.0.cases.excluded.duplicate_group","typeLabel":"integer"}},"description":"Evaluations with feedback that are not cases, by reason: `withdrawn` (all feedback withdrawn), `retired` (feedback older than the last policy change), `excluded` (flagged input_broken), `contested` (reviewers disagree), `no_consensus` (no feedback that decides an outcome), `no_outcome` (feedback rules outcomes out without naming one), `outcome_not_in_result` (expected outcome not in `outcomes`), `no_deciding_ballot`, `attribute_inputs_unavailable` (stored before attribute inputs were kept, with a default that can't be read back), `duplicate_group` (another evaluation in its group counts instead: the same item, or near-identical content with the same label).","isRequired":true,"uniqueKey":"oneOf.0.cases.excluded","typeLabel":"object"},"next_cursor":{"oneOf":[{"type":"string","description":"Pass back in `cases.cursor` for the next page.","isRequired":true,"uniqueKey":"oneOf.0.cases.next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pass back in `cases.cursor` for the next page.","isRequired":true,"uniqueKey":"oneOf.0.cases.next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.cases.next_cursor","typeLabel":"string | null"}},"required":["total","excluded","next_cursor"],"additionalProperties":true,"description":"With `cases`: which cases the run took.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.0.cases","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["run_id","expires_at","dry_run","environment","decision_id","version","model","counts","cost","results"],"x-moonbounce-sdk-known-fields":true,"properties":{"run_id":{"type":"string","pattern":"^evr_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"Pass it to loss_report, or read this response back with getRun; kept until `expires_at`. A stored run's evaluations stay after it expires.","isRequired":true,"uniqueKey":"oneOf.1.run_id","typeLabel":"string"},"expires_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"oneOf.1.expires_at","typeLabel":"string\u003cdate-time>"},"dry_run":{"type":"boolean","description":"Whether the items were dry runs (no evaluation stored; the run keeps their results) or stored as evaluations.","isRequired":true,"uniqueKey":"oneOf.1.dry_run","typeLabel":"boolean"},"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.environment","typeLabel":"enum\u003cstring>"},"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.decision_id","typeLabel":"string"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.model","typeLabel":"object"},"counts":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.counts.total","typeLabel":"integer"},"decided":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.counts.decided","typeLabel":"integer"},"computed":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.counts.computed","typeLabel":"integer"},"abstained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.counts.abstained","typeLabel":"integer"},"failed":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.counts.failed","typeLabel":"integer"},"labeled":{"type":"integer","minimum":0,"description":"Items that carried `expected`.","isRequired":true,"uniqueKey":"oneOf.1.counts.labeled","typeLabel":"integer"}},"required":["total","decided","computed","abstained","failed","labeled"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.counts","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.cost.cache_hits","typeLabel":"integer"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.cost","typeLabel":"object"},"results":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"string","minLength":1,"maxLength":256,"description":"The item's id; a stored case's `evaluation_id`.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].item_id","typeLabel":"string"},"status":{"type":"string","enum":["decided","computed","abstained","failed"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"evaluation_id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"A stored case: the evaluation replayed.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation_id","typeLabel":"string"},"id":{"type":"string","description":"The item's evaluation id, as one evaluate gives it: `evl_` when stored, `dry_` on a dry run (it names only the usage). Absent on a failed item.","uniqueKey":"oneOf.1.results.items.[INDEX].id","typeLabel":"string"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].outcome","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].value","typeLabel":"number"},"via":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].missing.items.[INDEX]","typeLabel":"string"},"description":"Questions on the result's path with no answer.","uniqueKey":"oneOf.1.results.items.[INDEX].missing","typeLabel":"string[]"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"number","maximum":1,"minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"object","description":"A choice question's answer.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A score question's answer.","required":["type","score","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].answers.additionalProperties","typeLabel":"number · object · object · null"},"description":"With `include: [\"answers\"]`: each question's answer (P(true) for a noul, an object for a choice or score), null when it has none.","uniqueKey":"oneOf.1.results.items.[INDEX].answers","typeLabel":"object"},"attributes":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":200,"uniqueKey":"oneOf.1.results.items.[INDEX].attributes.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].attributes.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].attributes.additionalProperties.oneOf.2","typeLabel":"boolean"}],"uniqueKey":"oneOf.1.results.items.[INDEX].attributes.additionalProperties","typeLabel":"string | number | boolean"},"description":"With `include: [\"attributes\"]`, when the decision keeps content (absent when its `store_state` is false).","uniqueKey":"oneOf.1.results.items.[INDEX].attributes","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].cost.cache_hits","typeLabel":"integer"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"description":"What this item's model calls cost (money): on a failed item, what they spent before failing; absent when none ran.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].cost","typeLabel":"object"},"evaluation":{"oneOf":[{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status","value"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.cost","typeLabel":"object"},"status":{"type":"string","enum":["computed"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.status","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.value","typeLabel":"number"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.dry_run","typeLabel":"any"},"outcome":{"not":{},"description":"Must be absent: a computed result is a number, with no outcome.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.outcome","typeLabel":"any"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.0","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status","outcome"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.cost","typeLabel":"object"},"status":{"type":"string","enum":["decided"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.status","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.outcome","typeLabel":"string"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.dry_run","typeLabel":"any"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.value","typeLabel":"number"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.1","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","answers","aggregations","moonbounce","version","model","cost","status"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.id","typeLabel":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.cost","typeLabel":"object"},"status":{"type":"string","enum":["abstained"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.status","typeLabel":"enum\u003cstring>"},"dry_run":{"not":{},"description":"Must be absent: only a dry run sets `dry_run`.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.dry_run","typeLabel":"any"},"value":{"not":{},"description":"Must be absent: an abstained result has no value.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.value","typeLabel":"any"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.outcome","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.2","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status","value"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.cost","typeLabel":"object"},"status":{"type":"string","enum":["computed"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.status","typeLabel":"enum\u003cstring>"},"value":{"type":"number","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.value","typeLabel":"number"},"outcome":{"not":{},"description":"Must be absent: a computed result is a number, with no outcome.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.outcome","typeLabel":"any"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.3","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status","outcome"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.cost","typeLabel":"object"},"status":{"type":"string","enum":["decided"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.status","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.outcome","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.value","typeLabel":"number"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.4","typeLabel":"object"},{"type":"object","description":"With `include: [\"evaluation\"]`: what evaluate returns for this item on its own (absent on a failed item).","required":["environment","id","dry_run","answers","aggregations","moonbounce","version","model","cost","status"],"x-moonbounce-sdk-known-fields":true,"properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; decisions and their versions belong to the whole organization.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.environment","typeLabel":"enum\u003cstring>"},"id":{"type":"string","pattern":"^dry_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.id","typeLabel":"string"},"dry_run":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.dry_run","typeLabel":"enum\u003cboolean>"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","noul"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"noul":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0.noul","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["noul"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","choice","probabilities","confidence"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"choice":{"type":"string","description":"The chosen option: one of the most likely.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.choice","typeLabel":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.probabilities.additionalProperties","typeLabel":"number"},"description":"Each option's probability.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3.confidence","typeLabel":"number"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["choice"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","score","probabilities","confidence","legend"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Σ level × probability, from 0 to the top level.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.score","typeLabel":"number"},"probabilities":{"type":"object","additionalProperties":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.probabilities.additionalProperties","typeLabel":"number"},"description":"Each level's probability, keyed by its number as a string (\"0\", \"1\", …).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.probabilities","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.confidence","typeLabel":"number"},"legend":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.legend.additionalProperties","typeLabel":"any"},"description":"Each level's description, keyed by its number, as the model returned it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6.legend","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","abstained"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"abstained":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7.abstained","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","description":"A question's answer as System One returns it, by `type`: `noul`, `choice` or `score`. The types are an open catalog: skip an answer whose type you don't know.","required":["type","failed"],"x-moonbounce-sdk-known-fields":true,"properties":{"type":{"type":"string","enum":["score"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"failed":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8.failed","typeLabel":"enum\u003cboolean>"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers.additionalProperties","typeLabel":"object"},"description":"Each question's answer, as System One returns it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.answers","typeLabel":"object"},"aggregations":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.type","typeLabel":"string"},"value":{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.value","typeLabel":"number"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.outcome","typeLabel":"string"},"via":{"type":"string","description":"A zero-based rule index, `cases.\u003clabel>` for an exact matched case, or `else` for the fallback.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.via","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.missing.items.[INDEX]","typeLabel":"string"},"description":"weighted_mean only: the inputs dropped for having no answer, as written (`questions.x`).","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.missing","typeLabel":"string[]"},"abstained":{"type":"boolean","enum":[true],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties.abstained","typeLabel":"enum\u003cboolean>"}},"required":["type"],"additionalProperties":true,"description":"An aggregation's value. `value` for numbers (for bands, the input it cut); `outcome` for bands, rules and match; `via` is the zero-based rule index, `cases.\u003clabel>` for a matched case, or `else` for the fallback; `abstained` when unknown.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations.additionalProperties","typeLabel":"object"},"description":"Every aggregation's result. The result's own aggregation carries `via` when it is bands, rules or match.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.aggregations","typeLabel":"object"},"moonbounce":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","description":"A name you choose for this decision, such as `refund-exception`: a lowercase letter, then up to 127 of `a-z 0-9 _ . -`. Unique in your organization and shared by its test and production keys. The first registration or evaluation under a new one creates the decision.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.decision_id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.item_id","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":512,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Caller key-values, stored with the evaluation and never shown to the model. Keys starting `mb.` are reserved for Moonbounce provenance: `mb.commit`, `mb.branch`, `mb.service` and `mb.release`, which say where a call came from.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.metadata","typeLabel":"object"},"summary":{"type":"string","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce.summary","typeLabel":"string"}},"required":["decision_id","item_id"],"additionalProperties":true,"description":"What you sent in `moonbounce`, echoed. What ran is in `version` and `model`.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.moonbounce","typeLabel":"object"},"version":{"type":"object","properties":{"structure_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.version.structure_hash","typeLabel":"string"},"number":{"oneOf":[{"type":"integer","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.version.number.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The version's number under the decision (1, 2, 3...). Null when the structure isn't registered: a dry run or a preview of a structure nobody registered. The hash is the identity.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.version.number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.version.number","typeLabel":"integer | null"}},"required":["structure_hash","number"],"additionalProperties":true,"description":"The version that ran.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.version","typeLabel":"object"},"model":{"type":"object","properties":{"id":{"type":"string","description":"The model the decision's setting names, as `GET .../model` reports it and `PUT .../model` takes it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.id","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model that answered.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.resolved_model","typeLabel":"string"},"revision":{"oneOf":[{"type":"integer","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.revision.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"The model setting's revision it ran on. Null when no setting was stored in the environment, so the deployment default applied.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.revision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.revision","typeLabel":"integer | null"},"profile":{"type":"string","description":"Every question's model and connector, as one opaque string. Compare it for equality (two runs are comparable when their profiles match); don't parse it.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model.profile","typeLabel":"string"}},"required":["id","resolved_model","revision","profile"],"additionalProperties":true,"description":"The model that answered.","x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.model","typeLabel":"object"},"cost":{"type":"object","properties":{"model_calls":{"type":"integer","minimum":0,"description":"Upstream model calls, retries included. One call can answer several questions (Jev compiles them into one).","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.model_calls","typeLabel":"integer"},"questions":{"type":"integer","minimum":0,"description":"Questions sent to a model. An answer from the cache, or one a stored case kept, is not counted.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.questions","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.output_tokens","typeLabel":"integer"},"usd_micros":{"type":"integer","minimum":0,"description":"What the model calls cost, in millionths of a US dollar.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.usd_micros","typeLabel":"integer"},"cache_hits":{"type":"integer","minimum":0,"description":"Questions answered from the answer cache, when any were: previews and case runs always report it, evaluate and imports only when the cache served an answer.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.cache_hits","typeLabel":"integer"},"calls":{"type":"array","items":{"type":"object","properties":{"questions":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].questions.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].questions","typeLabel":"string[]"},"reads":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256,"description":"`state.\u003ckey>` or a nested object path such as `state.order.customer.tier`: keys of an object `state`. A key has no `.`, `[` or `]`. Array indexes are not supported yet.","examples":["state.message","state.order.order_total_usd"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].reads.items.[INDEX]","typeLabel":"string"},"description":"The paths sent, as the questions wrote them (`state.message`); absent when the whole state was.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].reads","typeLabel":"string[]"},"input_tokens":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX].input_tokens","typeLabel":"integer"}},"required":["questions"],"additionalProperties":true,"description":"One upstream System One call.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls.items.[INDEX]","typeLabel":"object"},"description":"Each upstream call: which questions it answered and what it read.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost.calls","typeLabel":"object[]"}},"required":["model_calls","questions","input_tokens","output_tokens","usd_micros"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.cost","typeLabel":"object"},"status":{"type":"string","enum":["abstained"],"isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.status","typeLabel":"enum\u003cstring>"},"value":{"not":{},"description":"Must be absent: an abstained result has no value.","x-moonbounce-absent":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.value","typeLabel":"any"},"outcome":{"type":"string","minLength":1,"maxLength":200,"description":"An outcome name, or the exact enum label when a string attribute is the result.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.outcome","typeLabel":"string"},"missing":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"description":"A feature's path: `questions.\u003cname>`, `attributes.\u003cname>` or `aggregations.\u003cname>`.","examples":["questions.asks_for_refund","aggregations.band"],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.missing.items.[INDEX]","typeLabel":"string"},"description":"The questions the result depends on (through `result` and every aggregation on its path) that have no answer, abstained or failed, as `questions.x` paths in authored question order. Absent when none is missing; reported for every status. A caller who must not act on partial evidence checks that it is absent, for example `status === \"decided\" \u0026\u0026 !missing`.","uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5.missing","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation.oneOf.5","typeLabel":"object"}],"uniqueKey":"oneOf.1.results.items.[INDEX].evaluation","typeLabel":"object"},"error":{"type":"object","properties":{"code":{"type":"string","description":"The reason, such as `ENGINE_FAILED`, `ENGINE_UNAVAILABLE` or `NOT_STARTED`.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].error.message","typeLabel":"string"},"retryable":{"type":"boolean","description":"Sending the item again may work.","isRequired":true,"uniqueKey":"oneOf.1.results.items.[INDEX].error.retryable","typeLabel":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true,"description":"Why it failed; only with status `failed`.","x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX].error","typeLabel":"object"},"feedback_id":{"type":"string","pattern":"^fbk_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"The example's labels as feedback; absent on a failed example.","uniqueKey":"oneOf.1.results.items.[INDEX].feedback_id","typeLabel":"string"}},"required":["item_id","status"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"oneOf.1.results.items.[INDEX]","typeLabel":"object"},"description":"One per example, in order (with `items_from`, the upload's lines in order). A failed example stored no evaluation and no feedback: send it again in a new call.","isRequired":true,"uniqueKey":"oneOf.1.results","typeLabel":"object[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"9765d77e-b96d-4a33-98e0-93e6e3223e2d":{"description":"Invalid request: `param` names the field at fault when one applies","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"a9723c74-1ace-434d-a3d8-6d6eff309479":{"description":"Missing or invalid API key (reason KEY_INVALID)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"f433e9e4-0f00-4335-9e66-14941a539699":{"description":"The key may not do this","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"00874ebd-960d-4cbc-8dcf-f12d981d4bce":{"description":"Not found, or not visible to this key (reason RUN_UNKNOWN)","x-error-reasons":["RUN_UNKNOWN"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"08a9672e-e9bd-4131-9f28-2a34ae29d7cd":{"description":"RATE_LIMITED: retry after Retry-After seconds; QUOTA_EXCEEDED: details.reset_at gives the daily reset time (no Retry-After)","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying, when waiting helps."},"required":false,"description":"Seconds to wait before retrying, when waiting helps."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"99424176-a0af-4757-95c7-141842a45d9c":{"description":"Temporarily unavailable, with Retry-After (for example reason AUTH_UNAVAILABLE, ENGINE_UNAVAILABLE or STORE_UNAVAILABLE): retry with the same Idempotency-Key","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying, when waiting helps."},"required":true,"description":"Seconds to wait before retrying, when waiting helps."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`attribute_values.region`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"param":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].param","typeLabel":"string"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Stable, extensible issue code; unknown codes still have a parameter and human-readable message.","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.issues.items.[INDEX].message","typeLabel":"string"}},"required":["param","code","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"error.details.issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details.issues","typeLabel":"object[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"x-moonbounce-sdk-known-fields":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{"issues":[{"param":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e880036a-09bc-453b-bf38-e24044523665":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:evaluate"],"schemeName":"bearerAuth"}},"416f8ce3-05bb-4fa4-b375-b69b4f81b312":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:develop"],"schemeName":"bearerAuth"}}},"servers":{"a52a69e5-36be-4c74-afaf-f5a9d47fcd0c":{"url":"https://api.moonbounce.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:evaluate"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:develop"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"moonbounce","siteName":"Moonbounce Decisions API","title":"Get a run - Moonbounce Decisions API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T07:14:47.608Z","originalFileLocation":"api-reference/previews-\u0026-tests/get-a-run.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create\u0026#x27;s answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call\u0026#x27;s run is an ImportExamplesResponse, whose results carry each example\u0026#x27;s feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import\u0026#x27;s, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment\u0026#x27;s run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get a run - Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create\u0026#x27;s answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call\u0026#x27;s run is an ImportExamplesResponse, whose results carry each example\u0026#x27;s feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import\u0026#x27;s, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment\u0026#x27;s run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moonbounce.ai/api-reference/previews-\u0026amp;-tests/get-a-run\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moonbounce.mintlify.site/_mintlify/api/og/v2?division=Previews+%26+tests\u0026amp;title=Get+a+run\u0026amp;description=Reads+back+a+run+until+its+%60expires_at%60%3A+the+body+its+create+call+answered%2C+byte+for+byte%2C+with+the+%60include%60+and+%60results%60+that+call+used.+It+takes+no+query+pa\u0026amp;theme=39ab765db666c39e6eb7bb0f\u0026amp;signature=c40d0e0fd465895e5db77477d3322817d150d696c0cf91a3c22cee5ffe3f10e4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get a run - Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create\u0026#x27;s answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call\u0026#x27;s run is an ImportExamplesResponse, whose results carry each example\u0026#x27;s feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import\u0026#x27;s, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment\u0026#x27;s run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moonbounce.mintlify.site/_mintlify/api/og/v2?division=Previews+%26+tests\u0026amp;title=Get+a+run\u0026amp;description=Reads+back+a+run+until+its+%60expires_at%60%3A+the+body+its+create+call+answered%2C+byte+for+byte%2C+with+the+%60include%60+and+%60results%60+that+call+used.+It+takes+no+query+pa\u0026amp;theme=39ab765db666c39e6eb7bb0f\u0026amp;signature=c40d0e0fd465895e5db77477d3322817d150d696c0cf91a3c22cee5ffe3f10e4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/moonbounce/Pq6Jhs_BrzDTLcf2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1D5AB5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moonbounce.ai/api-reference/previews-\u0026amp;-tests/get-a-run\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/previews-%26-tests/get-a-run.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moonbounce.ai/#organization\",\"name\":\"Moonbounce Decisions API\",\"url\":\"https://docs.moonbounce.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moonbounce/mWuXGW-nUJSEdABp/logo/lockup-light.svg?fit=max\u0026auto=format\u0026n=mWuXGW-nUJSEdABp\u0026q=85\u0026s=367a5dedb5799a16c5737d136af68dc5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moonbounce.ai#website\",\"name\":\"Moonbounce Decisions API\",\"url\":\"https://docs.moonbounce.ai\",\"publisher\":{\"@id\":\"https://docs.moonbounce.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run#webpage\",\"url\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run\",\"name\":\"Get a run\",\"description\":\"Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create's answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call's run is an ImportExamplesResponse, whose results carry each example's feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import's, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment's run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\",\"dateModified\":\"2026-11-10T07:14:47.608Z\",\"isPartOf\":{\"@id\":\"https://docs.moonbounce.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Previews \u0026 tests\",\"item\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/run-a-version-over-many-items\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get a run\",\"item\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run#apireference\",\"headline\":\"Get a run\",\"name\":\"Get a run\",\"description\":\"Reads back a run until its expires_at: the body its create call answered, byte for byte, with the include and results that call used. It takes no query parameters and has no pages, so it is as large as the create's answer. To judge a run, pass its run_id to loss_report, which reads it without returning the results. A run of items or cases (createRun) is a Run; an import_examples call's run is an ImportExamplesResponse, whose results carry each example's feedback_id. Reading a run of items needs the decisions:evaluate scope; a run of items_from or stored cases, or an import's, needs decisions:develop (403 INSUFFICIENT_SCOPE otherwise). Another environment's run, an expired one and one made before runs could be read back are 404 RUN_UNKNOWN. The web app (WebApi) may not read runs (403).\",\"url\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moonbounce.ai/api-reference/previews-\u0026-tests/get-a-run#webpage\"},\"dateModified\":\"2026-11-10T07:14:47.608Z\",\"publisher\":{\"@id\":\"https://docs.moonbounce.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moonbounce.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moonbounce Decisions API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Moonbounce Decisions API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference overview","href":"/reference/overview"}]},{"group":"Evaluate","pages":[{"title":"Evaluate an item","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evaluate","href":"/api-reference/evaluate/evaluate-an-item"},{"title":"Get a past evaluation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evaluations/{evaluation_id}","href":"/api-reference/evaluate/get-a-past-evaluation"},{"title":"List a decision's evaluations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/evaluations","href":"/api-reference/evaluate/list-a-decisions-evaluations"}]},{"group":"Decisions","pages":[{"title":"Validate a decision file","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/validate","href":"/api-reference/decisions/validate-a-decision-file"},{"title":"List decisions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions","href":"/api-reference/decisions/list-decisions"},{"title":"Register a decision's version","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions","href":"/api-reference/decisions/register-a-decisions-version"},{"title":"Get a version","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/versions/{ref}","href":"/api-reference/decisions/get-a-version"},{"title":"Get a decision","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}","href":"/api-reference/decisions/get-a-decision"},{"title":"List a decision's versions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/versions","href":"/api-reference/decisions/list-a-decisions-versions"},{"title":"Set what a decision decides, in one sentence","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/decisions/{decision_id}/description","href":"/api-reference/decisions/set-what-a-decision-decides-in-one-sentence"}]},{"group":"Feedback","pages":[{"title":"List a decision's labeled cases","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/cases","href":"/api-reference/feedback/list-a-decisions-labeled-cases"},{"title":"Submit feedback on evaluations or items","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/feedback","href":"/api-reference/feedback/submit-feedback-on-evaluations-or-items"},{"title":"Get a feedback submission as stored","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/feedback/{feedback_id}","href":"/api-reference/feedback/get-a-feedback-submission-as-stored"},{"title":"Export a decision's feedback as training data","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/feedback","href":"/api-reference/feedback/export-a-decisions-feedback-as-training-data"},{"title":"Import labeled examples","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/examples","href":"/api-reference/feedback/import-labeled-examples"}]},{"group":"Suggestions","pages":[{"title":"List suggestions for a decision","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/suggestions","href":"/api-reference/suggestions/list-suggestions-for-a-decision"},{"title":"Generate a suggestion on demand","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/suggestions","href":"/api-reference/suggestions/generate-a-suggestion-on-demand"},{"title":"Get a suggestion","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suggestions/{suggestion_id}","href":"/api-reference/suggestions/get-a-suggestion"},{"title":"Reject a suggestion","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suggestions/{suggestion_id}/reject","href":"/api-reference/suggestions/reject-a-suggestion"},{"title":"Mark a suggestion pulled","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suggestions/{suggestion_id}/mark-pulled","href":"/api-reference/suggestions/mark-a-suggestion-pulled"},{"title":"Get the improvement loop's status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/loop","href":"/api-reference/suggestions/get-the-improvement-loops-status"}]},{"group":"Uploads","pages":[{"title":"Upload a dataset or structure file","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/uploads","href":"/api-reference/uploads/upload-a-dataset-or-structure-file"},{"title":"Send an upload's file","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/uploads/{upload_id}/{token}","href":"/api-reference/uploads/send-an-uploads-file"}]},{"group":"Previews \u0026 tests","pages":[{"title":"Run a version over many items","description":"Evaluates up to 200 items under one version, each exactly as one evaluate would, and keeps the results under a `run_id` for loss_report and sweep_cut. The body is flat, as import_examples' is: the structure inline (`questions`, `attributes`, `aggregations`, `result`) or a registered one's `structure_hash`, not both. A dry run, of items, `items_from` or `cases`, may also name in `structure_hash` a structure nobody registered that an unexpired structure upload (create_upload) or run of this decision holds in this environment: upload a candidate (or send it inline in its first run), then name its `structure_hash`, and it never becomes a version until `registerDecision` takes that hash. Then `items`, `items_from` or `cases`, `dry_run` and `include`. The decision is the path's. **Items:** each `{item_id, state, attribute_values?, expected?, label_source?}`, `item_id` unique in the run. Each is stored as an evaluation, or with `dry_run: true` is a dry run that stores only usage (the run keeps its results for a day); each result carries its `id` (`evl_` or `dry_`). Score versions with dry runs: a stored run's evaluations are real traffic. `expected` (an outcome) and `label_source` (`human`, `synthetic` or `unknown`) are the item's label, kept with the run for loss_report, never used to evaluate and never recorded as feedback. Every item's content is checked before any model call: content the structure refuses is 400 CONTENT_INVALID naming `items.\u003ci>`. An item whose model calls fail is that item's result (status `failed`, with an `error` whose `code` says why and `retryable` whether sending it again may help); the call fails only on an invalid request, auth, admission or a store error. An outage of any kind (unavailable, rate limited, timeout, auth) is `retryable`; only the content's own failure is not. **An uploaded dataset:** send `items_from: {upload_id, offset?, limit?}` in place of `items` to run a version over lines of an items upload (create_upload), without sending them (this needs the `decisions:develop` scope): lines `offset` (default 0) to `offset + limit - 1` (`limit` default and at most 200, fewer at the end of the file), each line's `item_id`, `state`, `attribute_values`, its expected_outcome claim as `expected` and its `label_source`. Take a longer file in slices of 200, and the same slices for every version. Always dry runs. The upload must be this decision's, received and unexpired (404 UPLOAD_UNKNOWN; 409 UPLOAD_NOT_RECEIVED before its file is sent), on a decision that keeps content (400 CONTENT_NOT_KEPT); a slice whose lines take over 2 MB as stored is 422 ITEMS_TOO_LARGE. A version that needs new content on the lines (a caller-supplied attribute without a default, a state field they lack) is 400 CONTENT_INVALID naming the item, so upload a file that has it; new questions over the state, and attributes with a default or filled `from` the state, need nothing new. **Stored cases:** send `cases` in place of `items` to evaluate the decision's labeled cases (the ones list_cases lists; this needs the `decisions:develop` scope): `{evaluation_ids}`, or list_cases' filters (`outcomes`, `structure_hash`, `label_source`, `since`, `until`) with `limit` (default 200) and `cursor` (`cases.next_cursor` from the previous run). They are always dry runs: each case is replayed as a preview replays it, reusing the answer it stored for a question that hasn't changed (same model) and asking the rest; `refresh` names questions to ask afresh. Each result carries the case's `evaluation_id`, and the run keeps its label, label source and answer corrections, so a preview equals a case run under the base (refreshing the questions the candidate changed or dropped), one under the candidate, and loss_report over the two, when both runs set `cases.outcomes` to the outcomes either version can produce and cover the same cases (a preview judges the newest 500: page both runs through them while no label changes; a page is not a snapshot), and both versions can read every case's stored content. The run reports `version` and `model` as evaluate does. It is kept until `expires_at`: pass its `run_id` to loss_report to judge it, so the results never pass through your context; a stored run's evaluations stay after it expires. Until then getRun (`GET /v1/runs/{run_id}`) reads this response back as sent. `include` adds each result's `answers`, `attributes`, or `evaluation` (everything one evaluate returns for that item). `results: \"failed\"` lists only the failed items' results and `\"none\"` none (default `all`); the run keeps every result for loss_report either way, and `counts` and `cost` cover every item. Each item that succeeded is billed as one evaluate or dry run would be; a failed item's spend is recorded and shown as its `cost`. A run has a 60 s budget and takes no `model`; items it could not start fail with `NOT_STARTED`, and a case it ran out of time for with `ENGINE_UNAVAILABLE` (both retryable): send them in a new run with a new Idempotency-Key. 201 with the run; an Idempotency-Key replays the first response without spending again.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/runs","href":"/api-reference/previews-\u0026-tests/run-a-version-over-many-items"},{"title":"Get a run","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/runs/{run_id}","href":"/api-reference/previews-\u0026-tests/get-a-run"},{"title":"Preview a structure change against past feedback","description":"Replays a structure change over past cases with feedback: it spends model calls and stores a run. Not a dry run of evaluate. Replays a local structure and its base over the decision's reviewed and imported cases in the key's environment (a test key previews against test cases only), and returns fixes, breaks, the action mix, the `loss_report` (base and candidate judged by the decision's objective, or balanced losses when none is set, with loss per case, macro-F1, where the cost sits, the costliest mistakes, and whether the candidate is `accepted`) and an evidence label: `training_cases` when a scored case is a training case (its deciding feedback is not an import), else `imported_examples` (every scored case is an imported example); either way the cases are ones a suggestion may have learned from. The result must decide outcomes (bands, rules or match): a value result is 400 OUTCOMES_INVALID. Each case reuses the answers its evaluation stored for questions whose hash is unchanged; changed and new questions are asked the way evaluate asks them (each question's `reads`, grouped into System One calls), so a preview costs what evaluating the changed questions would. Writes an eval run only: never an evaluation, never traffic, never acceptance. A preview does not register the candidate: before evaluating by its structure hash, register it with POST /v1/decisions (or send the structure inline on evaluate once). The base, in order: the base of `suggestion_id` when it is sent (then `base` is ignored), else `base`, else the version serving primary traffic in the key's environment, else the newest one examples were imported under there, else none. With `suggestion_id`, `hashes_match` says whether the structure is that suggestion's candidate; another environment's suggestion is 404. The evidence replays only cases with an outcome from the owner, reviewers or imported examples; the action mix replays a sample of the environment's recent primary traffic. For questions the candidate changes, `before` is a fresh re-run of the base question (the fair baseline), so model nondeterminism can move it between previews. `noise_rate` measures outcome flips from that re-run against the stored answers, not value drift. A test key's preview neither reads nor fills the shared cache of model answers. A decision nothing was registered, evaluated or imported under is 404.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/previews","href":"/api-reference/previews-\u0026-tests/preview-a-structure-change-against-past-feedback"}]},{"group":"Models","pages":[{"title":"List the models a decision can run on","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/models","href":"/api-reference/models/list-the-models-a-decision-can-run-on"},{"title":"Get the model a decision runs on","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/model","href":"/api-reference/models/get-the-model-a-decision-runs-on"},{"title":"Choose the model a decision runs on","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/decisions/{decision_id}/model","href":"/api-reference/models/choose-the-model-a-decision-runs-on"}]},{"group":"Objective","pages":[{"title":"Sweep a cut over a run's answers","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/sweep-cut","href":"/api-reference/objective/sweep-a-cut-over-a-runs-answers"},{"title":"Judge results under a decision's objective","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/loss-report","href":"/api-reference/objective/judge-results-under-a-decisions-objective"},{"title":"Get what a decision optimizes for","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/objective","href":"/api-reference/objective/get-what-a-decision-optimizes-for"},{"title":"Set what a decision optimizes for","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/decisions/{decision_id}/objective","href":"/api-reference/objective/set-what-a-decision-optimizes-for"}]},{"group":"Usage","pages":[{"title":"Get a decision's model cost, per evaluation and in total","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/usage","href":"/api-reference/usage/get-a-decisions-model-cost-per-evaluation-and-in-total"}]},{"group":"Account","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/account/health-check"},{"title":"Identify the calling key or sign-in","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whoami","href":"/api-reference/account/identify-the-calling-key-or-sign-in"}]}]}]},"basePath":"","title":"Get a run - Moonbounce Decisions API","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-DV-WToSZ.js","dist-CBUH0-zX.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-CR-RHrVC.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","AssistantPageLink-BmARFYNC.js"]}