{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/wai-quantum/schemas/plan.v1.json", "title": "wai.quantum.plan/1", "description": "What a job will run, before it runs: the method the planner chose and why, the memory the job is admitted with (an upper estimate) and its work in the method's own unit. The command line's plan --json and both servers' plan tools give it. A job with a contract carries the planner's reasoning.", "type": "object", "required": [ "method", "why", "memory_bytes", "work", "qubits" ], "properties": { "method": { "type": "string" }, "why": { "type": "string" }, "memory_bytes": { "type": "integer", "minimum": 0 }, "work": { "type": "integer", "minimum": 0, "description": "The method's own unit: an upper bound on what the run takes where the method's cost is known beforehand, and with `metered` what the meter holds it to." }, "qubits": { "type": "integer", "minimum": 0 }, "target": { "$ref": "job-result.v1.json#/$defs/target_placement" }, "planner": { "$ref": "job-result.v1.json#/$defs/planner" }, "metered": { "type": "boolean", "description": "True when a job naming method mps would pass one job's work at the bond it asks for: it runs under a meter of the bonds it reaches, may take far less than `work`, and stops with J011 if it passes `work`." } } }