{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://satsimjs.org/schemas/command/v1/commands/setFsmAxisRates.schema.json",
  "title": "setFsmAxisRates",
  "description": "Starts, updates, or stops continuous runtime FSM axis-rate control. Rates are degrees per second; zero rates stop the active lease and freeze the actuator at its current state.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "type",
    "observer",
    "axes"
  ],
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "setFsmAxisRates",
        "set_fsm_axis_rates"
      ],
      "description": "Command discriminator. Use canonical 'setFsmAxisRates' in newly generated commands."
    },
    "observer": {
      "$ref": "https://satsimjs.org/schemas/command/v1/defs.schema.json#/definitions/nonEmptyString",
      "description": "Observatory/site name that owns the target actuator or sensor."
    },
    "axes": {
      "$ref": "https://satsimjs.org/schemas/command/v1/defs.schema.json#/definitions/axisMap",
      "description": "FSM axis rates in degrees per second, commonly tip and tilt."
    }
  },
  "examples": [
    {
      "type": "setFsmAxisRates",
      "observer": "OBS-1",
      "axes": {
        "tip": 0.25,
        "tilt": -0.25
      }
    }
  ]
}
