madoo.decision/v1
Madoo decision — What Decide with a Model answered: for each question the answer, the probability of every option or level and whether it reached its threshold (accepted, uncertain, refused or invalid).
| Reference | madoo.decision/v1 |
| Schema id | urn:madoo:schema:decision:v1 |
| Version | 1.0.0 |
| Served at | GET /api/v1/json-schemas/madoo.decision/v1 · MCP get_json_schema |
Where it appears
Section titled “Where it appears”- Produced by:
ai/decide→decision
Fields
Section titled “Fields”| Field | Type | Required | Rules | Description |
|---|---|---|---|---|
schema |
"madoo.decision/v1" |
yes | ||
model |
string | yes | The public id of the model that answered. | |
all_accepted |
boolean | yes | True when every answer is accepted. | |
answers |
array of objects | yes | min items 1 | |
answers[].name |
string | yes | ||
answers[].type |
one of "yes_no", "choice", "score" |
yes | ||
answers[].status |
one of "accepted", "uncertain", "refused", "invalid" |
yes | accepted: the probability reached the threshold. uncertain: it did not. refused: the model declined this question. invalid: the answer was missing or malformed. Only accepted answers should drive a decision. | |
answers[].threshold |
number | yes | ≥ 0; ≤ 1 | |
answers[].value |
boolean or string or number or null | yes | yes_no: true or false, the more probable; choice: the chosen option; score: the score, from 0 (first level) to the number of levels minus one, possibly between two levels. Null when refused or invalid. | |
answers[].probability |
number or null | yes | ≥ 0; ≤ 1 | yes_no: the probability that the statement is true; choice: the probability of the chosen option; score: the probability of the most likely level. Null when refused or invalid. |
answers[].level |
string or null | score only: the label of the most likely level. | ||
answers[].confidence |
number or null | choice and score: how concentrated the probabilities are (1 = all on one answer), as reported by the model. Not a probability: thresholds apply to probability. | ||
answers[].options |
array of objects | choice only: every option with its probability, in the order of the question. | ||
answers[].options[].value |
string | yes | ||
answers[].options[].probability |
number | yes | ≥ 0; ≤ 1 | |
answers[].levels |
array of objects | score only: every level with its probability, lowest first. | ||
answers[].levels[].label |
string | yes | ||
answers[].levels[].probability |
number | yes | ≥ 0; ≤ 1 |
The complete schema
Section titled “The complete schema”madoo.decision/v1 (JSON Schema)
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:madoo:schema:decision:v1", "title": "Madoo decision", "description": "What Decide with a Model (ai/decide) answered: for each question, in the order asked, the answer, the probability of every option or level and whether the answer reached its threshold. Probabilities are the model's estimates, not certainties; set thresholds from labelled examples.", "type": "object", "required": [ "schema", "model", "all_accepted", "answers" ], "additionalProperties": false, "properties": { "schema": { "const": "madoo.decision/v1" }, "model": { "type": "string", "description": "The public id of the model that answered." }, "all_accepted": { "type": "boolean", "description": "True when every answer is accepted." }, "answers": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/answer" } } }, "$defs": { "answer": { "type": "object", "required": [ "name", "type", "status", "threshold", "value", "probability" ], "additionalProperties": false, "properties": { "name": { "type": "string" }, "type": { "enum": [ "yes_no", "choice", "score" ] }, "status": { "enum": [ "accepted", "uncertain", "refused", "invalid" ], "description": "accepted: the probability reached the threshold. uncertain: it did not. refused: the model declined this question. invalid: the answer was missing or malformed. Only accepted answers should drive a decision." }, "threshold": { "type": "number", "minimum": 0, "maximum": 1 }, "value": { "type": [ "boolean", "string", "number", "null" ], "description": "yes_no: true or false, the more probable; choice: the chosen option; score: the score, from 0 (first level) to the number of levels minus one, possibly between two levels. Null when refused or invalid." }, "probability": { "type": [ "number", "null" ], "minimum": 0, "maximum": 1, "description": "yes_no: the probability that the statement is true; choice: the probability of the chosen option; score: the probability of the most likely level. Null when refused or invalid." }, "level": { "type": [ "string", "null" ], "description": "score only: the label of the most likely level." }, "confidence": { "type": [ "number", "null" ], "description": "choice and score: how concentrated the probabilities are (1 = all on one answer), as reported by the model. Not a probability: thresholds apply to probability." }, "options": { "type": "array", "description": "choice only: every option with its probability, in the order of the question.", "items": { "type": "object", "required": [ "value", "probability" ], "additionalProperties": false, "properties": { "value": { "type": "string" }, "probability": { "type": "number", "minimum": 0, "maximum": 1 } } } }, "levels": { "type": "array", "description": "score only: every level with its probability, lowest first.", "items": { "type": "object", "required": [ "label", "probability" ], "additionalProperties": false, "properties": { "label": { "type": "string" }, "probability": { "type": "number", "minimum": 0, "maximum": 1 } } } } } } }}