42eb0b62d5
Mirrors src/printer/bambu_commands/ as language-agnostic schema docs (not used for codegen — the Rust structs stay hand-written). envelope.schema.json is the base; get_version/pushall request+response schemas extend it via allOf + $ref, which is genuinely closer to real inheritance than anything else in this project's schema stack: proto and Rust only ever gave us composition (embed a field holding the base struct), never a mechanism that reuses a *referenced* schema's constraints automatically. Verified with the jsonschema Python library, not just written by hand: all three real examples from the conversation validate correctly, and — importantly — negative tests confirm the base schema's required fields and the command consts are actually enforced through the allOf chain, not just documented. README covers the one real gotcha (additionalProperties: false on a base schema silently breaks allOf composition, since allOf validates each sub-schema against the whole instance independently rather than merging them).
14 lines
402 B
JSON
14 lines
402 B
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://continuum.internal/schemas/bambulab/v1/module_info.schema.json",
|
|
"title": "ModuleInfo",
|
|
"type": "object",
|
|
"properties": {
|
|
"hw_ver": { "type": "string" },
|
|
"name": { "type": "string" },
|
|
"sn": { "type": "string" },
|
|
"sw_ver": { "type": "string" }
|
|
},
|
|
"required": ["hw_ver", "name", "sn", "sw_ver"]
|
|
}
|