feat: add spindle direction selection contract

This commit is contained in:
Nick Hermes
2026-06-02 15:40:16 +00:00
parent 02d9323c43
commit beeb521ca7
21 changed files with 689 additions and 133 deletions

View File

@@ -55,15 +55,21 @@
},
"strategy_summary": {
"type": "object",
"required": ["intent"],
"required": [
"intent"
],
"properties": {
"intent": { "type": "string" },
"intent": {
"type": "string"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"notes": { "type": "string" }
"notes": {
"type": "string"
}
}
},
"passes": {
@@ -77,11 +83,17 @@
"type": "object",
"description": "Summary of predicted post-polish surface state.",
"properties": {
"removal_rms_nm": { "type": "number" },
"removal_pv_nm": { "type": "number" },
"removal_rms_nm": {
"type": "number"
},
"removal_pv_nm": {
"type": "number"
},
"residual_zernikes": {
"type": "object",
"additionalProperties": { "type": "number" }
"additionalProperties": {
"type": "number"
}
}
}
},
@@ -91,22 +103,35 @@
"properties": {
"removal_rms_nm_range": {
"type": "array",
"items": { "type": "number" },
"items": {
"type": "number"
},
"minItems": 2,
"maxItems": 2
},
"notes": { "type": "string" }
"notes": {
"type": "string"
}
}
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": ["filename", "role"],
"required": [
"filename",
"role"
],
"properties": {
"filename": { "type": "string" },
"role": { "type": "string" },
"description": { "type": "string" }
"filename": {
"type": "string"
},
"role": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
}
@@ -121,37 +146,81 @@
"force_n",
"table_rpm",
"spindle_rpm",
"spindle_direction",
"motion_family"
],
"properties": {
"pass_id": { "type": "string" },
"sequence_index": { "type": "integer", "minimum": 1 },
"objective": { "type": "string" },
"preset_name": { "type": "string" },
"duration_s": { "type": "number", "minimum": 0 },
"force_n": { "type": "number", "minimum": 0 },
"table_rpm": { "type": "number", "minimum": 0 },
"spindle_rpm": { "type": "number", "minimum": 0 },
"motion_family": { "type": "string" },
"pass_id": {
"type": "string"
},
"sequence_index": {
"type": "integer",
"minimum": 1
},
"objective": {
"type": "string"
},
"preset_name": {
"type": "string"
},
"duration_s": {
"type": "number",
"minimum": 0
},
"force_n": {
"type": "number",
"minimum": 0
},
"table_rpm": {
"type": "number",
"minimum": 0
},
"spindle_rpm": {
"type": "number",
"minimum": 0
},
"motion_family": {
"type": "string"
},
"motion_params": {
"type": "object",
"additionalProperties": true
},
"zone": { "type": "string" },
"dither_profile": { "type": "string" },
"zone": {
"type": "string"
},
"dither_profile": {
"type": "string"
},
"force_modulation": {
"type": "object",
"properties": {
"harmonic": { "type": "integer" },
"amplitude_n": { "type": "number" },
"phase_deg": { "type": "number" }
"harmonic": {
"type": "integer"
},
"amplitude_n": {
"type": "number"
},
"phase_deg": {
"type": "number"
}
}
},
"acceptance": {
"type": "object",
"additionalProperties": true
},
"notes": { "type": "string" }
"notes": {
"type": "string"
},
"spindle_direction": {
"type": "string",
"enum": [
"cw",
"ccw"
],
"description": "Requested toolhead spindle rotation direction using the same physical convention as polisher-control."
}
}
}
}