The runner now checks systems[].parameters against the descriptor-published parameters_schema at preflight, so a typo is a plan-time error rather than a crash inside the first attempt.
It uses a bounded recursive checker that reports only definite violations, covering $ref/$defs, type, enum, required, properties, items, anyOf/oneOf and additionalProperties: false. That is enough for every failure mode the adapters z.strictObject schemas can express, but it is not JSON Schema semantics.
ajv is already in the repository as a devDependency and is used in the conformance tests. Moving it to dependencies and swapping it in would give full Draft 2020-12 semantics at the cost of a production dependency. Worth doing deliberately rather than by accident.
The runner now checks
systems[].parametersagainst the descriptor-publishedparameters_schemaat preflight, so a typo is a plan-time error rather than a crash inside the first attempt.It uses a bounded recursive checker that reports only definite violations, covering
$ref/$defs,type,enum,required,properties,items,anyOf/oneOfandadditionalProperties: false. That is enough for every failure mode the adaptersz.strictObjectschemas can express, but it is not JSON Schema semantics.ajvis already in the repository as a devDependency and is used in the conformance tests. Moving it todependenciesand swapping it in would give full Draft 2020-12 semantics at the cost of a production dependency. Worth doing deliberately rather than by accident.