simulate
Run one of this world's own tools many seeded times, with a declared distribution over each input you want to vary, and receive the share of draws the world answered, the share it refused BROKEN DOWN BY THE KIND OF REFUSAL, and the distribution of every figure the answered draws produced. Use it when your inputs are ranges rather than points: an assumed prevalence, a test's sensitivity, a population you are unsure of. Name the world tool in `tool`, put every varying input in `over` as one of four shapes (point, uniform, triangular, categorical), put every literal in `fixed`, and supply `seed` and `draws`, both required with no default. An input addressed inside an array is written name[*].field and its records come from `template`. Every rate comes back with a Wilson interval, so a refusal kind that never fired is reported as a kind that never fired rather than as a kind that cannot fire, and every figure comes back as order statistics and a bootstrap interval over the draws that ANSWERED, with nothing imputed for a draw that refused. The whole call is addressed by a cohort id computed from your declaration alone, so two people who declare the same experiment are provably looking at the same one. What it will not do: serve a figure as measured. Every figure here is a statistic across draws from distributions you declared, so the served basis is cited or assumption and never measured, however the underlying tool answered on any single draw. It refuses rather than guessing: a call with nothing varying, an input declared as both a literal and a distribution, a numeric shape over a property the tool types as something else, a shape whose own parameters are inconsistent, a tool this world does not declare, and a world that declares no tools at all. Ask hello_world with tool set to simulate for the full text. The kinds it returns, so you can read them before spending a call: simulation/world-declares-no-estimators, simulation/not-a-world-tool, simulation/nothing-varies, simulation/input-declared-twice, simulation/unknown-input, simulation/shape-does-not-fit-input, simulation/bad-distribution, simulation/draws-above-ceiling, simulation/estimator-fault, simulation/bad-input.
Use this form for new arguments. Follow concrete links for known values. Fetch-only readers may be unable to submit new URLs.
Exact input contract
{
"additionalProperties": false,
"properties": {
"draws": {
"description": "How many times to run it. Required; this tool ships no default. Every draw is a real call to the world's own estimator, and the refusal names the ceiling if you cross it.",
"minimum": 1,
"type": "integer"
},
"fixed": {
"description": "Literal values passed unchanged to every draw. A key here and in over at once is refused.",
"type": "object"
},
"label": {
"description": "A name for your own use. It is not part of the cohort id, so renaming a cohort does not make it a different one.",
"type": "string"
},
"over": {
"description": "The inputs that vary, each mapped to its declared distribution. Non-empty, always. Shapes: {\"shape\":\"point\",\"value\":v}, {\"shape\":\"uniform\",\"low\":a,\"high\":b}, {\"shape\":\"triangular\",\"low\":a,\"mode\":m,\"high\":b}, {\"shape\":\"categorical\",\"weights\":[[value,weight],...]}. A point belongs here rather than in fixed when you want it reported as pinned rather than as absent. There is no normal and no beta: both need a function IEEE 754 does not require to be correctly rounded, and a draw that differs in its last bit between two machines cannot replay.",
"type": "object"
},
"seed": {
"description": "The seed every draw is addressed from. Required; this tool ships no default, because a defaulted seed is a declared input nobody declared and the seed is what a cohort's identity is about. The same seed and the same declaration give the same draws on any machine.",
"minimum": 0,
"type": "integer"
},
"template": {
"description": "The records a wildcard path is resolved against, with the addressed field left out. Supply it whenever an input in over is written name[*].field.",
"type": "object"
},
"tool": {
"description": "The tool to run, named exactly as this world declares it. A runtime tool is refused: simulating a check decides nothing. Name one this world does not declare and the refusal lists the ones it does.",
"type": "string"
}
},
"required": [
"tool",
"draws",
"seed",
"over"
],
"type": "object"
}