1.8 KiB
Case JSON input contract
Case JSON is private evidence used only during induction. It may contain exact
parameters, but the inducer never copies those fields into published experience.
Store source STEP files in cad-experience-plugin/parser/input and generated
case JSON in cad-experience-plugin/parser/output.
Do not pass either folder or a case JSON to cad-router or a CAD backend. Creation, modification, and reconstruction may consume only the promoted public experience library.
Supported fields:
{
"provenance": {"source_sha256": "..."},
"design_ir": {
"part_family": "flanged_hub_adapter",
"features": [{"type": "base_flange"}, {"type": "hollow_sleeve"}],
"constraints": [{"id": "coaxial_stack", "type": "coaxial"}],
"normalized_observations": [
{
"name": "sleeve_od_to_base_od",
"value": 0.35,
"numerator_role": "sleeve_outer_diameter",
"denominator_role": "base_outer_diameter"
}
]
},
"experience": {
"rules": [
{
"id": "bound_counterbore_to_host",
"scope": ["counterbore"],
"statement": "Terminate a counterbore at its host boundary.",
"repair": "Bind the cutter extent to the host feature."
}
],
"validation_targets": [
{
"id": "counterbore_host_boundary",
"check": "A counterbore does not cross an unrelated adjacent feature."
}
]
}
}
Rules and checks containing numeric literals are rejected because they are
likely instance answers. Ratios are accepted only through
normalized_observations, with an explicit numerator and denominator role.
Legacy distilled JSON can be used when it contains the fields above. Exact
parameters, evidence, centers, axes, and surface references are ignored.