Contract generation (checked example)
A test-only, QGIS-free example exercises the proposed web-project workflow without declaring a production validation backend or SDK CLI. From the workspace root, after installing the locked Pixi and Bun environments:
pixi run -e bun bun run sdk:generatepixi run -e bun bun run coveragepixi run -e bun typecheckThe test-only Mashumaro exporter uses ordinary dataclasses in packages/qgis-sdk-python/tests/contract_sample/models.py to emit request, result-reader and result-writer Draft 2020-12 schemas. The bridge’s locally installed json2ts (json-schema-to-typescript==16.0.0) generates checked-in TypeScript declarations under packages/qgis-sdk-typescript/tests/contracts/. Python’s test-only jsonschema oracle and bridge Ajv2020 tests check the case corpus without coercion or mutation; generation drift and TypeScript required/nullable distinctions are checked in the normal suite.
This example is not a public SDK operation, a general SDK generator, or a standalone frontend validator. The default Mashumaro decoder still coerces values and drops unknown fields, so it must not be used as the strict request boundary. The former Pydantic prototype and its separate schema example are retired (decision-67).