#pragma once

// This file is generated. Do not edit by hand.

#include "moza/moza.hpp"
#include "moza/private/device_base.hpp"

#include <cstdint>
#include <string>
#include <utility>
#include <vector>

namespace moza::as {

inline namespace wheelbase_type {
struct PanelRawDataGet
{
    // Button reg data
    std::uint32_t buttonRegData{};
    // Knob raw
    std::uint16_t knobRaw{};
    // Hall switch raw
    std::uint16_t hallSwitchRaw{};
};

enum class LedRgbDataALLValueLedIndex1 : std::uint8_t
{
    // All LED strips as a whole
    AllLEDStripsAsAWhole = 0
};

struct LedRgbDataALLValue
{
    // led index
    moza::as::wheelbase_type::LedRgbDataALLValueLedIndex1 ledIndex1{};
    // red
    std::uint8_t led{};
    // green
    std::uint8_t led1{};
    // blue
    std::uint8_t led2{};
};

enum class AxisCalibrateSetEnum0 : std::uint8_t
{
    // Axis 1
    Axis1 = 0,
    // Axis 2
    Axis2 = 1
};

enum class AxisCalibrateSetEnum1 : std::uint8_t
{
    // Stop calibration
    StopCalibration = 0,
    // Start calibration
    StartCalibration = 1
};

struct AxisCalibrateSet
{
    moza::as::wheelbase_type::AxisCalibrateSetEnum0 enum0{};
    moza::as::wheelbase_type::AxisCalibrateSetEnum1 enum1{};
};

struct SoftwareAutoTrimCompenPosXSet
{
    // Trim-follow position, 32767 is center; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, this temporary position is cleared, so a set value may restore quickly.
    std::uint16_t uint0{};
    // Trim-follow speed; valid maximum value is 20.
    std::uint8_t uint1{};
};

struct SoftwareAutoTrimCompenPosX
{
    using Get = std::uint16_t;
    using Set = moza::as::wheelbase_type::SoftwareAutoTrimCompenPosXSet;
};

struct SoftwareAutoTrimCompenPosYSet
{
    // Trim-follow position, 32767 is center; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, this temporary position is cleared, so a set value may restore quickly.
    std::uint16_t uint0{};
    // Trim-follow speed; valid maximum value is 20.
    std::uint8_t uint1{};
};

struct SoftwareAutoTrimCompenPosY
{
    using Get = std::uint16_t;
    using Set = moza::as::wheelbase_type::SoftwareAutoTrimCompenPosYSet;
};

struct SoftwareAutoPilotCompenPosXSet
{
    // Autopilot follow position, 32767 is center; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, AP mode is reset and this temporary position is cleared, so a set value may restore quickly.
    std::uint16_t uint0{};
    // Autopilot follow speed; valid maximum value is 20.
    std::uint8_t uint1{};
};

struct SoftwareAutoPilotCompenPosX
{
    using Get = std::uint16_t;
    using Set = moza::as::wheelbase_type::SoftwareAutoPilotCompenPosXSet;
};

struct SoftwareAutoPilotCompenPosYSet
{
    // Autopilot follow position, 32767 is center; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, AP mode is reset and this temporary position is cleared, so a set value may restore quickly.
    std::uint16_t uint0{};
    // Autopilot follow speed; valid maximum value is 20.
    std::uint8_t uint1{};
};

struct SoftwareAutoPilotCompenPosY
{
    using Get = std::uint16_t;
    using Set = moza::as::wheelbase_type::SoftwareAutoPilotCompenPosYSet;
};

struct DirectInputSpringEffectCpOffsetGet
{
    // cpoffset_x
    std::uint16_t cpoffsetX{};
    // cpoffset_y
    std::uint16_t cpoffsetY{};
};

struct LightRgbColorGet
{
    // Echo of the lighting group/LED selector byte from the request.
    std::uint8_t selector{};
    // Fixed byte, value 0.
    std::uint8_t reserved{};
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbColorSet
{
    // bit0-3 indicates the lighting group: 0 means all lighting groups, 1-3 mean lighting groups 1-3; bit4-7 indicates the LED inside the group: 0 means all LEDs in the group, 1-15 mean LEDs 1-15 in the group. Values beyond the actual LED count of the selected group are ignored by the device.
    std::uint8_t uint{};
    // Red value
    std::uint8_t uint1{};
    // Green value
    std::uint8_t uint2{};
    // Blue value
    std::uint8_t uint3{};
};

struct LightRgbColor
{
    using Get = moza::as::wheelbase_type::LightRgbColorGet;
    using Set = moza::as::wheelbase_type::LightRgbColorSet;
};

struct LightRgbTelemetryColorGet
{
    // Echo of the lighting group/LED selector byte from the request.
    std::uint8_t selector{};
    // Fixed byte, value 0.
    std::uint8_t reserved{};
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbTelemetryColorSet
{
    // bit0-3 indicates the lighting group: 0 means all lighting groups, 1-3 mean lighting groups 1-3; bit4-7 indicates the LED inside the group: 0 means all LEDs in the group, 1-15 mean LEDs 1-15 in the group. Values beyond the actual LED count of the selected group are ignored by the device.
    std::uint8_t uint{};
    // Red value
    std::uint8_t uint1{};
    // Green value
    std::uint8_t uint2{};
    // Blue value
    std::uint8_t uint3{};
};

struct LightRgbTelemetryColor
{
    using Get = moza::as::wheelbase_type::LightRgbTelemetryColorGet;
    using Set = moza::as::wheelbase_type::LightRgbTelemetryColorSet;
};

struct LightRgbColorAllSet
{
    // Red value
    std::uint8_t uint1{};
    // Green value
    std::uint8_t uint2{};
    // Blue value
    std::uint8_t uint3{};
};

struct LightRgbColorGroup1Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbColorGroup2Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbColorGroup3Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbTelemetryColorAllSet
{
    // Red value
    std::uint8_t uint1{};
    // Green value
    std::uint8_t uint2{};
    // Blue value
    std::uint8_t uint3{};
};

struct LightRgbTelemetryColorGroup1Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbTelemetryColorGroup2Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct LightRgbTelemetryColorGroup3Value
{
    // Red value
    std::uint8_t r{};
    // Green value
    std::uint8_t g{};
    // Blue value
    std::uint8_t b{};
};

struct VariablePointCurveAileronPositiveBackValue
{
    // valid point count
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct VariablePointCurveAileronPositiveValue
{
    // Valid point count; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct VariablePointCurveAileronBackValue
{
    // Valid point count; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct VariablePointCurveElevatorPositiveBackValue
{
    // Valid point count; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct VariablePointCurveElevatorBackValue
{
    // Valid point count; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct VariablePointCurveElevatorPositiveValue
{
    // Valid point count; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
    std::uint8_t pointCount{};
    // Point 0 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x0{};
    // Point 0 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y0{};
    // Point 1 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x1{};
    // Point 1 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y1{};
    // Point 2 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x2{};
    // Point 2 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y2{};
    // Point 3 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x3{};
    // Point 3 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y3{};
    // Point 4 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x4{};
    // Point 4 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y4{};
    // Point 5 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x5{};
    // Point 5 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y5{};
    // Point 6 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x6{};
    // Point 6 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y6{};
    // Point 7 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x7{};
    // Point 7 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y7{};
    // Point 8 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x8{};
    // Point 8 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y8{};
    // Point 9 X coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t x9{};
    // Point 9 Y coordinate; 0-100 is a valid percentage, 255 means unused point slot
    std::uint8_t y9{};
};

struct UsbHidAxisSerialCmdAxisXPosXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

struct UsbHidAxisSerialCmdAxisXNegXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

struct UsbHidAxisSerialCmdAxisYPosXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

struct UsbHidAxisSerialCmdAxisYNegXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

struct UsbHidAxisSerialCmdAxisZPosXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

struct UsbHidAxisSerialCmdAxisZNegXresetSet
{
    // X1; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x{};
    // X2; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x1{};
    // X3; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x2{};
    // X4; must satisfy X0=0, X5=100, and X1<X2<X3<X4.
    std::uint8_t x3{};
};

enum class MainSetUsbHidAxisSerialCmdSetRequestAxisxPos : std::uint8_t
{
    // AxisX_Pos
    AxisXPos = 0,
    // AxisY_Pos
    AxisYPos = 1,
    // AxisRX_Pos
    AxisRXPos = 2,
    // AxisRY_Pos
    AxisRYPos = 3,
    // AxisZ_Pos
    AxisZPos = 4,
    // AxisRZ_Pos
    AxisRZPos = 5,
    // AxisSlider_Pos
    AxisSliderPos = 6,
    // AxisDial_Pos
    AxisDialPos = 7,
    // AxisX_Neg
    AxisXNeg = 128,
    // AxisY_Neg
    AxisYNeg = 129,
    // AxisRX_Neg
    AxisRXNeg = 130,
    // AxisRY_Neg
    AxisRYNeg = 131,
    // AxisZ_Neg
    AxisZNeg = 132,
    // AxisRZ_Neg
    AxisRZNeg = 133,
    // AxisSlider_Neg
    AxisSliderNeg = 134,
    // AxisDial_Neg
    AxisDialNeg = 135
};

enum class MainSetUsbHidAxisSerialCmdSetRequestX : std::uint8_t
{
    // X1
    X1 = 1,
    // X2
    X2 = 2,
    // X3
    X3 = 3,
    // X4
    X4 = 4,
    // Y1
    Y1 = 17,
    // Y2
    Y2 = 18,
    // Y3
    Y3 = 19,
    // Y4
    Y4 = 20,
    // Y5
    Y5 = 21,
    // Mapping: center dead zone
    MappingCenterDeadZone = 32,
    // Mapping: input boundary
    MappingInputBoundary = 33,
    // Mapping: output boundary
    MappingOutputBoundary = 34
};

struct MainSetUsbHidAxisSerialCmdSetRequest
{
    moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetRequestAxisxPos axisxPos{};
    moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetRequestX x{};
    // Value corresponding to the configured parameter
    std::uint8_t set{};
};

enum class MainGetUsbHidAxisSerialCmdGetRequestAxisxPos : std::uint8_t
{
    // AxisX_Pos
    AxisXPos = 0,
    // AxisY_Pos
    AxisYPos = 1,
    // AxisRX_Pos
    AxisRXPos = 2,
    // AxisRY_Pos
    AxisRYPos = 3,
    // AxisZ_Pos
    AxisZPos = 4,
    // AxisRZ_Pos
    AxisRZPos = 5,
    // AxisSlider_Pos
    AxisSliderPos = 6,
    // AxisDial_Pos
    AxisDialPos = 7,
    // AxisX_Neg
    AxisXNeg = 128,
    // AxisY_Neg
    AxisYNeg = 129,
    // AxisRX_Neg
    AxisRXNeg = 130,
    // AxisRY_Neg
    AxisRYNeg = 131,
    // AxisZ_Neg
    AxisZNeg = 132,
    // AxisRZ_Neg
    AxisRZNeg = 133,
    // AxisSlider_Neg
    AxisSliderNeg = 134,
    // AxisDial_Neg
    AxisDialNeg = 135
};

enum class MainGetUsbHidAxisSerialCmdGetRequestX : std::uint8_t
{
    // X1
    X1 = 1,
    // X2
    X2 = 2,
    // X3
    X3 = 3,
    // X4
    X4 = 4,
    // Y1
    Y1 = 17,
    // Y2
    Y2 = 18,
    // Y3
    Y3 = 19,
    // Y4
    Y4 = 20,
    // Y5
    Y5 = 21,
    // Mapping: center dead zone
    MappingCenterDeadZone = 32,
    // Mapping: input boundary
    MappingInputBoundary = 33,
    // Mapping: output boundary
    MappingOutputBoundary = 34
};

struct MainGetUsbHidAxisSerialCmdGetRequest
{
    moza::as::wheelbase_type::MainGetUsbHidAxisSerialCmdGetRequestAxisxPos axisxPos{};
    moza::as::wheelbase_type::MainGetUsbHidAxisSerialCmdGetRequestX x{};
};

enum class MainSetUsbHidAxisSerialCmdSetResetRequestAxisxPos : std::uint8_t
{
    // AxisX_Pos
    AxisXPos = 0,
    // AxisY_Pos
    AxisYPos = 1,
    // AxisRX_Pos
    AxisRXPos = 2,
    // AxisRY_Pos
    AxisRYPos = 3,
    // AxisZ_Pos
    AxisZPos = 4,
    // AxisRZ_Pos
    AxisRZPos = 5,
    // AxisSlider_Pos
    AxisSliderPos = 6,
    // AxisDial_Pos
    AxisDialPos = 7,
    // AxisX_Neg
    AxisXNeg = 128,
    // AxisY_Neg
    AxisYNeg = 129,
    // AxisRX_Neg
    AxisRXNeg = 130,
    // AxisRY_Neg
    AxisRYNeg = 131,
    // AxisZ_Neg
    AxisZNeg = 132,
    // AxisRZ_Neg
    AxisRZNeg = 133,
    // AxisSlider_Neg
    AxisSliderNeg = 134,
    // AxisDial_Neg
    AxisDialNeg = 135
};

enum class MainSetUsbHidAxisSerialCmdSetResetRequestEnum1 : std::uint8_t
{
    // Reset
    Reset = 15
};

struct MainSetUsbHidAxisSerialCmdSetResetRequest
{
    moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetResetRequestAxisxPos axisxPos{};
    moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetResetRequestEnum1 enum1{};
    // X1
    std::uint8_t x{};
    // X2
    std::uint8_t x1{};
    // X3
    std::uint8_t x2{};
    // X4
    std::uint8_t x3{};
};

enum class MainSetLedRgbDataStrip1RequestLedIndex : std::uint8_t
{
    // Set the entire LED strip
    SetTheEntireLEDStrip = 0,
    // Set the 1st LED of the LED strip
    SetThe1StLEDOfTheLEDStrip = 1,
    // Set the 2nd LED of the LED strip
    SetThe2NdLEDOfTheLEDStrip = 2,
    // Set the 3rd LED of the LED strip
    SetThe3RdLEDOfTheLEDStrip = 3,
    // Set the 4th LED of the LED strip
    SetThe4ThLEDOfTheLEDStrip = 4,
    // Set the 5th LED of the LED strip
    SetThe5ThLEDOfTheLEDStrip = 5,
    // Set the 6th LED of the LED strip
    SetThe6ThLEDOfTheLEDStrip = 6,
    // Set the 7th LED of the LED strip
    SetThe7ThLEDOfTheLEDStrip = 7,
    // Set the 8th LED of the LED strip
    SetThe8ThLEDOfTheLEDStrip = 8
};

struct MainSetLedRgbDataStrip1Request
{
    // led index
    moza::as::wheelbase_type::MainSetLedRgbDataStrip1RequestLedIndex ledIndex{};
    // red
    std::uint8_t red{};
    // green
    std::uint8_t green{};
    // blue
    std::uint8_t blue{};
};

enum class MainGetLedRgbDataStrip1ResponseLedIndex1 : std::uint8_t
{
    // All LEDs on the LED strip
    AllLEDsOnTheLEDStrip = 0,
    // The 1st LED of the LED strip
    The1StLEDOfTheLEDStrip = 1,
    // The 2nd LED of the LED strip
    The2NdLEDOfTheLEDStrip = 2,
    // The 3rd LED of the LED strip
    The3RdLEDOfTheLEDStrip = 3,
    // The 4th LED of the LED strip
    The4ThLEDOfTheLEDStrip = 4,
    // The 5th LED of the LED strip
    The5ThLEDOfTheLEDStrip = 5,
    // The 6th LED of the LED strip
    The6ThLEDOfTheLEDStrip = 6,
    // The 7th LED of the LED strip
    The7ThLEDOfTheLEDStrip = 7,
    // The 8th LED of the LED strip
    The8ThLEDOfTheLEDStrip = 8
};

struct MainGetLedRgbDataStrip1Response
{
    // led index
    moza::as::wheelbase_type::MainGetLedRgbDataStrip1ResponseLedIndex1 ledIndex1{};
    // red
    std::uint8_t led{};
    // green
    std::uint8_t led1{};
    // blue
    std::uint8_t led2{};
};

enum class MainSetLedRgbDataStrip2RequestLedIndex : std::uint8_t
{
    // Set the entire LED strip
    SetTheEntireLEDStrip = 0,
    // Set the 1st LED of the LED strip
    SetThe1StLEDOfTheLEDStrip = 1,
    // Set the 2nd LED of the LED strip
    SetThe2NdLEDOfTheLEDStrip = 2,
    // Set the 3rd LED of the LED strip
    SetThe3RdLEDOfTheLEDStrip = 3,
    // Set the 4th LED of the LED strip
    SetThe4ThLEDOfTheLEDStrip = 4,
    // Set the 5th LED of the LED strip
    SetThe5ThLEDOfTheLEDStrip = 5,
    // Set the 6th LED of the LED strip
    SetThe6ThLEDOfTheLEDStrip = 6,
    // Set the 7th LED of the LED strip
    SetThe7ThLEDOfTheLEDStrip = 7,
    // Set the 8th LED of the LED strip
    SetThe8ThLEDOfTheLEDStrip = 8
};

struct MainSetLedRgbDataStrip2Request
{
    // led index
    moza::as::wheelbase_type::MainSetLedRgbDataStrip2RequestLedIndex ledIndex{};
    // red
    std::uint8_t red{};
    // green
    std::uint8_t green{};
    // blue
    std::uint8_t blue{};
};

enum class MainGetLedRgbDataStrip2ResponseLedIndex1 : std::uint8_t
{
    // All LEDs on the LED strip
    AllLEDsOnTheLEDStrip = 0,
    // The 1st LED of the LED strip
    The1StLEDOfTheLEDStrip = 1,
    // The 2nd LED of the LED strip
    The2NdLEDOfTheLEDStrip = 2,
    // The 3rd LED of the LED strip
    The3RdLEDOfTheLEDStrip = 3,
    // The 4th LED of the LED strip
    The4ThLEDOfTheLEDStrip = 4,
    // The 5th LED of the LED strip
    The5ThLEDOfTheLEDStrip = 5,
    // The 6th LED of the LED strip
    The6ThLEDOfTheLEDStrip = 6,
    // The 7th LED of the LED strip
    The7ThLEDOfTheLEDStrip = 7,
    // The 8th LED of the LED strip
    The8ThLEDOfTheLEDStrip = 8
};

struct MainGetLedRgbDataStrip2Response
{
    // led index
    moza::as::wheelbase_type::MainGetLedRgbDataStrip2ResponseLedIndex1 ledIndex1{};
    // red
    std::uint8_t led{};
    // green
    std::uint8_t led1{};
    // blue
    std::uint8_t led2{};
};

enum class MainCtrlFfbNewEffectRequestType : std::uint8_t
{
    // None
    None = 0,
    // Constant Force
    ConstantForce = 1,
    // Ramp
    Ramp = 2,
    // Square
    Square = 3,
    // Sine
    Sine = 4,
    // Triangle
    Triangle = 5,
    // Sawtooth Up
    SawtoothUp = 6,
    // Sawtooth Down
    SawtoothDown = 7,
    // Spring
    Spring = 8,
    // Damper
    Damper = 9,
    // Inertia
    Inertia = 10,
    // Friction
    Friction = 11
};

struct MainCtrlFfbNewEffectRequest
{
    moza::as::wheelbase_type::MainCtrlFfbNewEffectRequestType type{};
    // Omit this parameter to allocate an index automatically; use 1-80 when specified.
    std::uint8_t index{};
};

struct MainCtrlFfbConstantRequestEnableAxis
{
    int field0{};
    int field1{};
    int field2{};
};

struct MainCtrlFfbConstantRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Magnitude
    std::int16_t magnitude{};
    // Duration
    std::uint16_t duration{};
    // Enable Axis
    moza::as::wheelbase_type::MainCtrlFfbConstantRequestEnableAxis enableAxis{};
    // Direction X
    // angle * 100
    std::uint16_t directionX{};
    // Direction Y
    // angle * 100
    std::uint16_t directionY{};
};

struct MainCtrlFfbRampRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Start Level
    std::uint16_t startLevel{};
    // End Level
    std::uint16_t endLevel{};
    // Duration
    std::uint16_t duration{};
    // Enable Axis
    std::uint8_t enableAxis{};
    // Direction X
    std::uint16_t directionX{};
    // Direction Y
    std::uint16_t directionY{};
};

struct MainCtrlFfbPeriodicRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Magnitude
    std::int16_t magnitude{};
    // Offset
    std::int16_t offset{};
    // Phase
    std::uint16_t phase{};
    // Period
    std::uint32_t period{};
    // Duration
    std::uint16_t duration{};
    // Enable Axis
    std::uint8_t enableAxis{};
    // Direction X
    std::uint16_t directionX{};
    // Direction Y
    std::uint16_t directionY{};
};

struct MainCtrlFfbConditionRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Parameter Block Offset
    std::uint8_t parameterBlockOffset{};
    // Center-Point Offset
    std::int16_t centerPointOffset{};
    // Positive Coefficient
    std::int16_t positiveCoefficient{};
    // Negative Coefficient
    std::int16_t negativeCoefficient{};
    // Positive Saturation
    std::uint16_t positiveSaturation{};
    // Negative Saturation
    std::uint16_t negativeSaturation{};
    // Dead Band
    std::uint16_t deadBand{};
    // Duration
    std::uint16_t duration{};
    // Enable Axis
    std::uint8_t enableAxis{};
    // Direction X
    std::uint16_t directionX{};
    // Direction Y
    std::uint16_t directionY{};
};

struct MainCtrlFfbEnvelopeRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Attack Level
    std::uint16_t attackLevel{};
    // Fade Level
    std::uint16_t fadeLevel{};
    // Attack Tim
    std::uint32_t attackTim{};
    // Fade Time
    std::uint32_t fadeTime{};
};

enum class MainCtrlFfbEffectOperationRequestOperation : std::uint8_t
{
    // Stop
    Stop = 0,
    // Start
    Start = 1,
    // Free
    Free = 2
};

struct MainCtrlFfbEffectOperationRequest
{
    // Effect index
    std::uint8_t effectBlockIndex{};
    // Operation
    moza::as::wheelbase_type::MainCtrlFfbEffectOperationRequestOperation operation{};
};

enum class MainCtrlGearLedTelemetryRequestGearLight : std::uint8_t
{
    // Left
    Left = 0,
    // Nose
    Nose = 1,
    // Right
    Right = 2
};

enum class MainCtrlGearLedTelemetryRequestColor : std::uint8_t
{
    // None
    None = 0,
    // Red
    Red = 1,
    // Green
    Green = 2
};

struct MainCtrlGearLedTelemetryRequest
{
    // Gear Light
    moza::as::wheelbase_type::MainCtrlGearLedTelemetryRequestGearLight gearLight{};
    // Brightness
    std::uint8_t brightness{};
    // Color
    moza::as::wheelbase_type::MainCtrlGearLedTelemetryRequestColor color{};
};

enum class MainCtrlLedTelemetryDataRequestGearLight : std::uint8_t
{
    // All LEDs
    AllLEDs = 0,
    // LED strip 1
    LEDStrip1 = 1,
    // LED strip 2
    LEDStrip2 = 2
};

struct MainCtrlLedTelemetryDataRequest
{
    // Gear Light
    moza::as::wheelbase_type::MainCtrlLedTelemetryDataRequestGearLight gearLight{};
    // TelemetryData
    std::uint8_t telemetrydata{};
};

} // namespace wheelbase_type

inline namespace throttle_type {
enum class THEncoderDetectResultGetX : std::uint8_t
{
    // Connection normal
    ConnectionNormal = 0,
    // Connection error
    ConnectionError = 1
};

enum class THEncoderDetectResultGetY : std::uint8_t
{
    // Connection normal
    ConnectionNormal = 0,
    // Connection error
    ConnectionError = 1
};

enum class THEncoderDetectResultGetRx : std::uint8_t
{
    // Connection normal
    ConnectionNormal = 0,
    // Connection error
    ConnectionError = 1
};

enum class THEncoderDetectResultGetRy : std::uint8_t
{
    // Connection normal
    ConnectionNormal = 0,
    // Connection error
    ConnectionError = 1
};

enum class THEncoderDetectResultGetRz : std::uint8_t
{
    // Connection normal
    ConnectionNormal = 0,
    // Connection error
    ConnectionError = 1
};

struct THEncoderDetectResultGet
{
    // Joystick X axis
    moza::as::throttle_type::THEncoderDetectResultGetX x{};
    // Joystick Y axis
    moza::as::throttle_type::THEncoderDetectResultGetY y{};
    // Throttle RX axis
    moza::as::throttle_type::THEncoderDetectResultGetRx rx{};
    // Throttle RY axis
    moza::as::throttle_type::THEncoderDetectResultGetRy ry{};
    // Slider RZ axis
    moza::as::throttle_type::THEncoderDetectResultGetRz rz{};
};

struct THRocketGet
{
    // Joystick X-axis data, [0, 65535]
    std::uint16_t x{};
    // Joystick Y-axis data, [0, 65535]
    std::uint16_t y{};
};

enum class THAxisCalibResultGetEnum1 : std::uint8_t
{
    // Not calibrated
    NotCalibrated = 0,
    // Calibrated
    Calibrated = 1
};

struct THAxisCalibResultGet
{
    // Axis number
    std::uint8_t uint0{};
    moza::as::throttle_type::THAxisCalibResultGetEnum1 enum1{};
};

struct THLampColorALLSet
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

struct THAxisCalibStateGetStatus
{
    int field0{};
    int field1{};
    int field2{};
    int field3{};
    int field4{};
    int field5{};
    int field6{};
    int field7{};
};

struct THAxisCalibStateGet
{
    // Throttle axis calibration status
    moza::as::throttle_type::THAxisCalibStateGetStatus status{};
};

struct THAxisCalibStateSetBitset0
{
    int field0{};
    int field1{};
    int field2{};
    int field3{};
    int field4{};
    int field5{};
    int field6{};
    int field7{};
};

struct THAxisCalibStateSet
{
    moza::as::throttle_type::THAxisCalibStateSetBitset0 bitset0{};
};

struct THAxisCalibState
{
    using Get = moza::as::throttle_type::THAxisCalibStateGet;
    using Set = moza::as::throttle_type::THAxisCalibStateSet;
};

enum class THMotorSetEnum2 : std::uint8_t
{
    // Clockwise
    Clockwise = 0,
    // Counterclockwise
    Counterclockwise = 1
};

struct THMotorSet
{
    // Motor vibration strength adjustment
    std::uint8_t uint0{};
    // Motor vibration duration adjustment, default strength none, duration 0 ms
    std::uint32_t ms{};
    // Motor rotation direction
    moza::as::throttle_type::THMotorSetEnum2 enum2{};
};

enum class THAxisNonlinearParamCfgSetRx : std::uint8_t
{
    // RX
    RX = 0,
    // RY
    RY = 1
};

enum class THAxisNonlinearParamCfgSetParam : std::uint8_t
{
    // Configuration parameter
    ConfigurationParameter = 1
};

struct THAxisNonlinearParamCfgSet
{
    moza::as::throttle_type::THAxisNonlinearParamCfgSetRx rx{};
    moza::as::throttle_type::THAxisNonlinearParamCfgSetParam param{};
};

struct THLampColorStrip1Value
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

struct THLampColorStrip2Value
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

} // namespace throttle_type

inline namespace rudder_type {
struct RDDataGet
{
    // Left brake data, ∈ [0, 65535]
    std::uint16_t uint0{};
    // Right brake data, ∈ [0, 65535]
    std::uint16_t uint1{};
    // Yaw-axis data, ∈ [0, 65535]
    std::uint16_t uint2{};
    // CRC checksum value of Content index and content [0] ~ content[5]
    std::uint8_t contentIndexContentContentCrc{};
};

struct RDRawDataGet
{
    // Initial left brake data, without nonlinear compensation or dead-zone processing, ∈ [0, 65535]
    std::uint16_t uint0{};
    // Initial right brake data, ∈ [0, 65535]
    std::uint16_t uint1{};
    // Initial yaw-axis data, ∈ [0, 65535]
    std::uint16_t uint2{};
    // CRC checksum value of Content index and content [0] ~ content[5]
    std::int8_t contentIndexContentContentCrc{};
};

enum class RDCalibStateGetLeftBrake : std::uint8_t
{
    // Not calibrated
    NotCalibrated = 0,
    // Calibration succeeded
    CalibrationSucceeded = 1,
    // Calibration failed: calibration range too small
    CalibrationFailedCalibrationRangeTooSmall = 2
};

enum class RDCalibStateGetRightBrake : std::uint8_t
{
    // Not calibrated
    NotCalibrated = 0,
    // Calibration succeeded
    CalibrationSucceeded = 1,
    // Calibration failed: calibration range too small
    CalibrationFailedCalibrationRangeTooSmall = 2
};

enum class RDCalibStateGetYawAxis : std::uint8_t
{
    // Not calibrated
    NotCalibrated = 0,
    // Calibration succeeded
    CalibrationSucceeded = 1,
    // Calibration failed: calibration range too small
    CalibrationFailedCalibrationRangeTooSmall = 2
};

struct RDCalibStateGet
{
    // Left brake calibration result
    moza::as::rudder_type::RDCalibStateGetLeftBrake leftBrake{};
    // Right brake calibration result
    moza::as::rudder_type::RDCalibStateGetRightBrake rightBrake{};
    // Yaw-axis calibration result
    moza::as::rudder_type::RDCalibStateGetYawAxis yawAxis{};
};

} // namespace rudder_type

inline namespace stick_type {
struct DataGet
{
    // data
    std::uint64_t data{};
    // CRC checksum value
    std::uint8_t crc{};
};

struct AxisTravelGet
{
    // Axis number
    std::uint8_t uint0{};
    // Axis travel (0 ~ 100%)
    std::uint8_t uint1{};
};

struct LedColorValue
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

struct J03LedColorStatusValue
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

enum class XboxWorkModeValueMode : std::uint8_t
{
    // Non-adjustment mode
    NonAdjustmentMode = 0,
    // Adjustment mode
    AdjustmentMode = 1
};

enum class XboxWorkModeValueMode1 : std::uint8_t
{
    // Default mode
    DefaultMode = 0,
    // Throttle axis and flap axis, trigger axis calibration
    ThrottleAxisAndFlapAxisTriggerAxisCalibration = 1,
    // Force feedback adjustment
    ForceFeedbackAdjustment = 2,
    // Mini-stick calibration mode
    MiniStickCalibrationMode = 3,
    // Color adjustment
    ColorAdjustment = 4
};

enum class XboxWorkModeValueMode2 : std::uint8_t
{
    Value0 = 0,
    // Initialization parameter
    InitializationParameter = 1
};

struct XboxWorkModeValue
{
    // Operating mode
    moza::as::stick_type::XboxWorkModeValueMode mode{};
    // Operating mode submode
    moza::as::stick_type::XboxWorkModeValueMode1 mode1{};
    // Submode parameter
    moza::as::stick_type::XboxWorkModeValueMode2 mode2{};
};

struct J03LedColorButtonValue
{
    // R
    std::uint8_t r{};
    // G
    std::uint8_t g{};
    // B
    std::uint8_t b{};
};

enum class J03AxisEnableSetAxis : std::uint8_t
{
    Value0 = 0
};

enum class J03AxisEnableSetEnable : std::uint8_t
{
    Value0 = 0,
    Value1 = 1
};

struct J03AxisEnableSet
{
    moza::as::stick_type::J03AxisEnableSetAxis axis{};
    moza::as::stick_type::J03AxisEnableSetEnable enable{};
};

} // namespace stick_type

inline namespace throttlePanel_type {
struct TPDataGet
{
    // Standard buttons 1-8
    std::uint8_t uint0{};
    // Standard buttons 9-16
    std::uint8_t uint1{};
    // Standard buttons 17-24
    std::uint8_t uint2{};
    // Standard buttons 25-32
    std::uint8_t uint3{};
};

enum class TPLeftHallCalibResGetResult : std::uint8_t
{
    // Calibration succeeded
    CalibrationSucceeded = 0,
    // Calibration failed
    CalibrationFailed = 1
};

struct TPLeftHallCalibResGet
{
    // Calibration result
    moza::as::throttlePanel_type::TPLeftHallCalibResGetResult result{};
    // Calibration minimum value
    std::uint16_t min{};
    // Calibration maximum value
    std::uint16_t max{};
};

enum class TPRightHallCalibResGetResult : std::uint8_t
{
    // Calibration succeeded
    CalibrationSucceeded = 0,
    // Calibration failed
    CalibrationFailed = 1
};

struct TPRightHallCalibResGet
{
    // Calibration result
    moza::as::throttlePanel_type::TPRightHallCalibResGetResult result{};
    // Calibration minimum value
    std::uint16_t min{};
    // Calibration maximum value
    std::uint16_t max{};
};

} // namespace throttlePanel_type

inline namespace accessory_type {
struct DataGet
{
    // Data packet, data packet format
    std::uint64_t uint0{};
    // CRC8 checksum value of content index and data packet
    std::uint8_t contentIndexCrc{};
};

struct LedBrightnessValue
{
    // Lighting group number
    std::uint8_t led{};
    // Brightness level, 0~15
    std::uint8_t uint1{};
};

struct SegNumValue
{
    // Digit position (from left to right and top to bottom on the segment display)
    std::uint8_t uint0{};
    // Digit value 0~9; values greater than 9 clear the display
    std::uint8_t uint1{};
};

struct SegStrGet
{
    // Digit position (from left to right and top to bottom on the segment display)
    std::uint8_t uint0{};
    // Digit value 0~9; values greater than 9 clear the display
    std::uint8_t uint1{};
};

enum class SegStrSetEnum1 : std::uint8_t
{
    // Off
    Off = 0,
    // On
    On = 1
};

struct SegStrSet
{
    // Digit position (from left to right and top to bottom on the segment display)
    std::uint8_t uint0{};
    moza::as::accessory_type::SegStrSetEnum1 enum1{};
};

struct SegStr
{
    using Get = moza::as::accessory_type::SegStrGet;
    using Set = moza::as::accessory_type::SegStrSet;
};

enum class OtherGetSegStrResponseEnum1 : std::uint8_t
{
    // Off
    Off = 0,
    // On
    On = 1
};

struct OtherGetSegStrResponse
{
    // Digit position (from left to right and top to bottom on the segment display)
    std::uint8_t uint0{};
    moza::as::accessory_type::OtherGetSegStrResponseEnum1 enum1{};
};

} // namespace accessory_type

inline namespace controlPanel_type {
enum class CDCodeScreen1SetMs : std::uint8_t
{
    // 0
    Value0 = 0,
    // 1
    Value1 = 1,
    // 2
    Value2 = 2,
    // 3
    Value3 = 3,
    // 4
    Value4 = 4
};

enum class CDCodeScreen1SetEnum1 : std::uint8_t
{
    // Off
    Off = 0,
    // On
    On = 1
};

struct CDCodeScreen1Set
{
    // Segment display mapping
    moza::as::controlPanel_type::CDCodeScreen1SetMs ms{};
    moza::as::controlPanel_type::CDCodeScreen1SetEnum1 enum1{};
    std::uint8_t uint2{};
    std::uint8_t uint3{};
    std::uint8_t uint4{};
    std::uint8_t uint5{};
};

struct CDCodeScreen2Set
{
    // Segment display mapping
    std::uint8_t uint0{};
    std::uint8_t uint1{};
    std::uint8_t uint2{};
    std::uint8_t uint3{};
    std::uint8_t uint4{};
    std::uint8_t uint5{};
    std::uint8_t uint6{};
    std::uint8_t uint7{};
    std::uint8_t uint8{};
    std::uint8_t uint9{};
    std::uint8_t uint10{};
    std::uint8_t uint11{};
    std::uint8_t uint12{};
    std::uint8_t uint13{};
    std::uint8_t uint14{};
};

struct CDExtCodeChangeGet
{
    std::uint8_t _1stScreen{};
    std::uint8_t _2stScreen{};
    std::uint8_t _3stScreen{};
    std::uint8_t _4stScreen{};
};

struct CDCodeScreen3Set
{
    std::uint8_t uint0{};
    std::uint8_t uint1{};
    std::uint8_t uint2{};
    std::uint8_t uint3{};
    std::uint8_t uint4{};
    std::uint8_t uint5{};
    std::uint8_t uint6{};
    std::uint8_t uint7{};
    std::uint8_t uint8{};
    std::uint8_t uint9{};
    std::uint8_t uint10{};
    std::uint8_t uint11{};
    std::uint8_t uint12{};
    std::uint8_t uint13{};
    std::uint8_t uint14{};
    // Icons; each bit indicates the on/off state of one icon, bit7: T1
    // bit6: T2
    // bit5: T3
    // bit4: T4
    // bit3: T5
    // bit2: T6
    // bit1: T7
    // bit0: T8
    std::uint8_t field15{};
    // Icons; each bit indicates the on/off state of one icon, bit7: T9
    // bit6: T10
    // bit5: T11
    // bit4: P1
    // bit3: P2
    // bit2: P3
    // bit1: P4
    // bit0: P5
    std::uint8_t field16{};
    // Icons; each bit indicates the on/off state of one icon, bit7: P6
    // bit6: P7
    // bit5: P8
    // bit4: T13
    // bit3: T15
    // bit2: T14
    // bit1: T16
    // bit0: P9
    std::uint8_t field17{};
    // Icons; each bit indicates the on/off state of one icon, bit7: L1
    // bit6: L2
    // bit5: P10
    // bit4~0: none
    std::uint8_t field18{};
};

struct CDCodeScreen4Set
{
    std::uint8_t uint0{};
    std::uint8_t uint1{};
    std::uint8_t uint2{};
    std::uint8_t uint3{};
    std::uint8_t uint4{};
    std::uint8_t uint5{};
    std::uint8_t uint6{};
    std::uint8_t uint7{};
    std::uint8_t uint8{};
    std::uint8_t uint9{};
    std::uint8_t uint10{};
    std::uint8_t uint11{};
    std::uint8_t uint12{};
    std::uint8_t uint13{};
    std::uint8_t uint14{};
    // Icons; each bit indicates the on/off state of one icon, bit7: T1
    // bit6: T2
    // bit5: T3
    // bit4: T4
    // bit3: T5
    // bit2: T6
    // bit1: T7
    // bit0: T8
    std::uint8_t field15{};
    // Icons; each bit indicates the on/off state of one icon, bit7: T9
    // bit6: T10
    // bit5: T11
    // bit4: P1
    // bit3: P2
    // bit2: P3
    // bit1: P4
    // bit0: P5
    std::uint8_t field16{};
    // Icons; each bit indicates the on/off state of one icon, bit7: P6
    // bit6: P7
    // bit5: P8
    // bit4: T13
    // bit3: T15
    // bit2: T14
    // bit1: T16
    // bit0: P9
    std::uint8_t field17{};
    // Icons; each bit indicates the on/off state of one icon, bit7: L1
    // bit6: L2
    // bit5: P10
    // bit4~0: none
    std::uint8_t field18{};
};

enum class CDExtCodeChangeStartRequestField0 : std::uint8_t
{
    // Off
    Off = 0,
    // On
    On = 1
};

struct CDExtCodeChangeStartRequest
{
    moza::as::controlPanel_type::CDExtCodeChangeStartRequestField0 field0{};
    std::uint8_t _1stScreen{};
    std::uint8_t _2stScreen{};
    std::uint8_t _3stScreen{};
    std::uint8_t _4stScreen{};
};

struct CDCtrlCodeScreen4Request
{
    std::uint8_t uint0{};
    std::uint8_t uint1{};
    std::uint8_t uint2{};
    std::uint8_t uint3{};
    // Icons; each bit indicates the on/off state of one icon, bit7: T1
    // bit6: T2
    // bit5: T3
    // bit4~0: none
    std::uint8_t uint4{};
};

struct CDGetShiftRegStatusResponse
{
    std::uint8_t _1{};
    std::uint8_t _2{};
    std::uint8_t _3{};
};

enum class CDLedEnableRequestEnable : std::uint8_t
{
    // Turn off lighting
    TurnOffLighting = 0,
    // Turn on lighting
    TurnOnLighting = 1
};

struct CDLedEnableRequest
{
    // Corresponds to up to 20 status lights
    std::uint8_t index{};
    // Switch
    moza::as::controlPanel_type::CDLedEnableRequestEnable enable{};
};

} // namespace controlPanel_type

namespace internal {

class AsDeviceGeneratedBase : public moza::Device
{
public:
    using moza::Device::Device;
    static constexpr DeviceCategory category = MOZA_DC_AS;

    // This device type currently has no generated parameter accessors.

};

class WheelbaseGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_WHEELBASE;

    /**
     * @brief Get yaw angle connection status
     * Repository name: `Main_YawConnected`.
     * Parameter id: 4; get command id: 4; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawConnected, kYawConnectedParameterId, 4, ReadOnlyParameter<int>);

    /**
     * @brief Get yaw angle data
     * Repository name: `Main_YawData`.
     * Parameter id: 5; get command id: 5; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawData, kYawDataParameterId, 5, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Used by the host software to display axis travel; does not include nonlinear transformation
     * Repository name: `Main_YawLinearData`.
     * Parameter id: 6; get command id: 6; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawLinearData, kYawLinearDataParameterId, 6, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get panel raw data
     * Repository name: `Main_PanelRawData`.
     * Parameter id: 7; get command id: 7; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(panelRawData, kPanelRawDataParameterId, 7, ReadOnlyParameter<moza::as::wheelbase_type::PanelRawDataGet>);

    /**
     * @brief Set and get operating mode
     * Repository name: `Main_WorkingMode`.
     * Parameter id: 8; get command id: 31; set command id: 30.
     */
    MOZA_DECLARE_GENERATED_PARAM(workingMode, kWorkingModeParameterId, 8, Parameter<int>);

    /**
     * @brief Set and get USB mode
     * Repository name: `Main_UsbMode`.
     * Parameter id: 9; get command id: 33; set command id: 32.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbMode, kUsbModeParameterId, 9, Parameter<int>);

    /**
     * @brief Set and get HID report descriptor mode
     * Repository name: `Main_HidReportDescriptorMode`.
     * Parameter id: 10; get command id: 35; set command id: 34.
     */
    MOZA_DECLARE_GENERATED_PARAM(hidReportDescriptorMode, kHidReportDescriptorModeParameterId, 10, Parameter<int>);

    /**
     * @brief Set and get yaw nonlinear Y1
     * Repository name: `Main_YawNonlinearY1`.
     * Parameter id: 11; get command id: 37; set command id: 36.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearY1, kYawNonlinearY1ParameterId, 11, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear Y2
     * Repository name: `Main_YawNonlinearY2`.
     * Parameter id: 12; get command id: 39; set command id: 38.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearY2, kYawNonlinearY2ParameterId, 12, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear Y3
     * Repository name: `Main_YawNonlinearY3`.
     * Parameter id: 13; get command id: 41; set command id: 40.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearY3, kYawNonlinearY3ParameterId, 13, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear Y4
     * Repository name: `Main_YawNonlinearY4`.
     * Parameter id: 14; get command id: 43; set command id: 42.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearY4, kYawNonlinearY4ParameterId, 14, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear Y5
     * Repository name: `Main_YawNonlinearY5`.
     * Parameter id: 15; get command id: 45; set command id: 44.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearY5, kYawNonlinearY5ParameterId, 15, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear X0 (center dead-zone percentage); range 0-100, integer values only. Decimal values are rounded down; must be no greater than X5 input boundary. Invalid combinations may restore the default curve.
     * Repository name: `Main_YawNonlinearX0`.
     * Parameter id: 16; get command id: 47; set command id: 46.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearX0, kYawNonlinearX0ParameterId, 16, Parameter<float>);

    /**
     * @brief Set and get yaw nonlinear X5 (input boundary percentage); range 0-100, integer values only. Decimal values are rounded down; must be no less than X0 center dead-zone. Invalid combinations may restore the default curve.
     * Repository name: `Main_YawNonlinearX5`.
     * Parameter id: 17; get command id: 49; set command id: 48.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawNonlinearX5, kYawNonlinearX5ParameterId, 17, Parameter<float>);

    /**
     * @brief Set and get yaw reverse output
     * Repository name: `Main_YawReverseOutput`.
     * Parameter id: 18; get command id: 51; set command id: 50.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawReverseOutput, kYawReverseOutputParameterId, 18, Parameter<int>);

    /**
     * @brief Set and get including nonlinear adjustment, dead-zone setting, and direction reversal
     * Repository name: `Main_YawConfigEnable`.
     * Parameter id: 19; get command id: 53; set command id: 52.
     */
    MOZA_DECLARE_GENERATED_PARAM(yawConfigEnable, kYawConfigEnableParameterId, 19, Parameter<int>);

    /**
     * @brief Set and get user-selected stick ID
     * Repository name: `Main_UserSelectedStickId`.
     * Parameter id: 20; get command id: 55; set command id: 54.
     */
    MOZA_DECLARE_GENERATED_PARAM(userSelectedStickId, kUserSelectedStickIdParameterId, 20, Parameter<int>);

    /**
     * @brief Set and get base operating mode
     * Repository name: `Main_BaseWorkMode`.
     * Parameter id: 21; get command id: 57; set command id: 56.
     */
    MOZA_DECLARE_GENERATED_PARAM(baseWorkMode, kBaseWorkModeParameterId, 21, Parameter<int>);

    /**
     * @brief Set and get background lighting mode
     * Repository name: `Main_BackgroundLedMode`.
     * Parameter id: 22; get command id: 59; set command id: 58.
     */
    MOZA_DECLARE_GENERATED_PARAM(backgroundLedMode, kBackgroundLedModeParameterId, 22, Parameter<int>);

    /**
     * @brief Set and get background lighting brightness
     * Repository name: `Main_BackgroundLedBrightness`.
     * Parameter id: 23; get command id: 61; set command id: 60.
     */
    MOZA_DECLARE_GENERATED_PARAM(backgroundLedBrightness, kBackgroundLedBrightnessParameterId, 23, Parameter<std::uint8_t>);

    /**
     * @brief Set and get flap lighting mode
     * Repository name: `Main_GearLedMode`.
     * Parameter id: 24; get command id: 63; set command id: 62.
     */
    MOZA_DECLARE_GENERATED_PARAM(gearLedMode, kGearLedModeParameterId, 24, Parameter<int>);

    /**
     * @brief Set and get flap lighting brightness
     * Repository name: `Main_GearLedBrightness`.
     * Parameter id: 25; get command id: 65; set command id: 64.
     */
    MOZA_DECLARE_GENERATED_PARAM(gearLedBrightness, kGearLedBrightnessParameterId, 25, Parameter<std::uint8_t>);

    /**
     * @brief Set and get flap top color
     * Repository name: `Main_GearLedUpColor`.
     * Parameter id: 26; get command id: 67; set command id: 66.
     */
    MOZA_DECLARE_GENERATED_PARAM(gearLedUpColor, kGearLedUpColorParameterId, 26, Parameter<int>);

    /**
     * @brief Set and get flap neutral color
     * Repository name: `Main_GearLedNeutralColor`.
     * Parameter id: 27; get command id: 69; set command id: 68.
     */
    MOZA_DECLARE_GENERATED_PARAM(gearLedNeutralColor, kGearLedNeutralColorParameterId, 27, Parameter<int>);

    /**
     * @brief Set and get flip-cover switch trigger hold time
     * Repository name: `Main_FlapSwitchTriggerHoldTime`.
     * Parameter id: 28; get command id: 71; set command id: 70.
     */
    MOZA_DECLARE_GENERATED_PARAM(flapSwitchTriggerHoldTime, kFlapSwitchTriggerHoldTimeParameterId, 28, Parameter<std::uint16_t>);

    /**
     * @brief Set and get LED control mode_all
     * Repository name: `Main_LedControlMode_ALL`.
     * Parameter id: 29; get command id: 73; set command id: 72.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledControlModeALL, kLedControlModeALLParameterId, 29, Parameter<int>);

    /**
     * @brief Set and get LED control mode_LED strip 1
     * Repository name: `Main_LedControlMode_Strip1`.
     * Parameter id: 30; get command id: 75; set command id: 74.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledControlModeStrip1, kLedControlModeStrip1ParameterId, 30, Parameter<int>);

    /**
     * @brief Set and get LED control mode_LED strip 2
     * Repository name: `Main_LedControlMode_Strip2`.
     * Parameter id: 31; get command id: 77; set command id: 76.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledControlModeStrip2, kLedControlModeStrip2ParameterId, 31, Parameter<int>);

    /**
     * @brief Set and get LED RGB data_all (only supports setting/reading all LED strips as a whole)
     * Repository name: `Main_LedRgbData_ALL`.
     * Parameter id: 32; get command id: 79; set command id: 78.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledRgbDataALL, kLedRgbDataALLParameterId, 32, Parameter<moza::as::wheelbase_type::LedRgbDataALLValue>);

    /**
     * @brief Set and get LED strip brightness_all
     * Repository name: `Main_LedStripBrightness_ALL`.
     * Parameter id: 35; get command id: 85; set command id: 84.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripBrightnessALL, kLedStripBrightnessALLParameterId, 35, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED strip brightness_LED strip 1
     * Repository name: `Main_LedStripBrightness_Strip1`.
     * Parameter id: 36; get command id: 87; set command id: 86.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripBrightnessStrip1, kLedStripBrightnessStrip1ParameterId, 36, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED strip brightness_LED strip 2
     * Repository name: `Main_LedStripBrightness_Strip2`.
     * Parameter id: 37; get command id: 89; set command id: 88.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripBrightnessStrip2, kLedStripBrightnessStrip2ParameterId, 37, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED strip effect_all
     * Repository name: `Main_LedStripEffect_ALL`.
     * Parameter id: 38; get command id: 91; set command id: 90.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripEffectALL, kLedStripEffectALLParameterId, 38, Parameter<int>);

    /**
     * @brief Set and get LED strip effect_LED strip 1
     * Repository name: `Main_LedStripEffect_Strip1`.
     * Parameter id: 39; get command id: 93; set command id: 92.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripEffectStrip1, kLedStripEffectStrip1ParameterId, 39, Parameter<int>);

    /**
     * @brief Set and get LED strip effect_LED strip 2
     * Repository name: `Main_LedStripEffect_Strip2`.
     * Parameter id: 40; get command id: 95; set command id: 94.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripEffectStrip2, kLedStripEffectStrip2ParameterId, 40, Parameter<int>);

    /**
     * @brief Set and get LED strip control source_all
     * Repository name: `Main_LedStripControlSource_ALL`.
     * Parameter id: 41; get command id: 97; set command id: 96.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripControlSourceALL, kLedStripControlSourceALLParameterId, 41, Parameter<int>);

    /**
     * @brief Set and get LED strip control source_LED strip 1
     * Repository name: `Main_LedStripControlSource_Strip1`.
     * Parameter id: 42; get command id: 99; set command id: 98.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripControlSourceStrip1, kLedStripControlSourceStrip1ParameterId, 42, Parameter<int>);

    /**
     * @brief Set and get LED strip control source_LED strip 2
     * Repository name: `Main_LedStripControlSource_Strip2`.
     * Parameter id: 43; get command id: 101; set command id: 100.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledStripControlSourceStrip2, kLedStripControlSourceStrip2ParameterId, 43, Parameter<int>);

    /**
     * @brief Set axis calibration
     * Repository name: `Main_AxisCalibrate`.
     * Parameter id: 44; get command id: -1; set command id: 102.
     */
    MOZA_DECLARE_GENERATED_PARAM(axisCalibrate, kAxisCalibrateParameterId, 44, WriteOnlyParameter<moza::as::wheelbase_type::AxisCalibrateSet>);

    /**
     * @brief Set axis mode_axis 1
     * Repository name: `Main_AxisMode_Axis1`.
     * Parameter id: 45; get command id: 105; set command id: 104.
     */
    MOZA_DECLARE_GENERATED_PARAM(axisModeAxis1, kAxisModeAxis1ParameterId, 45, Parameter<int>);

    /**
     * @brief Set axis mode_axis 2
     * Repository name: `Main_AxisMode_Axis2`.
     * Parameter id: 46; get command id: 107; set command id: 106.
     */
    MOZA_DECLARE_GENERATED_PARAM(axisModeAxis2, kAxisModeAxis2ParameterId, 46, Parameter<int>);

    /**
     * @brief Manual calibration of X axis
     * Repository name: `Main_HandCaliX`.
     * Parameter id: 47; get command id: -1; set command id: 120.
     */
    MOZA_DECLARE_GENERATED_PARAM(handCaliX, kHandCaliXParameterId, 47, WriteOnlyParameter<int>);

    /**
     * @brief Manual calibration of Y axis
     * Repository name: `Main_HandCaliY`.
     * Parameter id: 48; get command id: -1; set command id: 121.
     */
    MOZA_DECLARE_GENERATED_PARAM(handCaliY, kHandCaliYParameterId, 48, WriteOnlyParameter<int>);

    /**
     * @brief Auto-calibration start and cancel command
     * Repository name: `Main_SetAutoCaliStart`.
     * Parameter id: 49; get command id: -1; set command id: 122.
     */
    MOZA_DECLARE_GENERATED_PARAM(setAutoCaliStart, kSetAutoCaliStartParameterId, 49, WriteOnlyParameter<int>);

    /**
     * @brief Return the current auto-calibration status
     * Repository name: `Main_GetAutoCaliStart`.
     * Parameter id: 50; get command id: 123; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(getAutoCaliStart, kGetAutoCaliStartParameterId, 50, ReadOnlyParameter<int>);

    /**
     * @brief Set and get joystick mode
     * Repository name: `Main_CtrlModeSet`.
     * Parameter id: 53; get command id: 127; set command id: 126.
     */
    MOZA_DECLARE_GENERATED_PARAM(ctrlModeSet, kCtrlModeSetParameterId, 53, Parameter<int>);

    /**
     * @brief Get app status
     * Repository name: `Main_AppState`.
     * Parameter id: 54; get command id: 128; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(appState, kAppStateParameterId, 54, ReadOnlyParameter<int>);

    /**
     * @brief Lighting group 1 mode (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `MainSet_LightGroupCommonModegroup1`.
     * Parameter id: 55; get command id: 153; set command id: 11.
     */
    MOZA_DECLARE_GENERATED_PARAM(mainSetLightGroupCommonModegroup1, kMainSetLightGroupCommonModegroup1ParameterId, 55, Parameter<int>);

    /**
     * @brief Lighting group 2 mode (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `MainSet_LightGroupCommonModegourp2`.
     * Parameter id: 56; get command id: 154; set command id: 12.
     */
    MOZA_DECLARE_GENERATED_PARAM(mainSetLightGroupCommonModegourp2, kMainSetLightGroupCommonModegourp2ParameterId, 56, Parameter<int>);

    /**
     * @brief Lighting group 3 mode (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `MainSet_LightGroupCommonModegourp3`.
     * Parameter id: 57; get command id: 155; set command id: 13.
     */
    MOZA_DECLARE_GENERATED_PARAM(mainSetLightGroupCommonModegourp3, kMainSetLightGroupCommonModegourp3ParameterId, 57, Parameter<int>);

    /**
     * @brief Set and get auto-calibration travel-check-only function enable bit
     * Repository name: `Main_AutoCaliTravelCheckOnly`.
     * Parameter id: 58; get command id: 363; set command id: 103.
     */
    MOZA_DECLARE_GENERATED_PARAM(autoCaliTravelCheckOnly, kAutoCaliTravelCheckOnlyParameterId, 58, Parameter<int>);

    /**
     * @brief Set and get X-axis travel position dead zone_center position
     * Repository name: `Main_Steer_TravelLocDeadbandX_Center`.
     * Parameter id: 59; get command id: 159; set command id: 158.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTravelLocDeadbandXCenter, kSteerTravelLocDeadbandXCenterParameterId, 59, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis travel position dead zone_boundary position
     * Repository name: `Main_Steer_TravelLocDeadbandX_Border`.
     * Parameter id: 60; get command id: 161; set command id: 160.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTravelLocDeadbandXBorder, kSteerTravelLocDeadbandXBorderParameterId, 60, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis travel position dead zone_center position
     * Repository name: `Main_Steer_TravelLocDeadbandY_Center`.
     * Parameter id: 61; get command id: 163; set command id: 162.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTravelLocDeadbandYCenter, kSteerTravelLocDeadbandYCenterParameterId, 61, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis travel position dead zone_boundary position
     * Repository name: `Main_Steer_TravelLocDeadbandY_Border`.
     * Parameter id: 62; get command id: 165; set command id: 164.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTravelLocDeadbandYBorder, kSteerTravelLocDeadbandYBorderParameterId, 62, Parameter<std::uint8_t>);

    /**
     * @brief Set and get game force-feedback strength
     * Repository name: `Main_Steer_GameForceFeedbackCoefficient`.
     * Parameter id: 63; get command id: 167; set command id: 166.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerGameForceFeedbackCoefficient, kSteerGameForceFeedbackCoefficientParameterId, 63, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis direction reversal
     * Repository name: `Main_Steer_ReverseDirX`.
     * Parameter id: 71; get command id: 183; set command id: 182.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerReverseDirX, kSteerReverseDirXParameterId, 71, Parameter<int>);

    /**
     * @brief Set and get Y-axis direction reversal
     * Repository name: `Main_Steer_ReverseDirY`.
     * Parameter id: 72; get command id: 185; set command id: 184.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerReverseDirY, kSteerReverseDirYParameterId, 72, Parameter<int>);

    /**
     * @brief Set and get X-axis maximum position
     * Repository name: `Main_Steer_MaxPosX`.
     * Parameter id: 73; get command id: 187; set command id: 186.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMaxPosX, kSteerMaxPosXParameterId, 73, Parameter<std::uint16_t>);

    /**
     * @brief Set and get X-axis center position
     * Repository name: `Main_Steer_CenterPosX`.
     * Parameter id: 74; get command id: 189; set command id: 188.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerCenterPosX, kSteerCenterPosXParameterId, 74, Parameter<std::uint16_t>);

    /**
     * @brief Set and get X-axis minimum position
     * Repository name: `Main_Steer_MinPosX`.
     * Parameter id: 75; get command id: 191; set command id: 190.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMinPosX, kSteerMinPosXParameterId, 75, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Y-axis maximum position
     * Repository name: `Main_Steer_MaxPosY`.
     * Parameter id: 76; get command id: 193; set command id: 192.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMaxPosY, kSteerMaxPosYParameterId, 76, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Y-axis center position
     * Repository name: `Main_Steer_CenterPosY`.
     * Parameter id: 77; get command id: 195; set command id: 194.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerCenterPosY, kSteerCenterPosYParameterId, 77, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Y-axis minimum position
     * Repository name: `Main_Steer_MinPosY`.
     * Parameter id: 78; get command id: 197; set command id: 196.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMinPosY, kSteerMinPosYParameterId, 78, Parameter<std::uint16_t>);

    /**
     * @brief Set and get motor maximum torque limit
     * Repository name: `Main_Steer_TorqueMax`.
     * Parameter id: 79; get command id: 199; set command id: 198.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueMax, kSteerTorqueMaxParameterId, 79, Parameter<std::uint16_t>);

    /**
     * @brief Set and get X-axis travel torque limit_positive travel
     * Repository name: `Main_Steer_MoveLimitX_Pos`.
     * Parameter id: 80; get command id: 201; set command id: 200.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMoveLimitXPos, kSteerMoveLimitXPosParameterId, 80, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis travel torque limit_negative travel
     * Repository name: `Main_Steer_MoveLimitX_Neg`.
     * Parameter id: 81; get command id: 203; set command id: 202.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMoveLimitXNeg, kSteerMoveLimitXNegParameterId, 81, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis travel torque limit_positive travel
     * Repository name: `Main_Steer_MoveLimitY_Pos`.
     * Parameter id: 82; get command id: 205; set command id: 204.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMoveLimitYPos, kSteerMoveLimitYPosParameterId, 82, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis travel torque limit_negative travel
     * Repository name: `Main_Steer_MoveLimitY_Neg`.
     * Parameter id: 83; get command id: 207; set command id: 206.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerMoveLimitYNeg, kSteerMoveLimitYNegParameterId, 83, Parameter<std::uint8_t>);

    /**
     * @brief Set and get joystick initial position_X axis
     * Repository name: `Main_Steer_LocCompen_X`.
     * Parameter id: 84; get command id: 209; set command id: 208.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocCompenX, kSteerLocCompenXParameterId, 84, Parameter<std::uint8_t>);

    /**
     * @brief Set and get joystick initial position_Y axis
     * Repository name: `Main_Steer_LocCompen_Y`.
     * Parameter id: 85; get command id: 211; set command id: 210.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocCompenY, kSteerLocCompenYParameterId, 85, Parameter<std::uint8_t>);

    /**
     * @brief Set and get resultant force-feedback coefficient
     * Repository name: `Main_Steer_AllStrengthCoefficient`.
     * Parameter id: 86; get command id: 213; set command id: 212.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerAllStrengthCoefficient, kSteerAllStrengthCoefficientParameterId, 86, Parameter<std::uint16_t>);

    /**
     * @brief Set and get spring force-feedback coefficient
     * Repository name: `Main_Steer_SpringCoefficient`.
     * Parameter id: 87; get command id: 215; set command id: 214.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSpringCoefficient, kSteerSpringCoefficientParameterId, 87, Parameter<std::uint16_t>);

    /**
     * @brief Set and get damping force-feedback coefficient
     * Repository name: `Main_Steer_DampCoefficient`.
     * Parameter id: 88; get command id: 217; set command id: 216.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerDampCoefficient, kSteerDampCoefficientParameterId, 88, Parameter<std::uint16_t>);

    /**
     * @brief Set and get inertia force-feedback coefficient
     * Repository name: `Main_Steer_InertiaCoefficient`.
     * Parameter id: 89; get command id: 219; set command id: 218.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerInertiaCoefficient, kSteerInertiaCoefficientParameterId, 89, Parameter<std::uint16_t>);

    /**
     * @brief Set and get friction force-feedback coefficient
     * Repository name: `Main_Steer_FricCoefficient`.
     * Parameter id: 90; get command id: 221; set command id: 220.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerFricCoefficient, kSteerFricCoefficientParameterId, 90, Parameter<std::uint16_t>);

    /**
     * @brief Set and get X-axis configuration enable, enabling axis reversal, travel limits, initial position, dead zone, etc.
     * Repository name: `Main_Steer_SetAxisConfigEnable_X`.
     * Parameter id: 91; get command id: 223; set command id: 222.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetAxisConfigEnableX, kSteerSetAxisConfigEnableXParameterId, 91, Parameter<int>);

    /**
     * @brief Set and get Y-axis configuration enable, enabling axis reversal, travel limits, initial position, dead zone, etc.
     * Repository name: `Main_Steer_SetAxisConfigEnable_Y`.
     * Parameter id: 92; get command id: 225; set command id: 224.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetAxisConfigEnableY, kSteerSetAxisConfigEnableYParameterId, 92, Parameter<int>);

    /**
     * @brief Set and get X-axis reset function
     * Repository name: `Main_Steer_AxisReset_X`.
     * Parameter id: 93; get command id: 227; set command id: 226.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerAxisResetX, kSteerAxisResetXParameterId, 93, Parameter<int>);

    /**
     * @brief Set and get Y-axis reset function
     * Repository name: `Main_Steer_AxisReset_Y`.
     * Parameter id: 94; get command id: 229; set command id: 228.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerAxisResetY, kSteerAxisResetYParameterId, 94, Parameter<int>);

    /**
     * @brief Get X-axis motor output torque
     * Repository name: `Main_Steer_TorqueOutX`.
     * Parameter id: 95; get command id: 230; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueOutX, kSteerTorqueOutXParameterId, 95, ReadOnlyParameter<std::int16_t>);

    /**
     * @brief Get Y-axis motor output torque
     * Repository name: `Main_Steer_TorqueOutY`.
     * Parameter id: 96; get command id: 231; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueOutY, kSteerTorqueOutYParameterId, 96, ReadOnlyParameter<std::int16_t>);

    /**
     * @brief Set and get travel extension flag
     * Repository name: `Main_Steer_ExtendTravelFlag`.
     * Parameter id: 97; get command id: 233; set command id: 232.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerExtendTravelFlag, kSteerExtendTravelFlagParameterId, 97, Parameter<int>);

    /**
     * @brief Set and get thermal control strategy
     * Repository name: `Main_Steer_TempProtectMode`.
     * Parameter id: 98; get command id: 235; set command id: 234.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTempProtectMode, kSteerTempProtectModeParameterId, 98, Parameter<int>);

    /**
     * @brief Set and get joystick output mode
     * Repository name: `Main_JoystickOutputModeSelect`.
     * Parameter id: 99; get command id: 567; set command id: 566.
     */
    MOZA_DECLARE_GENERATED_PARAM(joystickOutputModeSelect, kJoystickOutputModeSelectParameterId, 99, Parameter<int>);

    /**
     * @brief Set and get hardware trim function enable
     * Repository name: `Main_Steer_HardwareBlanceEnable`.
     * Parameter id: 103; get command id: 241; set command id: 240.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceEnable, kSteerHardwareBlanceEnableParameterId, 103, Parameter<int>);

    /**
     * @brief Set and get trim follow rate_all axes (average)
     * Repository name: `Main_Steer_HardwareBlanceSpeed`.
     * Parameter id: 104; get command id: 243; set command id: 242.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceSpeed, kSteerHardwareBlanceSpeedParameterId, 104, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow rate_X axis
     * Repository name: `Main_Steer_HardwareBlanceSpeed_X`.
     * Parameter id: 105; get command id: 245; set command id: 244.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceSpeedX, kSteerHardwareBlanceSpeedXParameterId, 105, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow rate_Y axis
     * Repository name: `Main_Steer_HardwareBlanceSpeed_Y`.
     * Parameter id: 106; get command id: 247; set command id: 246.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceSpeedY, kSteerHardwareBlanceSpeedYParameterId, 106, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_NoseDown; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_NoseDown`.
     * Parameter id: 107; get command id: 249; set command id: 248.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindNoseDown, kSteerHardwareBlanceButtonBindNoseDownParameterId, 107, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Rwd; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_Rwd`.
     * Parameter id: 108; get command id: 251; set command id: 250.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindRwd, kSteerHardwareBlanceButtonBindRwdParameterId, 108, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_NoseUp; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_NoseUp`.
     * Parameter id: 109; get command id: 253; set command id: 252.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindNoseUp, kSteerHardwareBlanceButtonBindNoseUpParameterId, 109, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Lwd; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_Lwd`.
     * Parameter id: 110; get command id: 255; set command id: 254.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindLwd, kSteerHardwareBlanceButtonBindLwdParameterId, 110, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Trim; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_Trim`.
     * Parameter id: 111; get command id: 257; set command id: 256.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindTrim, kSteerHardwareBlanceButtonBindTrimParameterId, 111, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Recenter; button value range 0~203. 0=unset, 1~128=standard buttons, 200~203=hat switch (Up=200, Right=201, Down=202, Left=203), 129~199 are invalid.
     * Repository name: `Main_Steer_HardwareBlanceButtonBind_Recenter`.
     * Parameter id: 112; get command id: 259; set command id: 258.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceButtonBindRecenter, kSteerHardwareBlanceButtonBindRecenterParameterId, 112, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Up
     * Repository name: `Main_Steer_HardwareBlanceLimit_Up`.
     * Parameter id: 113; get command id: 261; set command id: 260.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceLimitUp, kSteerHardwareBlanceLimitUpParameterId, 113, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Right
     * Repository name: `Main_Steer_HardwareBlanceLimit_Right`.
     * Parameter id: 114; get command id: 263; set command id: 262.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceLimitRight, kSteerHardwareBlanceLimitRightParameterId, 114, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Down
     * Repository name: `Main_Steer_HardwareBlanceLimit_Down`.
     * Parameter id: 115; get command id: 265; set command id: 264.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceLimitDown, kSteerHardwareBlanceLimitDownParameterId, 115, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Left
     * Repository name: `Main_Steer_HardwareBlanceLimit_Left`.
     * Parameter id: 116; get command id: 267; set command id: 266.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceLimitLeft, kSteerHardwareBlanceLimitLeftParameterId, 116, Parameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_X axis
     * Repository name: `Main_Steer_HardwareBlancePos_X`.
     * Parameter id: 117; get command id: 268; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlancePosX, kSteerHardwareBlancePosXParameterId, 117, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get hardware trim button binding_Y axis
     * Repository name: `Main_Steer_HardwareBlancePos_Y`.
     * Parameter id: 118; get command id: 269; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlancePosY, kSteerHardwareBlancePosYParameterId, 118, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Hardware trim position recenter
     * Repository name: `Main_Steer_HardwareBlanceRecenter`.
     * Parameter id: 119; get command id: -1; set command id: 270.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdSteerHardwareBlanceRecenter, kMainSetSteerHardwareBlanceRecenterCommandId, 270, Command<>);

    /**
     * @brief Set and get enable for hardware trim to automatically follow game force trim
     * Repository name: `Main_Steer_HardwareBlanceAutoBalance`.
     * Parameter id: 120; get command id: 273; set command id: 272.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerHardwareBlanceAutoBalance, kSteerHardwareBlanceAutoBalanceParameterId, 120, Parameter<int>);

    /**
     * @brief Trigger hardware trim button by command_NoseDown
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_NoseDown`.
     * Parameter id: 121; get command id: -1; set command id: 274.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerNoseDown, kSteerSetHardwareBlanceCommandTriggerNoseDownParameterId, 121, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Trigger hardware trim button by command_Rwd
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_Rwd`.
     * Parameter id: 122; get command id: -1; set command id: 276.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerRwd, kSteerSetHardwareBlanceCommandTriggerRwdParameterId, 122, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Trigger hardware trim button by command_NoseUp
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_NoseUp`.
     * Parameter id: 123; get command id: -1; set command id: 278.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerNoseUp, kSteerSetHardwareBlanceCommandTriggerNoseUpParameterId, 123, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Trigger hardware trim button by command_Lwd
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_Lwd`.
     * Parameter id: 124; get command id: -1; set command id: 280.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerLwd, kSteerSetHardwareBlanceCommandTriggerLwdParameterId, 124, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Trigger hardware trim button by command_Trim
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_Trim`.
     * Parameter id: 125; get command id: -1; set command id: 282.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerTrim, kSteerSetHardwareBlanceCommandTriggerTrimParameterId, 125, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Trigger hardware trim button by command_Recenter
     * Repository name: `Main_Steer_SetHardwareBlanceCommandTrigger_Recenter`.
     * Parameter id: 126; get command id: -1; set command id: 284.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetHardwareBlanceCommandTriggerRecenter, kSteerSetHardwareBlanceCommandTriggerRecenterParameterId, 126, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get joystick connection detection protection function
     * Repository name: `Main_Steer_StickConnectCheckFlag`.
     * Parameter id: 127; get command id: 287; set command id: 286.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStickConnectCheckFlag, kSteerStickConnectCheckFlagParameterId, 127, Parameter<int>);

    /**
     * @brief Set and get overall force coefficient by axis_X axis
     * Repository name: `Main_Steer_TotalAdvancedSetting_X`.
     * Parameter id: 128; get command id: 289; set command id: 288.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTotalAdvancedSettingX, kSteerTotalAdvancedSettingXParameterId, 128, Parameter<std::uint8_t>);

    /**
     * @brief Set and get overall force coefficient by axis_Y axis
     * Repository name: `Main_Steer_TotalAdvancedSetting_Y`.
     * Parameter id: 129; get command id: 291; set command id: 290.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTotalAdvancedSettingY, kSteerTotalAdvancedSettingYParameterId, 129, Parameter<std::uint8_t>);

    /**
     * @brief Set and get maximum output torque limiting force coefficient by axis_X axis
     * Repository name: `Main_Steer_TorqueLimitAdvancedSetting_X`.
     * Parameter id: 130; get command id: 293; set command id: 292.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueLimitAdvancedSettingX, kSteerTorqueLimitAdvancedSettingXParameterId, 130, Parameter<std::uint8_t>);

    /**
     * @brief Set and get maximum output torque limiting force coefficient by axis_Y axis
     * Repository name: `Main_Steer_TorqueLimitAdvancedSetting_Y`.
     * Parameter id: 131; get command id: 295; set command id: 294.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueLimitAdvancedSettingY, kSteerTorqueLimitAdvancedSettingYParameterId, 131, Parameter<std::uint8_t>);

    /**
     * @brief Set and get enable for breakout force (adaptive centering) hands-off detection function
     * Repository name: `Main_Steer_StartForceHandsOffEnable`.
     * Parameter id: 132; get command id: 297; set command id: 296.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceHandsOffEnable, kSteerStartForceHandsOffEnableParameterId, 132, Parameter<int>);

    /**
     * @brief Set and get enable for breakout force (adaptive centering) function
     * Repository name: `Main_Steer_StartForceEnable`.
     * Parameter id: 133; get command id: 299; set command id: 298.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceEnable, kSteerStartForceEnableParameterId, 133, Parameter<int>);

    /**
     * @brief Set and get breakout force feedback coefficient_all
     * Repository name: `Main_Steer_StartForceCoefficient_ALL`.
     * Parameter id: 134; get command id: 301; set command id: 300.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceCoefficientALL, kSteerStartForceCoefficientALLParameterId, 134, Parameter<std::uint8_t>);

    /**
     * @brief Set and get breakout force feedback coefficient_X axis
     * Repository name: `Main_Steer_StartForceCoefficient_X`.
     * Parameter id: 135; get command id: 303; set command id: 302.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceCoefficientX, kSteerStartForceCoefficientXParameterId, 135, Parameter<std::uint8_t>);

    /**
     * @brief Set and get breakout force feedback coefficient_Y axis
     * Repository name: `Main_Steer_StartForceCoefficient_Y`.
     * Parameter id: 136; get command id: 305; set command id: 304.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceCoefficientY, kSteerStartForceCoefficientYParameterId, 136, Parameter<std::uint8_t>);

    /**
     * @brief Set and get breakout force transition range_all
     * Repository name: `Main_Steer_StartForceTransitionZone_ALL`.
     * Parameter id: 137; get command id: 307; set command id: 306.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceTransitionZoneALL, kSteerStartForceTransitionZoneALLParameterId, 137, Parameter<std::uint8_t>);

    /**
     * @brief Set and get breakout force transition range_X axis
     * Repository name: `Main_Steer_StartForceTransitionZone_X`.
     * Parameter id: 138; get command id: 309; set command id: 308.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceTransitionZoneX, kSteerStartForceTransitionZoneXParameterId, 138, Parameter<std::uint8_t>);

    /**
     * @brief Set and get breakout force transition range_Y axis
     * Repository name: `Main_Steer_StartForceTransitionZone_Y`.
     * Parameter id: 139; get command id: 311; set command id: 310.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerStartForceTransitionZoneY, kSteerStartForceTransitionZoneYParameterId, 139, Parameter<std::uint8_t>);

    /**
     * @brief Set and get H-pattern gear mode
     * Repository name: `Main_Steer_ShifterMode`.
     * Parameter id: 140; get command id: 313; set command id: 312.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerShifterMode, kSteerShifterModeParameterId, 140, Parameter<int>);

    /**
     * @brief Set and get gear engagement assist coefficient
     * Repository name: `Main_Steer_ShiftInhaleCoefficient`.
     * Parameter id: 142; get command id: 317; set command id: 316.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerShiftInhaleCoefficient, kSteerShiftInhaleCoefficientParameterId, 142, Parameter<std::uint16_t>);

    /**
     * @brief Set and get gear engagement resistance coefficient
     * Repository name: `Main_Steer_ShiftHinderCoefficient`.
     * Parameter id: 143; get command id: 319; set command id: 318.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerShiftHinderCoefficient, kSteerShiftHinderCoefficientParameterId, 143, Parameter<std::uint16_t>);

    /**
     * @brief Get current X-axis stick position
     * Repository name: `Main_Steer_GetCurrentLocX`.
     * Parameter id: 144; get command id: 320; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerGetCurrentLocX, kSteerGetCurrentLocXParameterId, 144, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get current Y-axis stick position
     * Repository name: `Main_Steer_GetCurrentLocY`.
     * Parameter id: 145; get command id: 321; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerGetCurrentLocY, kSteerGetCurrentLocYParameterId, 145, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Set and get professional setting function enable
     * Repository name: `Main_Steer_AdvancedSettingEnable`.
     * Parameter id: 146; get command id: 323; set command id: 322.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerAdvancedSettingEnable, kSteerAdvancedSettingEnableParameterId, 146, Parameter<int>);

    /**
     * @brief Set and get spring force coefficient by direction_positive X axis
     * Repository name: `Main_Steer_SpringAdvancedSetting_axisX_pos`.
     * Parameter id: 147; get command id: 325; set command id: 324.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSpringAdvancedSettingAxisXPos, kSteerSpringAdvancedSettingAxisXPosParameterId, 147, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force coefficient by direction_negative X axis
     * Repository name: `Main_Steer_SpringAdvancedSetting_axisX_neg`.
     * Parameter id: 148; get command id: 327; set command id: 326.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSpringAdvancedSettingAxisXNeg, kSteerSpringAdvancedSettingAxisXNegParameterId, 148, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force coefficient by direction_positive Y axis
     * Repository name: `Main_Steer_SpringAdvancedSetting_axisY_pos`.
     * Parameter id: 149; get command id: 329; set command id: 328.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSpringAdvancedSettingAxisYPos, kSteerSpringAdvancedSettingAxisYPosParameterId, 149, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force coefficient by direction_negative Y axis
     * Repository name: `Main_Steer_SpringAdvancedSetting_axisY_neg`.
     * Parameter id: 150; get command id: 331; set command id: 330.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSpringAdvancedSettingAxisYNeg, kSteerSpringAdvancedSettingAxisYNegParameterId, 150, Parameter<std::uint8_t>);

    /**
     * @brief Set and get damping force coefficient by direction_positive X axis
     * Repository name: `Main_Steer_DampAdvancedSetting_axisX_pos`.
     * Parameter id: 151; get command id: 333; set command id: 332.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerDampAdvancedSettingAxisXPos, kSteerDampAdvancedSettingAxisXPosParameterId, 151, Parameter<std::uint8_t>);

    /**
     * @brief Set and get damping force coefficient by direction_negative X axis
     * Repository name: `Main_Steer_DampAdvancedSetting_axisX_neg`.
     * Parameter id: 152; get command id: 335; set command id: 334.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerDampAdvancedSettingAxisXNeg, kSteerDampAdvancedSettingAxisXNegParameterId, 152, Parameter<std::uint8_t>);

    /**
     * @brief Set and get damping force coefficient by direction_positive Y axis
     * Repository name: `Main_Steer_DampAdvancedSetting_axisY_pos`.
     * Parameter id: 153; get command id: 337; set command id: 336.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerDampAdvancedSettingAxisYPos, kSteerDampAdvancedSettingAxisYPosParameterId, 153, Parameter<std::uint8_t>);

    /**
     * @brief Set and get damping force coefficient by direction_negative Y axis
     * Repository name: `Main_Steer_DampAdvancedSetting_axisY_neg`.
     * Parameter id: 154; get command id: 339; set command id: 338.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerDampAdvancedSettingAxisYNeg, kSteerDampAdvancedSettingAxisYNegParameterId, 154, Parameter<std::uint8_t>);

    /**
     * @brief Set and get inertia force coefficient by direction_positive X axis
     * Repository name: `Main_Steer_InertiaAdvancedSetting_axisX_pos`.
     * Parameter id: 155; get command id: 341; set command id: 340.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerInertiaAdvancedSettingAxisXPos, kSteerInertiaAdvancedSettingAxisXPosParameterId, 155, Parameter<std::uint8_t>);

    /**
     * @brief Set and get inertia force coefficient by direction_negative X axis
     * Repository name: `Main_Steer_InertiaAdvancedSetting_axisX_neg`.
     * Parameter id: 156; get command id: 343; set command id: 342.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerInertiaAdvancedSettingAxisXNeg, kSteerInertiaAdvancedSettingAxisXNegParameterId, 156, Parameter<std::uint8_t>);

    /**
     * @brief Set and get inertia force coefficient by direction_positive Y axis
     * Repository name: `Main_Steer_InertiaAdvancedSetting_axisY_pos`.
     * Parameter id: 157; get command id: 345; set command id: 344.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerInertiaAdvancedSettingAxisYPos, kSteerInertiaAdvancedSettingAxisYPosParameterId, 157, Parameter<std::uint8_t>);

    /**
     * @brief Set and get inertia force coefficient by direction_negative Y axis
     * Repository name: `Main_Steer_InertiaAdvancedSetting_axisY_neg`.
     * Parameter id: 158; get command id: 347; set command id: 346.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerInertiaAdvancedSettingAxisYNeg, kSteerInertiaAdvancedSettingAxisYNegParameterId, 158, Parameter<std::uint8_t>);

    /**
     * @brief Set and get friction force coefficient by direction_positive X axis
     * Repository name: `Main_Steer_FricAdvancedSetting_axisX_pos`.
     * Parameter id: 159; get command id: 349; set command id: 348.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerFricAdvancedSettingAxisXPos, kSteerFricAdvancedSettingAxisXPosParameterId, 159, Parameter<std::uint8_t>);

    /**
     * @brief Set and get friction force coefficient by direction_negative X axis
     * Repository name: `Main_Steer_FricAdvancedSetting_axisX_neg`.
     * Parameter id: 160; get command id: 351; set command id: 350.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerFricAdvancedSettingAxisXNeg, kSteerFricAdvancedSettingAxisXNegParameterId, 160, Parameter<std::uint8_t>);

    /**
     * @brief Set and get friction force coefficient by direction_positive Y axis
     * Repository name: `Main_Steer_FricAdvancedSetting_axisY_pos`.
     * Parameter id: 161; get command id: 353; set command id: 352.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerFricAdvancedSettingAxisYPos, kSteerFricAdvancedSettingAxisYPosParameterId, 161, Parameter<std::uint8_t>);

    /**
     * @brief Set and get friction force coefficient by direction_negative Y axis
     * Repository name: `Main_Steer_FricAdvancedSetting_axisY_neg`.
     * Parameter id: 162; get command id: 355; set command id: 354.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerFricAdvancedSettingAxisYNeg, kSteerFricAdvancedSettingAxisYNegParameterId, 162, Parameter<std::uint8_t>);

    /**
     * @brief Set and get base force-feedback status
     * Repository name: `Main_LimitToqueEnable`.
     * Parameter id: 163; get command id: 357; set command id: 356.
     */
    MOZA_DECLARE_GENERATED_PARAM(limitToqueEnable, kLimitToqueEnableParameterId, 163, Parameter<int>);

    /**
     * @brief Set and get the base host-connection heartbeat remaining time; Get returns the current countdown value, which decreases over time, not a fixed readback of the last Set value.
     * Repository name: `Main_HostHeartBeat`.
     * Parameter id: 180; get command id: 371; set command id: 370.
     */
    MOZA_DECLARE_GENERATED_PARAM(hostHeartBeat, kHostHeartBeatParameterId, 180, Parameter<std::uint16_t>);

    /**
     * @brief Set and get trim follow enable bit
     * Repository name: `Main_SoftwareAutoTrimEnable`.
     * Parameter id: 181; get command id: 373; set command id: 372.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimEnable, kSoftwareAutoTrimEnableParameterId, 181, Parameter<int>);

    /**
     * @brief Set and get trim follow rate_X axis
     * Repository name: `Main_SoftwareAutoTrimFollowSpeed_X`.
     * Parameter id: 182; get command id: 375; set command id: 374.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowSpeedX, kSoftwareAutoTrimFollowSpeedXParameterId, 182, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow rate_Y axis
     * Repository name: `Main_SoftwareAutoTrimFollowSpeed_Y`.
     * Parameter id: 183; get command id: 377; set command id: 376.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowSpeedY, kSoftwareAutoTrimFollowSpeedYParameterId, 183, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_X axis
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_X`.
     * Parameter id: 184; get command id: 379; set command id: 378.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioX, kSoftwareAutoTrimFollowRatioXParameterId, 184, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_X axis-
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_Neg_X`.
     * Parameter id: 185; get command id: 381; set command id: 380.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioNegX, kSoftwareAutoTrimFollowRatioNegXParameterId, 185, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_X axis+
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_Pos_X`.
     * Parameter id: 186; get command id: 383; set command id: 382.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioPosX, kSoftwareAutoTrimFollowRatioPosXParameterId, 186, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_Y axis
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_Y`.
     * Parameter id: 187; get command id: 385; set command id: 384.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioY, kSoftwareAutoTrimFollowRatioYParameterId, 187, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_Y axis-
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_Neg_Y`.
     * Parameter id: 188; get command id: 387; set command id: 386.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioNegY, kSoftwareAutoTrimFollowRatioNegYParameterId, 188, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim follow ratio_Y axis+
     * Repository name: `Main_SoftwareAutoTrimFollowRatio_Pos_Y`.
     * Parameter id: 189; get command id: 389; set command id: 388.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimFollowRatioPosY, kSoftwareAutoTrimFollowRatioPosYParameterId, 189, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow position_X axis; position 0~65535, 32767 is center; speed 0~20; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, this temporary position is cleared.
     * Repository name: `Main_SoftwareAutoTrimCompenPos_X`.
     * Parameter id: 190; get command id: 391; set command id: 390.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimCompenPosX, kSoftwareAutoTrimCompenPosXParameterId, 190, Parameter<moza::as::wheelbase_type::SoftwareAutoTrimCompenPosX::Get, moza::as::wheelbase_type::SoftwareAutoTrimCompenPosX::Set>);

    /**
     * @brief Set and get trim-follow position_Y axis; position 0~65535, 32767 is center; speed 0~20; the host must keep alive with HostHeartBeat. When the heartbeat expires and the host disconnects, this temporary position is cleared.
     * Repository name: `Main_SoftwareAutoTrimCompenPos_Y`.
     * Parameter id: 191; get command id: 393; set command id: 392.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimCompenPosY, kSoftwareAutoTrimCompenPosYParameterId, 191, Parameter<moza::as::wheelbase_type::SoftwareAutoTrimCompenPosY::Get, moza::as::wheelbase_type::SoftwareAutoTrimCompenPosY::Set>);

    /**
     * @brief Clear trim follow position
     * Repository name: `Main_SoftwareAutoTrimCompenPosClear`.
     * Parameter id: 192; get command id: -1; set command id: 394.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdSoftwareAutoTrimCompenPosClear, kMainSetSoftwareAutoTrimCompenPosClearCommandId, 394, Command<>);

    /**
     * @brief Set and get autopilot function enable bit
     * Repository name: `Main_SoftwareAutoPilotEnable`.
     * Parameter id: 193; get command id: 397; set command id: 396.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotEnable, kSoftwareAutoPilotEnableParameterId, 193, Parameter<int>);

    /**
     * @brief Set and get autopilot AP mode flag; the host must keep alive with HostHeartBeat. When the heartbeat expires, this flag is reset to false and the autopilot follow position is cleared.
     * Repository name: `Main_SoftwareAutoPilotApMode`.
     * Parameter id: 194; get command id: 399; set command id: 398.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotApMode, kSoftwareAutoPilotApModeParameterId, 194, Parameter<int>);

    /**
     * @brief Set and get autopilot follow rate_X axis
     * Repository name: `Main_SoftwareAutoPilotFollowSpeed_X`.
     * Parameter id: 195; get command id: 401; set command id: 400.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowSpeedX, kSoftwareAutoPilotFollowSpeedXParameterId, 195, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow rate_Y axis
     * Repository name: `Main_SoftwareAutoPilotFollowSpeed_Y`.
     * Parameter id: 196; get command id: 403; set command id: 402.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowSpeedY, kSoftwareAutoPilotFollowSpeedYParameterId, 196, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow ratio_X axis
     * Repository name: `Main_SoftwareAutoPilotFollowRatio_X`.
     * Parameter id: 197; get command id: 405; set command id: 404.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowRatioX, kSoftwareAutoPilotFollowRatioXParameterId, 197, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow ratio_Y axis
     * Repository name: `Main_SoftwareAutoPilotFollowRatio_Y`.
     * Parameter id: 198; get command id: 407; set command id: 406.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowRatioY, kSoftwareAutoPilotFollowRatioYParameterId, 198, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow force intensity_X axis
     * Repository name: `Main_SoftwareAutoPilotFollowForceCoefficient_X`.
     * Parameter id: 199; get command id: 409; set command id: 408.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowForceCoefficientX, kSoftwareAutoPilotFollowForceCoefficientXParameterId, 199, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow force intensity_Y axis
     * Repository name: `Main_SoftwareAutoPilotFollowForceCoefficient_Y`.
     * Parameter id: 200; get command id: 411; set command id: 410.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowForceCoefficientY, kSoftwareAutoPilotFollowForceCoefficientYParameterId, 200, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow force range_X axis
     * Repository name: `Main_SoftwareAutoPilotFollowForceTransitionZone_X`.
     * Parameter id: 201; get command id: 413; set command id: 412.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowForceTransitionZoneX, kSoftwareAutoPilotFollowForceTransitionZoneXParameterId, 201, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow force range_Y axis
     * Repository name: `Main_SoftwareAutoPilotFollowForceTransitionZone_Y`.
     * Parameter id: 202; get command id: 415; set command id: 414.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotFollowForceTransitionZoneY, kSoftwareAutoPilotFollowForceTransitionZoneYParameterId, 202, Parameter<std::uint8_t>);

    /**
     * @brief Set and get autopilot follow position_X axis; position 0~65535, 32767 is center; speed 0~20; the host must keep alive with HostHeartBeat. When the heartbeat expires, AP mode is reset and this temporary position is cleared.
     * Repository name: `Main_SoftwareAutoPilotCompenPos_X`.
     * Parameter id: 203; get command id: 417; set command id: 416.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotCompenPosX, kSoftwareAutoPilotCompenPosXParameterId, 203, Parameter<moza::as::wheelbase_type::SoftwareAutoPilotCompenPosX::Get, moza::as::wheelbase_type::SoftwareAutoPilotCompenPosX::Set>);

    /**
     * @brief Set and get autopilot follow position_Y axis; position 0~65535, 32767 is center; speed 0~20; the host must keep alive with HostHeartBeat. When the heartbeat expires, AP mode is reset and this temporary position is cleared.
     * Repository name: `Main_SoftwareAutoPilotCompenPos_Y`.
     * Parameter id: 204; get command id: 419; set command id: 418.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotCompenPosY, kSoftwareAutoPilotCompenPosYParameterId, 204, Parameter<moza::as::wheelbase_type::SoftwareAutoPilotCompenPosY::Get, moza::as::wheelbase_type::SoftwareAutoPilotCompenPosY::Set>);

    /**
     * @brief Clear autopilot follow position
     * Repository name: `Main_SoftwareAutoPilotCompenPosClear`.
     * Parameter id: 205; get command id: -1; set command id: 420.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdSoftwareAutoPilotCompenPosClear, kMainSetSoftwareAutoPilotCompenPosClearCommandId, 420, Command<>);

    /**
     * @brief Set and get axis input mode
     * Repository name: `Main_SoftwareFixedOrMobile`.
     * Parameter id: 206; get command id: 423; set command id: 422.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareFixedOrMobile, kSoftwareFixedOrMobileParameterId, 206, Parameter<int>);

    /**
     * @brief Set and get axis compensation ratio in trim-follow force-feedback compatibility mode_X axis
     * Repository name: `Main_SoftwareAutoTrimCompenRatio_X`.
     * Parameter id: 207; get command id: 425; set command id: 424.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimCompenRatioX, kSoftwareAutoTrimCompenRatioXParameterId, 207, Parameter<std::uint8_t>);

    /**
     * @brief Set and get axis compensation ratio in trim-follow force-feedback compatibility mode_Y axis
     * Repository name: `Main_SoftwareAutoTrimCompenRatio_Y`.
     * Parameter id: 208; get command id: 427; set command id: 426.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimCompenRatioY, kSoftwareAutoTrimCompenRatioYParameterId, 208, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_dead zone_X axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_Dead_Zone_Pos_X`.
     * Parameter id: 209; get command id: 429; set command id: 428.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandDeadZonePosX, kSpringTorqueNolineardeadbandDeadZonePosXParameterId, 209, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_dead zone_X axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_Dead_Zone_Neg_X`.
     * Parameter id: 210; get command id: 431; set command id: 430.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandDeadZoneNegX, kSpringTorqueNolineardeadbandDeadZoneNegXParameterId, 210, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_dead zone_Y axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_Dead_Zone_Pos_Y`.
     * Parameter id: 211; get command id: 433; set command id: 432.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandDeadZonePosY, kSpringTorqueNolineardeadbandDeadZonePosYParameterId, 211, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_dead zone_Y axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_Dead_Zone_Neg_Y`.
     * Parameter id: 212; get command id: 435; set command id: 434.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandDeadZoneNegY, kSpringTorqueNolineardeadbandDeadZoneNegYParameterId, 212, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_input boundary_X axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_InputBoundary_Pos_X`.
     * Parameter id: 213; get command id: 437; set command id: 436.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandInputBoundaryPosX, kSpringTorqueNolineardeadbandInputBoundaryPosXParameterId, 213, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_input boundary_X axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_InputBoundary_Neg_X`.
     * Parameter id: 214; get command id: 439; set command id: 438.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandInputBoundaryNegX, kSpringTorqueNolineardeadbandInputBoundaryNegXParameterId, 214, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_input boundary_Y axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_InputBoundary_Pos_Y`.
     * Parameter id: 215; get command id: 441; set command id: 440.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandInputBoundaryPosY, kSpringTorqueNolineardeadbandInputBoundaryPosYParameterId, 215, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_input boundary_Y axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_InputBoundary_Neg_Y`.
     * Parameter id: 216; get command id: 443; set command id: 442.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandInputBoundaryNegY, kSpringTorqueNolineardeadbandInputBoundaryNegYParameterId, 216, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_output boundary_X axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_OutputBoundary_Pos_X`.
     * Parameter id: 217; get command id: 445; set command id: 444.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandOutputBoundaryPosX, kSpringTorqueNolineardeadbandOutputBoundaryPosXParameterId, 217, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_output boundary_X axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_OutputBoundary_Neg_X`.
     * Parameter id: 218; get command id: 447; set command id: 446.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandOutputBoundaryNegX, kSpringTorqueNolineardeadbandOutputBoundaryNegXParameterId, 218, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_output boundary_Y axis+
     * Repository name: `Main_SpringTorqueNolineardeadband_OutputBoundary_Pos_Y`.
     * Parameter id: 219; get command id: 449; set command id: 448.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandOutputBoundaryPosY, kSpringTorqueNolineardeadbandOutputBoundaryPosYParameterId, 219, Parameter<std::uint8_t>);

    /**
     * @brief Set and get spring force curve_output boundary_Y axis-
     * Repository name: `Main_SpringTorqueNolineardeadband_OutputBoundary_Neg_Y`.
     * Parameter id: 220; get command id: 451; set command id: 450.
     */
    MOZA_DECLARE_GENERATED_PARAM(springTorqueNolineardeadbandOutputBoundaryNegY, kSpringTorqueNolineardeadbandOutputBoundaryNegYParameterId, 220, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 1_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex1_Pos_X`.
     * Parameter id: 221; get command id: 453; set command id: 452.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex1PosX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex1PosXParameterId, 221, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 2_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex2_Pos_X`.
     * Parameter id: 222; get command id: 455; set command id: 454.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex2PosX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex2PosXParameterId, 222, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 3_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex3_Pos_X`.
     * Parameter id: 223; get command id: 457; set command id: 456.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex3PosX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex3PosXParameterId, 223, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 4_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex4_Pos_X`.
     * Parameter id: 224; get command id: 459; set command id: 458.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex4PosX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex4PosXParameterId, 224, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 5_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex5_Pos_X`.
     * Parameter id: 225; get command id: 461; set command id: 460.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex5PosX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex5PosXParameterId, 225, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 1_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex1_Neg_X`.
     * Parameter id: 226; get command id: 463; set command id: 462.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex1NegX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex1NegXParameterId, 226, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 2_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex2_Neg_X`.
     * Parameter id: 227; get command id: 465; set command id: 464.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex2NegX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex2NegXParameterId, 227, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 3_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex3_Neg_X`.
     * Parameter id: 228; get command id: 467; set command id: 466.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex3NegX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex3NegXParameterId, 228, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 4_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex4_Neg_X`.
     * Parameter id: 229; get command id: 469; set command id: 468.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex4NegX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex4NegXParameterId, 229, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 5_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex5_Neg_X`.
     * Parameter id: 230; get command id: 471; set command id: 470.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex5NegX, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex5NegXParameterId, 230, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 1_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex1_Pos_Y`.
     * Parameter id: 231; get command id: 473; set command id: 472.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex1PosY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex1PosYParameterId, 231, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 2_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex2_Pos_Y`.
     * Parameter id: 232; get command id: 475; set command id: 474.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex2PosY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex2PosYParameterId, 232, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 3_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex3_Pos_Y`.
     * Parameter id: 233; get command id: 477; set command id: 476.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex3PosY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex3PosYParameterId, 233, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 4_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex4_Pos_Y`.
     * Parameter id: 234; get command id: 479; set command id: 478.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex4PosY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex4PosYParameterId, 234, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 5_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex5_Pos_Y`.
     * Parameter id: 235; get command id: 481; set command id: 480.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex5PosY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex5PosYParameterId, 235, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 1_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex1_Neg_Y`.
     * Parameter id: 236; get command id: 483; set command id: 482.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex1NegY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex1NegYParameterId, 236, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 2_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex2_Neg_Y`.
     * Parameter id: 237; get command id: 485; set command id: 484.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex2NegY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex2NegYParameterId, 237, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 3_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex3_Neg_Y`.
     * Parameter id: 238; get command id: 487; set command id: 486.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex3NegY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex3NegYParameterId, 238, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 4_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex4_Neg_Y`.
     * Parameter id: 239; get command id: 489; set command id: 488.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex4NegY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex4NegYParameterId, 239, Parameter<std::uint8_t>);

    /**
     * @brief Set and get trim-follow trim-position-to-actual-position mapping curve Y value index 5_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinear_AxisYIndex5_Neg_Y`.
     * Parameter id: 240; get command id: 491; set command id: 490.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearAxisYIndex5NegY, kSoftwareAutoTrimTrimToActualNonlinearAxisYIndex5NegYParameterId, 240, Parameter<std::uint8_t>);

    /**
     * @brief Get trim-follow trim-position-to-actual-position mapping curve Y value index 0_X axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinearGet_AxisYIndex0_Pos_X`.
     * Parameter id: 241; get command id: 492; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearGetAxisYIndex0PosX, kSoftwareAutoTrimTrimToActualNonlinearGetAxisYIndex0PosXParameterId, 241, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Get trim-follow trim-position-to-actual-position mapping curve Y value index 0_X axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinearGet_AxisYIndex0_Neg_X`.
     * Parameter id: 242; get command id: 493; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearGetAxisYIndex0NegX, kSoftwareAutoTrimTrimToActualNonlinearGetAxisYIndex0NegXParameterId, 242, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Get trim-follow trim-position-to-actual-position mapping curve Y value index 0_Y axis+
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinearGet_AxisYIndex0_Pos_Y`.
     * Parameter id: 243; get command id: 494; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearGetAxisYIndex0PosY, kSoftwareAutoTrimTrimToActualNonlinearGetAxisYIndex0PosYParameterId, 243, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Get trim-follow trim-position-to-actual-position mapping curve Y value index 0_Y axis-
     * Repository name: `Main_SoftwareAutoTrimTrimToActualNonlinearGet_AxisYIndex0_Neg_Y`.
     * Parameter id: 244; get command id: 495; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoTrimTrimToActualNonlinearGetAxisYIndex0NegY, kSoftwareAutoTrimTrimToActualNonlinearGetAxisYIndex0NegYParameterId, 244, ReadOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get Airbus sidestick lock bit
     * Repository name: `Main_SoftwareAutoPilotAirbusSidestickLock`.
     * Parameter id: 245; get command id: 497; set command id: 496.
     */
    MOZA_DECLARE_GENERATED_PARAM(softwareAutoPilotAirbusSidestickLock, kSoftwareAutoPilotAirbusSidestickLockParameterId, 245, Parameter<int>);

    /**
     * @brief Set and get/read spring force equilibrium center position
     * Repository name: `Main_DirectInputSpringEffectCpOffsetGet`.
     * Parameter id: 246; get command id: 498; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(directInputSpringEffectCpOffsetGet, kDirectInputSpringEffectCpOffsetGetParameterId, 246, ReadOnlyParameter<moza::as::wheelbase_type::DirectInputSpringEffectCpOffsetGet>);

    /**
     * @brief Set and get force mode; 0=force feedback, 1=force sensing.
     * Repository name: `Main_SteerForceMode`.
     * Parameter id: 247; get command id: 511; set command id: 510.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceMode, kSteerForceModeParameterId, 247, Parameter<int>);

    /**
     * @brief Set and get force-sensing mode deflection angle
     * Repository name: `Main_SteerForceSensingDeviationAngle`.
     * Parameter id: 248; get command id: 513; set command id: 512.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingDeviationAngle, kSteerForceSensingDeviationAngleParameterId, 248, Parameter<std::int16_t>);

    /**
     * @brief Set and get force-sensing mode force dead zone_X axis+
     * Repository name: `Main_SteerForceSensingForceDeadzone_Pos_X`.
     * Parameter id: 249; get command id: 515; set command id: 514.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceDeadzonePosX, kSteerForceSensingForceDeadzonePosXParameterId, 249, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force dead zone_X axis-
     * Repository name: `Main_SteerForceSensingForceDeadzone_Neg_X`.
     * Parameter id: 250; get command id: 517; set command id: 516.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceDeadzoneNegX, kSteerForceSensingForceDeadzoneNegXParameterId, 250, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force dead zone_Y axis+
     * Repository name: `Main_SteerForceSensingForceDeadzone_Pos_Y`.
     * Parameter id: 251; get command id: 519; set command id: 518.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceDeadzonePosY, kSteerForceSensingForceDeadzonePosYParameterId, 251, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force dead zone_Y axis-
     * Repository name: `Main_SteerForceSensingForceDeadzone_Neg_Y`.
     * Parameter id: 252; get command id: 521; set command id: 520.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceDeadzoneNegY, kSteerForceSensingForceDeadzoneNegYParameterId, 252, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force limit_X axis+; range is 1~100%, 0 is invalid.
     * Repository name: `Main_SteerForceSensingForceLimit_Pos_X`.
     * Parameter id: 253; get command id: 523; set command id: 522.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceLimitPosX, kSteerForceSensingForceLimitPosXParameterId, 253, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force limit_X axis-; range is 1~100%, 0 is invalid.
     * Repository name: `Main_SteerForceSensingForceLimit_Neg_X`.
     * Parameter id: 254; get command id: 525; set command id: 524.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceLimitNegX, kSteerForceSensingForceLimitNegXParameterId, 254, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force limit_Y axis+; range is 1~100%, 0 is invalid.
     * Repository name: `Main_SteerForceSensingForceLimit_Pos_Y`.
     * Parameter id: 255; get command id: 527; set command id: 526.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceLimitPosY, kSteerForceSensingForceLimitPosYParameterId, 255, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode force limit_Y axis-; range is 1~100%, 0 is invalid.
     * Repository name: `Main_SteerForceSensingForceLimit_Neg_Y`.
     * Parameter id: 256; get command id: 529; set command id: 528.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingForceLimitNegY, kSteerForceSensingForceLimitNegYParameterId, 256, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-sensing mode travel limit_X axis+
     * Repository name: `Main_SteerForceSensingTravelLimit_Pos_X`.
     * Parameter id: 257; get command id: 531; set command id: 530.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingTravelLimitPosX, kSteerForceSensingTravelLimitPosXParameterId, 257, Parameter<std::int8_t>);

    /**
     * @brief Set and get force-sensing mode travel limit_X axis-
     * Repository name: `Main_SteerForceSensingTravelLimit_Neg_X`.
     * Parameter id: 258; get command id: 533; set command id: 532.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingTravelLimitNegX, kSteerForceSensingTravelLimitNegXParameterId, 258, Parameter<std::int8_t>);

    /**
     * @brief Set and get force-sensing mode travel limit_Y axis+
     * Repository name: `Main_SteerForceSensingTravelLimit_Pos_Y`.
     * Parameter id: 259; get command id: 535; set command id: 534.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingTravelLimitPosY, kSteerForceSensingTravelLimitPosYParameterId, 259, Parameter<std::int8_t>);

    /**
     * @brief Set and get force-sensing mode travel limit_Y axis-
     * Repository name: `Main_SteerForceSensingTravelLimit_Neg_Y`.
     * Parameter id: 260; get command id: 537; set command id: 536.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingTravelLimitNegY, kSteerForceSensingTravelLimitNegYParameterId, 260, Parameter<std::int8_t>);

    /**
     * @brief Set force-sensing mode deflection-angle calibration
     * Repository name: `Main_SteerForceSensingDeviationAngleCalcSet`.
     * Parameter id: 261; get command id: -1; set command id: 538.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingDeviationAngleCalcSet, kSteerForceSensingDeviationAngleCalcSetParameterId, 261, WriteOnlyParameter<int>);

    /**
     * @brief Set and get force-sensing mode out-of-range vibration enable bit
     * Repository name: `Main_SteerForceSensingVibrationEnable`.
     * Parameter id: 262; get command id: 541; set command id: 540.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerForceSensingVibrationEnable, kSteerForceSensingVibrationEnableParameterId, 262, Parameter<int>);

    /**
     * @brief Set and get joystick initial position_X axis
     * Repository name: `Main_Steer_SetLocCompen_X`.
     * Parameter id: 278; get command id: 209; set command id: 208.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetLocCompenX, kSteerSetLocCompenXParameterId, 278, Parameter<std::uint8_t>);

    /**
     * @brief Set and get joystick initial position_Y axis
     * Repository name: `Main_Steer_SetLocCompen_Y`.
     * Parameter id: 279; get command id: 211; set command id: 210.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerSetLocCompenY, kSteerSetLocCompenYParameterId, 279, Parameter<std::uint8_t>);

    /**
     * @brief Set LED RGB data_all
     * Repository name: `Main_StickLedRgbData_ALL`.
     * Parameter id: 299; get command id: -1; set command id: 129.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataALL, kStickLedRgbDataALLParameterId, 299, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index1; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index1`.
     * Parameter id: 300; get command id: 131; set command id: 130.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex1, kStickLedRgbDataIndex1ParameterId, 300, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index2; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index2`.
     * Parameter id: 301; get command id: 133; set command id: 132.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex2, kStickLedRgbDataIndex2ParameterId, 301, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index3; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index3`.
     * Parameter id: 302; get command id: 135; set command id: 134.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex3, kStickLedRgbDataIndex3ParameterId, 302, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index4; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index4`.
     * Parameter id: 303; get command id: 137; set command id: 136.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex4, kStickLedRgbDataIndex4ParameterId, 303, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index5; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index5`.
     * Parameter id: 304; get command id: 139; set command id: 138.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex5, kStickLedRgbDataIndex5ParameterId, 304, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index6; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index6`.
     * Parameter id: 305; get command id: 141; set command id: 140.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex6, kStickLedRgbDataIndex6ParameterId, 305, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index7; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index7`.
     * Parameter id: 306; get command id: 143; set command id: 142.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex7, kStickLedRgbDataIndex7ParameterId, 306, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index8; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index8`.
     * Parameter id: 307; get command id: 145; set command id: 144.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex8, kStickLedRgbDataIndex8ParameterId, 307, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index9; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index9`.
     * Parameter id: 308; get command id: 147; set command id: 146.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex9, kStickLedRgbDataIndex9ParameterId, 308, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED 6-bit RGB data_index10; range is 0~63.
     * Repository name: `Main_StickLedRgbData_Index10`.
     * Parameter id: 309; get command id: 149; set command id: 148.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickLedRgbDataIndex10, kStickLedRgbDataIndex10ParameterId, 309, Parameter<std::uint8_t>);

    /**
     * @brief Set and get pitch-axis resistance compensation enable bit
     * Repository name: `Main_ResistanceCompensationEnable`.
     * Parameter id: 310; get command id: 500; set command id: 499.
     */
    MOZA_DECLARE_GENERATED_PARAM(resistanceCompensationEnable, kResistanceCompensationEnableParameterId, 310, Parameter<int>);

    /**
     * @brief Set and get pitch-axis resistance compensation intensity
     * Repository name: `Main_ResistanceCompensationMagnitude`.
     * Parameter id: 311; get command id: 504; set command id: 503.
     */
    MOZA_DECLARE_GENERATED_PARAM(resistanceCompensationMagnitude, kResistanceCompensationMagnitudeParameterId, 311, Parameter<std::uint8_t>);

    /**
     * @brief Set and get force-feedback enable bit
     * Repository name: `Main_CtrlFfbEnable`.
     * Parameter id: 312; get command id: 506; set command id: 505.
     */
    MOZA_DECLARE_GENERATED_PARAM(ctrlFfbEnable, kCtrlFfbEnableParameterId, 312, Parameter<int>);

    /**
     * @brief Set and get lighting mode for lighting group 1 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonMode_group1`.
     * Parameter id: 313; get command id: 153; set command id: 11.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonModeGroup1, kLightGroupCommonModeGroup1ParameterId, 313, Parameter<int>);

    /**
     * @brief Set and get lighting mode for lighting group 2 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonMode_group2`.
     * Parameter id: 314; get command id: 154; set command id: 12.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonModeGroup2, kLightGroupCommonModeGroup2ParameterId, 314, Parameter<int>);

    /**
     * @brief Set and get lighting mode for lighting group 3 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonMode_group3`.
     * Parameter id: 315; get command id: 155; set command id: 13.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonModeGroup3, kLightGroupCommonModeGroup3ParameterId, 315, Parameter<int>);

    /**
     * @brief Set lighting mode for all lighting groups
     * Repository name: `Main_LightGroupCommonMode_groupAll`.
     * Parameter id: 316; get command id: -1; set command id: 14.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonModeGroupAll, kLightGroupCommonModeGroupAllParameterId, 316, WriteOnlyParameter<int>);

    /**
     * @brief Set and get brightness for lighting group 1
     * Repository name: `Main_LightGroupCommonBrightnessRange_group1`.
     * Parameter id: 317; get command id: 156; set command id: 15.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonBrightnessRangeGroup1, kLightGroupCommonBrightnessRangeGroup1ParameterId, 317, Parameter<std::uint8_t>);

    /**
     * @brief Set and get brightness for lighting group 2
     * Repository name: `Main_LightGroupCommonBrightnessRange_group2`.
     * Parameter id: 318; get command id: 157; set command id: 16.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonBrightnessRangeGroup2, kLightGroupCommonBrightnessRangeGroup2ParameterId, 318, Parameter<std::uint8_t>);

    /**
     * @brief Set and get brightness for lighting group 3
     * Repository name: `Main_LightGroupCommonBrightnessRange_group3`.
     * Parameter id: 319; get command id: 271; set command id: 17.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonBrightnessRangeGroup3, kLightGroupCommonBrightnessRangeGroup3ParameterId, 319, Parameter<std::uint8_t>);

    /**
     * @brief Set brightness for all lighting groups
     * Repository name: `Main_LightGroupCommonBrightnessRange_groupAll`.
     * Parameter id: 320; get command id: -1; set command id: 18.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonBrightnessRangeGroupAll, kLightGroupCommonBrightnessRangeGroupAllParameterId, 320, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get brightness effect for lighting group 1 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessControlSource_group1`.
     * Parameter id: 321; get command id: 281; set command id: 20.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessControlSourceGroup1, kLightStripBrightnessControlSourceGroup1ParameterId, 321, Parameter<int>);

    /**
     * @brief Set and get brightness effect for lighting group 2 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessControlSource_group2`.
     * Parameter id: 322; get command id: 283; set command id: 21.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessControlSourceGroup2, kLightStripBrightnessControlSourceGroup2ParameterId, 322, Parameter<int>);

    /**
     * @brief Set and get brightness effect for lighting group 3 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessControlSource_group3`.
     * Parameter id: 323; get command id: 285; set command id: 22.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessControlSourceGroup3, kLightStripBrightnessControlSourceGroup3ParameterId, 323, Parameter<int>);

    /**
     * @brief Set brightness effects for all lights
     * Repository name: `Main_LightStripBrightnessControlSource_groupAll`.
     * Parameter id: 324; get command id: -1; set command id: 23.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessControlSourceGroupAll, kLightStripBrightnessControlSourceGroupAllParameterId, 324, WriteOnlyParameter<int>);

    /**
     * @brief Set and get brightness variation coefficient for lighting group 1 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessSpeed_group1`.
     * Parameter id: 325; get command id: -1; set command id: 24.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessSpeedGroup1, kLightStripBrightnessSpeedGroup1ParameterId, 325, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get brightness variation coefficient for lighting group 2 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessSpeed_group2`.
     * Parameter id: 326; get command id: -1; set command id: 25.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessSpeedGroup2, kLightStripBrightnessSpeedGroup2ParameterId, 326, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get brightness variation coefficient for lighting group 3 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessSpeed_group3`.
     * Parameter id: 327; get command id: -1; set command id: 26.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessSpeedGroup3, kLightStripBrightnessSpeedGroup3ParameterId, 327, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set brightness variation coefficient for all lighting groups (The number, mapping, and supported capabilities of lighting groups vary by device; this only applies to configured lighting groups that support the function.)
     * Repository name: `Main_LightStripBrightnessSpeed_groupAll`.
     * Parameter id: 328; get command id: -1; set command id: 27.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessSpeedGroupAll, kLightStripBrightnessSpeedGroupAllParameterId, 328, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get variation mode for lighting group 1 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessEffect_group1`.
     * Parameter id: 329; get command id: 358; set command id: 28.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessEffectGroup1, kLightStripBrightnessEffectGroup1ParameterId, 329, Parameter<int>);

    /**
     * @brief Set and get variation mode for lighting group 2 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessEffect_group2`.
     * Parameter id: 330; get command id: 359; set command id: 29.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessEffectGroup2, kLightStripBrightnessEffectGroup2ParameterId, 330, Parameter<int>);

    /**
     * @brief Set and get variation mode for lighting group 3 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightStripBrightnessEffect_group3`.
     * Parameter id: 331; get command id: 360; set command id: 108.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessEffectGroup3, kLightStripBrightnessEffectGroup3ParameterId, 331, Parameter<int>);

    /**
     * @brief Set variation mode for all lighting groups
     * Repository name: `Main_LightStripBrightnessEffectAll`.
     * Parameter id: 332; get command id: -1; set command id: 109.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightStripBrightnessEffectAll, kLightStripBrightnessEffectAllParameterId, 332, WriteOnlyParameter<int>);

    /**
     * @brief Set and get the specified lighting group/LED color, default color (The mapping between lighting group IDs and physical lights varies by device; supported color capabilities depend on the actual group type.)
     * Repository name: `Main_LightRgbColor`.
     * Parameter id: 333; get command id: 361; set command id: 110.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColor, kLightRgbColorParameterId, 333, Parameter<moza::as::wheelbase_type::LightRgbColor::Get, moza::as::wheelbase_type::LightRgbColor::Set>);

    /**
     * @brief Set and get the specified lighting group/LED telemetry color; telemetry color overrides the default color (The mapping between lighting group IDs and physical lights varies by device; supported color capabilities depend on the actual group type.)
     * Repository name: `Main_LightRgbTelemetryColor`.
     * Parameter id: 334; get command id: 362; set command id: 111.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbTelemetryColor, kLightRgbTelemetryColorParameterId, 334, Parameter<moza::as::wheelbase_type::LightRgbTelemetryColor::Get, moza::as::wheelbase_type::LightRgbTelemetryColor::Set>);

    /**
     * @brief Set and get color effect for lighting group 1
     * Repository name: `Main_LightRgbColorEffect_group1`.
     * Parameter id: 335; get command id: -1; set command id: 112.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorEffectGroup1, kLightRgbColorEffectGroup1ParameterId, 335, WriteOnlyParameter<int>);

    /**
     * @brief Set and get color effect for lighting group 2
     * Repository name: `Main_LightRgbColorEffect_group2`.
     * Parameter id: 336; get command id: -1; set command id: 113.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorEffectGroup2, kLightRgbColorEffectGroup2ParameterId, 336, WriteOnlyParameter<int>);

    /**
     * @brief Set and get color effect for lighting group 3
     * Repository name: `Main_LightRgbColorEffect_group3`.
     * Parameter id: 337; get command id: -1; set command id: 114.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorEffectGroup3, kLightRgbColorEffectGroup3ParameterId, 337, WriteOnlyParameter<int>);

    /**
     * @brief Set color effect for all lighting groups
     * Repository name: `Main_LightRgbColorEffectAll`.
     * Parameter id: 338; get command id: -1; set command id: 115.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorEffectAll, kLightRgbColorEffectAllParameterId, 338, WriteOnlyParameter<int>);

    /**
     * @brief Set and get color variation coefficient for lighting group 1
     * Repository name: `Main_LightRgbColorSpeed_group1`.
     * Parameter id: 339; get command id: -1; set command id: 116.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorSpeedGroup1, kLightRgbColorSpeedGroup1ParameterId, 339, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get color variation coefficient for lighting group 2
     * Repository name: `Main_LightRgbColorSpeed_group2`.
     * Parameter id: 340; get command id: -1; set command id: 117.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorSpeedGroup2, kLightRgbColorSpeedGroup2ParameterId, 340, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get color variation coefficient for lighting group 3
     * Repository name: `Main_LightRgbColorSpeed_group3`.
     * Parameter id: 341; get command id: -1; set command id: 118.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorSpeedGroup3, kLightRgbColorSpeedGroup3ParameterId, 341, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set color variation coefficient for all lighting groups
     * Repository name: `Main_LightRgbColorSpeedAll`.
     * Parameter id: 342; get command id: -1; set command id: 119.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorSpeedAll, kLightRgbColorSpeedAllParameterId, 342, WriteOnlyParameter<std::int8_t>);

    /**
     * @brief Set and get telemetry data for lighting group 1 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonTelemetryData_group1`.
     * Parameter id: 343; get command id: 275; set command id: 19.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonTelemetryDataGroup1, kLightGroupCommonTelemetryDataGroup1ParameterId, 343, Parameter<std::uint8_t>);

    /**
     * @brief Set and get telemetry data for lighting group 2 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonTelemetryData_group2`.
     * Parameter id: 344; get command id: 277; set command id: 150.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonTelemetryDataGroup2, kLightGroupCommonTelemetryDataGroup2ParameterId, 344, Parameter<std::uint8_t>);

    /**
     * @brief Set and get telemetry data for lighting group 3 (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightGroupCommonTelemetryData_group3`.
     * Parameter id: 345; get command id: 279; set command id: 151.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonTelemetryDataGroup3, kLightGroupCommonTelemetryDataGroup3ParameterId, 345, Parameter<std::uint8_t>);

    /**
     * @brief Set telemetry data for all lighting groups
     * Repository name: `Main_LightGroupCommonTelemetryDataAll`.
     * Parameter id: 346; get command id: -1; set command id: 152.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightGroupCommonTelemetryDataAll, kLightGroupCommonTelemetryDataAllParameterId, 346, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set all lighting group colors, default color
     * Repository name: `Main_LightRgbColor_All`.
     * Parameter id: 347; get command id: -1; set command id: 616.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorAll, kLightRgbColorAllParameterId, 347, WriteOnlyParameter<moza::as::wheelbase_type::LightRgbColorAllSet>);

    /**
     * @brief Set and get lighting group 1 color, default color (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightRgbColor_Group1`.
     * Parameter id: 348; get command id: 620; set command id: 617.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorGroup1, kLightRgbColorGroup1ParameterId, 348, Parameter<moza::as::wheelbase_type::LightRgbColorGroup1Value>);

    /**
     * @brief Set and get lighting group 2 color, default color
     * Repository name: `Main_LightRgbColor_Group2`.
     * Parameter id: 349; get command id: 621; set command id: 618.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorGroup2, kLightRgbColorGroup2ParameterId, 349, Parameter<moza::as::wheelbase_type::LightRgbColorGroup2Value>);

    /**
     * @brief Set and get lighting group 3 color, default color (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightRgbColor_Group3`.
     * Parameter id: 350; get command id: 622; set command id: 619.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbColorGroup3, kLightRgbColorGroup3ParameterId, 350, Parameter<moza::as::wheelbase_type::LightRgbColorGroup3Value>);

    /**
     * @brief Set all lighting group telemetry colors; telemetry color overrides the default color
     * Repository name: `Main_LightRgbTelemetryColor_All`.
     * Parameter id: 351; get command id: -1; set command id: 623.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbTelemetryColorAll, kLightRgbTelemetryColorAllParameterId, 351, WriteOnlyParameter<moza::as::wheelbase_type::LightRgbTelemetryColorAllSet>);

    /**
     * @brief Set and get lighting group 1 telemetry color; telemetry color overrides the default color (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightRgbTelemetryColor_Group1`.
     * Parameter id: 352; get command id: 627; set command id: 624.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbTelemetryColorGroup1, kLightRgbTelemetryColorGroup1ParameterId, 352, Parameter<moza::as::wheelbase_type::LightRgbTelemetryColorGroup1Value>);

    /**
     * @brief Set and get lighting group 2 telemetry color; telemetry color overrides the default color (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightRgbTelemetryColor_Group2`.
     * Parameter id: 353; get command id: 628; set command id: 625.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbTelemetryColorGroup2, kLightRgbTelemetryColorGroup2ParameterId, 353, Parameter<moza::as::wheelbase_type::LightRgbTelemetryColorGroup2Value>);

    /**
     * @brief Set and get lighting group 3 telemetry color; telemetry color overrides the default color (Lighting group mapping and supported capabilities vary by device; use the actual group type as reference.)
     * Repository name: `Main_LightRgbTelemetryColor_Group3`.
     * Parameter id: 354; get command id: 629; set command id: 626.
     */
    MOZA_DECLARE_GENERATED_PARAM(lightRgbTelemetryColorGroup3, kLightRgbTelemetryColorGroup3ParameterId, 354, Parameter<moza::as::wheelbase_type::LightRgbTelemetryColorGroup3Value>);

    /**
     * @brief Set and get dynamic condition force binding effect index for aileron stick pressure; 0=unbound; 1-80=registered spring force effect index.
     * Repository name: `Main_DynamicConditionForceBind_Aileron`.
     * Parameter id: 360; get command id: 365; set command id: 364.
     */
    MOZA_DECLARE_GENERATED_PARAM(dynamicConditionForceBindAileron, kDynamicConditionForceBindAileronParameterId, 360, Parameter<std::uint8_t>);

    /**
     * @brief Set and get dynamic condition force enable state for aileron stick pressure
     * Repository name: `Main_DynamicConditionForceEnable_Aileron`.
     * Parameter id: 361; get command id: 367; set command id: 366.
     */
    MOZA_DECLARE_GENERATED_PARAM(dynamicConditionForceEnableAileron, kDynamicConditionForceEnableAileronParameterId, 361, Parameter<int>);

    /**
     * @brief Set and get dynamic condition force curve both-direction points for aileron stick pressure
     * Repository name: `Main_VariablePointCurve_AileronPositiveBack`.
     * Parameter id: 362; get command id: 369; set command id: 368.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveAileronPositiveBack, kVariablePointCurveAileronPositiveBackParameterId, 362, Parameter<moza::as::wheelbase_type::VariablePointCurveAileronPositiveBackValue>);

    /**
     * @brief Set and get dynamic condition force binding effect index for elevator stick pressure; 0=unbound; 1-80=registered spring force effect index.
     * Repository name: `Main_DynamicConditionForceBind_Elevator`.
     * Parameter id: 363; get command id: 421; set command id: 395.
     */
    MOZA_DECLARE_GENERATED_PARAM(dynamicConditionForceBindElevator, kDynamicConditionForceBindElevatorParameterId, 363, Parameter<std::uint8_t>);

    /**
     * @brief Set and get dynamic condition force enable state for elevator stick pressure
     * Repository name: `Main_DynamicConditionForceEnable_Elevator`.
     * Parameter id: 364; get command id: 508; set command id: 507.
     */
    MOZA_DECLARE_GENERATED_PARAM(dynamicConditionForceEnableElevator, kDynamicConditionForceEnableElevatorParameterId, 364, Parameter<int>);

    /**
     * @brief Set and get dynamic condition force curve positive-direction points for aileron stick pressure; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
     * Repository name: `Main_VariablePointCurve_AileronPositive`.
     * Parameter id: 365; get command id: 561; set command id: 509.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveAileronPositive, kVariablePointCurveAileronPositiveParameterId, 365, Parameter<moza::as::wheelbase_type::VariablePointCurveAileronPositiveValue>);

    /**
     * @brief Set and get dynamic condition force curve negative-direction points for aileron stick pressure; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
     * Repository name: `Main_VariablePointCurve_AileronBack`.
     * Parameter id: 366; get command id: 562; set command id: 539.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveAileronBack, kVariablePointCurveAileronBackParameterId, 366, Parameter<moza::as::wheelbase_type::VariablePointCurveAileronBackValue>);

    /**
     * @brief Set and get dynamic condition force curve both-direction points for elevator stick pressure; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
     * Repository name: `Main_VariablePointCurve_ElevatorPositiveBack`.
     * Parameter id: 367; get command id: 563; set command id: 558.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveElevatorPositiveBack, kVariablePointCurveElevatorPositiveBackParameterId, 367, Parameter<moza::as::wheelbase_type::VariablePointCurveElevatorPositiveBackValue>);

    /**
     * @brief Set and get dynamic condition force curve negative-direction points for elevator stick pressure; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
     * Repository name: `Main_VariablePointCurve_ElevatorBack`.
     * Parameter id: 368; get command id: 565; set command id: 560.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveElevatorBack, kVariablePointCurveElevatorBackParameterId, 368, Parameter<moza::as::wheelbase_type::VariablePointCurveElevatorBackValue>);

    /**
     * @brief Set and get dynamic condition force curve positive-direction points for elevator stick pressure; X coordinates of valid points must strictly increase in point order, with no monotonic constraint on Y coordinates
     * Repository name: `Main_VariablePointCurve_ElevatorPositive`.
     * Parameter id: 369; get command id: 564; set command id: 559.
     */
    MOZA_DECLARE_GENERATED_PARAM(variablePointCurveElevatorPositive, kVariablePointCurveElevatorPositiveParameterId, 369, Parameter<moza::as::wheelbase_type::VariablePointCurveElevatorPositiveValue>);

    /**
     * @brief Set and get POV hat display mode; this should be a stick command, but J00 has no processor, so it is sent to the base and handled by the base
     * Repository name: `Main_PovHatMode`.
     * Parameter id: 999; get command id: 998; set command id: 999.
     */
    MOZA_DECLARE_GENERATED_PARAM(povHatMode, kPovHatModeParameterId, 999, Parameter<int>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_X1`.
     * Parameter id: 30000; get command id: 30001; set command id: 30000.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosX1, kUsbHidAxisSerialCmdAxisXPosX1ParameterId, 30000, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_X2`.
     * Parameter id: 30001; get command id: 30003; set command id: 30002.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosX2, kUsbHidAxisSerialCmdAxisXPosX2ParameterId, 30001, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_X3`.
     * Parameter id: 30002; get command id: 30005; set command id: 30004.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosX3, kUsbHidAxisSerialCmdAxisXPosX3ParameterId, 30002, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_X4`.
     * Parameter id: 30003; get command id: 30007; set command id: 30006.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosX4, kUsbHidAxisSerialCmdAxisXPosX4ParameterId, 30003, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Y1`.
     * Parameter id: 30004; get command id: 30009; set command id: 30008.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosY1, kUsbHidAxisSerialCmdAxisXPosY1ParameterId, 30004, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Y2`.
     * Parameter id: 30005; get command id: 30011; set command id: 30010.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosY2, kUsbHidAxisSerialCmdAxisXPosY2ParameterId, 30005, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Y3`.
     * Parameter id: 30006; get command id: 30013; set command id: 30012.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosY3, kUsbHidAxisSerialCmdAxisXPosY3ParameterId, 30006, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Y4`.
     * Parameter id: 30007; get command id: 30015; set command id: 30014.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosY4, kUsbHidAxisSerialCmdAxisXPosY4ParameterId, 30007, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Y5`.
     * Parameter id: 30008; get command id: 30017; set command id: 30016.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosY5, kUsbHidAxisSerialCmdAxisXPosY5ParameterId, 30008, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Mapping0`.
     * Parameter id: 30009; get command id: 30019; set command id: 30018.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosMapping0, kUsbHidAxisSerialCmdAxisXPosMapping0ParameterId, 30009, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Mapping1`.
     * Parameter id: 30010; get command id: 30021; set command id: 30020.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosMapping1, kUsbHidAxisSerialCmdAxisXPosMapping1ParameterId, 30010, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_positive X axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Mapping2`.
     * Parameter id: 30011; get command id: 30023; set command id: 30022.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosMapping2, kUsbHidAxisSerialCmdAxisXPosMapping2ParameterId, 30011, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_X1`.
     * Parameter id: 30012; get command id: 30025; set command id: 30024.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegX1, kUsbHidAxisSerialCmdAxisXNegX1ParameterId, 30012, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_X2`.
     * Parameter id: 30013; get command id: 30027; set command id: 30026.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegX2, kUsbHidAxisSerialCmdAxisXNegX2ParameterId, 30013, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_X3`.
     * Parameter id: 30014; get command id: 30029; set command id: 30028.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegX3, kUsbHidAxisSerialCmdAxisXNegX3ParameterId, 30014, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_X4`.
     * Parameter id: 30015; get command id: 30031; set command id: 30030.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegX4, kUsbHidAxisSerialCmdAxisXNegX4ParameterId, 30015, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Y1`.
     * Parameter id: 30016; get command id: 30033; set command id: 30032.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegY1, kUsbHidAxisSerialCmdAxisXNegY1ParameterId, 30016, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Y2`.
     * Parameter id: 30017; get command id: 30035; set command id: 30034.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegY2, kUsbHidAxisSerialCmdAxisXNegY2ParameterId, 30017, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Y3`.
     * Parameter id: 30018; get command id: 30037; set command id: 30036.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegY3, kUsbHidAxisSerialCmdAxisXNegY3ParameterId, 30018, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Y4`.
     * Parameter id: 30019; get command id: 30039; set command id: 30038.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegY4, kUsbHidAxisSerialCmdAxisXNegY4ParameterId, 30019, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Y5`.
     * Parameter id: 30020; get command id: 30041; set command id: 30040.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegY5, kUsbHidAxisSerialCmdAxisXNegY5ParameterId, 30020, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Mapping0`.
     * Parameter id: 30021; get command id: 30043; set command id: 30042.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegMapping0, kUsbHidAxisSerialCmdAxisXNegMapping0ParameterId, 30021, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Mapping1`.
     * Parameter id: 30022; get command id: 30045; set command id: 30044.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegMapping1, kUsbHidAxisSerialCmdAxisXNegMapping1ParameterId, 30022, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter X_negative X axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Mapping2`.
     * Parameter id: 30023; get command id: 30047; set command id: 30046.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegMapping2, kUsbHidAxisSerialCmdAxisXNegMapping2ParameterId, 30023, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_X1`.
     * Parameter id: 30024; get command id: 30049; set command id: 30048.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosX1, kUsbHidAxisSerialCmdAxisYPosX1ParameterId, 30024, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_X2`.
     * Parameter id: 30025; get command id: 30051; set command id: 30050.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosX2, kUsbHidAxisSerialCmdAxisYPosX2ParameterId, 30025, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_X3`.
     * Parameter id: 30026; get command id: 30053; set command id: 30052.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosX3, kUsbHidAxisSerialCmdAxisYPosX3ParameterId, 30026, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_X4`.
     * Parameter id: 30027; get command id: 30055; set command id: 30054.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosX4, kUsbHidAxisSerialCmdAxisYPosX4ParameterId, 30027, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Y1`.
     * Parameter id: 30028; get command id: 30057; set command id: 30056.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosY1, kUsbHidAxisSerialCmdAxisYPosY1ParameterId, 30028, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Y2`.
     * Parameter id: 30029; get command id: 30059; set command id: 30058.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosY2, kUsbHidAxisSerialCmdAxisYPosY2ParameterId, 30029, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Y3`.
     * Parameter id: 30030; get command id: 30061; set command id: 30060.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosY3, kUsbHidAxisSerialCmdAxisYPosY3ParameterId, 30030, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Y4`.
     * Parameter id: 30031; get command id: 30063; set command id: 30062.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosY4, kUsbHidAxisSerialCmdAxisYPosY4ParameterId, 30031, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Y5`.
     * Parameter id: 30032; get command id: 30065; set command id: 30064.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosY5, kUsbHidAxisSerialCmdAxisYPosY5ParameterId, 30032, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Mapping0`.
     * Parameter id: 30033; get command id: 30067; set command id: 30066.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosMapping0, kUsbHidAxisSerialCmdAxisYPosMapping0ParameterId, 30033, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Mapping1`.
     * Parameter id: 30034; get command id: 30069; set command id: 30068.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosMapping1, kUsbHidAxisSerialCmdAxisYPosMapping1ParameterId, 30034, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_positive Y axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Mapping2`.
     * Parameter id: 30035; get command id: 30071; set command id: 30070.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosMapping2, kUsbHidAxisSerialCmdAxisYPosMapping2ParameterId, 30035, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_X1`.
     * Parameter id: 30036; get command id: 30073; set command id: 30072.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegX1, kUsbHidAxisSerialCmdAxisYNegX1ParameterId, 30036, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_X2`.
     * Parameter id: 30037; get command id: 30075; set command id: 30074.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegX2, kUsbHidAxisSerialCmdAxisYNegX2ParameterId, 30037, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_X3`.
     * Parameter id: 30038; get command id: 30077; set command id: 30076.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegX3, kUsbHidAxisSerialCmdAxisYNegX3ParameterId, 30038, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_X4`.
     * Parameter id: 30039; get command id: 30079; set command id: 30078.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegX4, kUsbHidAxisSerialCmdAxisYNegX4ParameterId, 30039, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Y1`.
     * Parameter id: 30040; get command id: 30081; set command id: 30080.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegY1, kUsbHidAxisSerialCmdAxisYNegY1ParameterId, 30040, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Y2`.
     * Parameter id: 30041; get command id: 30083; set command id: 30082.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegY2, kUsbHidAxisSerialCmdAxisYNegY2ParameterId, 30041, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Y3`.
     * Parameter id: 30042; get command id: 30085; set command id: 30084.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegY3, kUsbHidAxisSerialCmdAxisYNegY3ParameterId, 30042, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Y4`.
     * Parameter id: 30043; get command id: 30087; set command id: 30086.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegY4, kUsbHidAxisSerialCmdAxisYNegY4ParameterId, 30043, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Y5`.
     * Parameter id: 30044; get command id: 30089; set command id: 30088.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegY5, kUsbHidAxisSerialCmdAxisYNegY5ParameterId, 30044, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Mapping0`.
     * Parameter id: 30045; get command id: 30091; set command id: 30090.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegMapping0, kUsbHidAxisSerialCmdAxisYNegMapping0ParameterId, 30045, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Mapping1`.
     * Parameter id: 30046; get command id: 30093; set command id: 30092.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegMapping1, kUsbHidAxisSerialCmdAxisYNegMapping1ParameterId, 30046, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Y_negative Y axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Mapping2`.
     * Parameter id: 30047; get command id: 30095; set command id: 30094.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegMapping2, kUsbHidAxisSerialCmdAxisYNegMapping2ParameterId, 30047, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_X1`.
     * Parameter id: 30096; get command id: 30193; set command id: 30192.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosX1, kUsbHidAxisSerialCmdAxisZPosX1ParameterId, 30096, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_X2`.
     * Parameter id: 30097; get command id: 30195; set command id: 30194.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosX2, kUsbHidAxisSerialCmdAxisZPosX2ParameterId, 30097, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_X3`.
     * Parameter id: 30098; get command id: 30197; set command id: 30196.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosX3, kUsbHidAxisSerialCmdAxisZPosX3ParameterId, 30098, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_X4`.
     * Parameter id: 30099; get command id: 30199; set command id: 30198.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosX4, kUsbHidAxisSerialCmdAxisZPosX4ParameterId, 30099, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Y1`.
     * Parameter id: 30100; get command id: 30201; set command id: 30200.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosY1, kUsbHidAxisSerialCmdAxisZPosY1ParameterId, 30100, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Y2`.
     * Parameter id: 30101; get command id: 30203; set command id: 30202.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosY2, kUsbHidAxisSerialCmdAxisZPosY2ParameterId, 30101, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Y3`.
     * Parameter id: 30102; get command id: 30205; set command id: 30204.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosY3, kUsbHidAxisSerialCmdAxisZPosY3ParameterId, 30102, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Y4`.
     * Parameter id: 30103; get command id: 30207; set command id: 30206.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosY4, kUsbHidAxisSerialCmdAxisZPosY4ParameterId, 30103, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Y5`.
     * Parameter id: 30104; get command id: 30209; set command id: 30208.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosY5, kUsbHidAxisSerialCmdAxisZPosY5ParameterId, 30104, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Mapping0`.
     * Parameter id: 30105; get command id: 30211; set command id: 30210.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosMapping0, kUsbHidAxisSerialCmdAxisZPosMapping0ParameterId, 30105, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Mapping1`.
     * Parameter id: 30106; get command id: 30213; set command id: 30212.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosMapping1, kUsbHidAxisSerialCmdAxisZPosMapping1ParameterId, 30106, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_positive Z axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Mapping2`.
     * Parameter id: 30107; get command id: 30215; set command id: 30214.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosMapping2, kUsbHidAxisSerialCmdAxisZPosMapping2ParameterId, 30107, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_X1; X1 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_X1`.
     * Parameter id: 30108; get command id: 30217; set command id: 30216.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegX1, kUsbHidAxisSerialCmdAxisZNegX1ParameterId, 30108, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_X2; X2 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_X2`.
     * Parameter id: 30109; get command id: 30219; set command id: 30218.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegX2, kUsbHidAxisSerialCmdAxisZNegX2ParameterId, 30109, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_X3; X3 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_X3`.
     * Parameter id: 30110; get command id: 30221; set command id: 30220.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegX3, kUsbHidAxisSerialCmdAxisZNegX3ParameterId, 30110, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_X4; X4 range is 0~100 and must satisfy X0=0, X5=100, and X1<X2<X3<X4; single-point setting must also be greater than the previous point and less than the next point.
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_X4`.
     * Parameter id: 30111; get command id: 30223; set command id: 30222.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegX4, kUsbHidAxisSerialCmdAxisZNegX4ParameterId, 30111, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Y1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Y1`.
     * Parameter id: 30112; get command id: 30225; set command id: 30224.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegY1, kUsbHidAxisSerialCmdAxisZNegY1ParameterId, 30112, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Y2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Y2`.
     * Parameter id: 30113; get command id: 30227; set command id: 30226.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegY2, kUsbHidAxisSerialCmdAxisZNegY2ParameterId, 30113, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Y3
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Y3`.
     * Parameter id: 30114; get command id: 30229; set command id: 30228.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegY3, kUsbHidAxisSerialCmdAxisZNegY3ParameterId, 30114, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Y4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Y4`.
     * Parameter id: 30115; get command id: 30231; set command id: 30230.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegY4, kUsbHidAxisSerialCmdAxisZNegY4ParameterId, 30115, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Y5
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Y5`.
     * Parameter id: 30116; get command id: 30233; set command id: 30232.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegY5, kUsbHidAxisSerialCmdAxisZNegY5ParameterId, 30116, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Mapping0
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Mapping0`.
     * Parameter id: 30117; get command id: 30235; set command id: 30234.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegMapping0, kUsbHidAxisSerialCmdAxisZNegMapping0ParameterId, 30117, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Mapping1
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Mapping1`.
     * Parameter id: 30118; get command id: 30237; set command id: 30236.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegMapping1, kUsbHidAxisSerialCmdAxisZNegMapping1ParameterId, 30118, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID nonlinear curve parameter Z_negative Z axis_Mapping2
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Mapping2`.
     * Parameter id: 30119; get command id: 30239; set command id: 30238.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegMapping2, kUsbHidAxisSerialCmdAxisZNegMapping2ParameterId, 30119, Parameter<std::uint8_t>);

    /**
     * @brief Batch set HID nonlinear curve parameter X_positive X axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXPos_Xreset`.
     * Parameter id: 30240; get command id: -1; set command id: 30481.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXPosXreset, kUsbHidAxisSerialCmdAxisXPosXresetParameterId, 30240, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisXPosXresetSet>);

    /**
     * @brief Batch set HID nonlinear curve parameter X_negative X axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisXNeg_Xreset`.
     * Parameter id: 30241; get command id: -1; set command id: 30482.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisXNegXreset, kUsbHidAxisSerialCmdAxisXNegXresetParameterId, 30241, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisXNegXresetSet>);

    /**
     * @brief Batch set HID nonlinear curve parameter Y_positive Y axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYPos_Xreset`.
     * Parameter id: 30242; get command id: -1; set command id: 30483.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYPosXreset, kUsbHidAxisSerialCmdAxisYPosXresetParameterId, 30242, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisYPosXresetSet>);

    /**
     * @brief Batch set HID nonlinear curve parameter Y_negative Y axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisYNeg_Xreset`.
     * Parameter id: 30243; get command id: -1; set command id: 30484.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisYNegXreset, kUsbHidAxisSerialCmdAxisYNegXresetParameterId, 30243, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisYNegXresetSet>);

    /**
     * @brief Batch set HID nonlinear curve parameter Z_positive Z axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZPos_Xreset`.
     * Parameter id: 30248; get command id: -1; set command id: 30489.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZPosXreset, kUsbHidAxisSerialCmdAxisZPosXresetParameterId, 30248, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisZPosXresetSet>);

    /**
     * @brief Batch set HID nonlinear curve parameter Z_negative Z axis_X1-X4
     * Repository name: `Main_UsbHidAxis_SerialCmd_AxisZNeg_Xreset`.
     * Parameter id: 30249; get command id: -1; set command id: 30490.
     */
    MOZA_DECLARE_GENERATED_PARAM(usbHidAxisSerialCmdAxisZNegXreset, kUsbHidAxisSerialCmdAxisZNegXresetParameterId, 30249, WriteOnlyParameter<moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisZNegXresetSet>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y2_y-2
     * Repository name: `Main_Steer_TorqueNonlinearX_y2_y-2`.
     * Parameter id: 30260; get command id: 30502; set command id: 30501.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY2Y2, kSteerTorqueNonlinearXY2Y2ParameterId, 30260, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y3_y-3
     * Repository name: `Main_Steer_TorqueNonlinearX_y3_y-3`.
     * Parameter id: 30261; get command id: 30504; set command id: 30503.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY3Y3, kSteerTorqueNonlinearXY3Y3ParameterId, 30261, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y4_y-4
     * Repository name: `Main_Steer_TorqueNonlinearX_y4_y-4`.
     * Parameter id: 30262; get command id: 30506; set command id: 30505.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY4Y4, kSteerTorqueNonlinearXY4Y4ParameterId, 30262, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y5_y-5
     * Repository name: `Main_Steer_TorqueNonlinearX_y5_y-5`.
     * Parameter id: 30263; get command id: 30508; set command id: 30507.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY5Y5, kSteerTorqueNonlinearXY5Y5ParameterId, 30263, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y6_y-6
     * Repository name: `Main_Steer_TorqueNonlinearX_y6_y-6`.
     * Parameter id: 30264; get command id: 30510; set command id: 30509.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY6Y6, kSteerTorqueNonlinearXY6Y6ParameterId, 30264, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y2
     * Repository name: `Main_Steer_TorqueNonlinearX_y2`.
     * Parameter id: 30265; get command id: 30512; set command id: 30511.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY2, kSteerTorqueNonlinearXY2ParameterId, 30265, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y3
     * Repository name: `Main_Steer_TorqueNonlinearX_y3`.
     * Parameter id: 30266; get command id: 30514; set command id: 30513.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY3, kSteerTorqueNonlinearXY3ParameterId, 30266, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y4
     * Repository name: `Main_Steer_TorqueNonlinearX_y4`.
     * Parameter id: 30267; get command id: 30516; set command id: 30515.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY4, kSteerTorqueNonlinearXY4ParameterId, 30267, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y5
     * Repository name: `Main_Steer_TorqueNonlinearX_y5`.
     * Parameter id: 30268; get command id: 30518; set command id: 30517.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY5, kSteerTorqueNonlinearXY5ParameterId, 30268, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y6
     * Repository name: `Main_Steer_TorqueNonlinearX_y6`.
     * Parameter id: 30269; get command id: 30520; set command id: 30519.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY6, kSteerTorqueNonlinearXY6ParameterId, 30269, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-2
     * Repository name: `Main_Steer_TorqueNonlinearX_y-2`.
     * Parameter id: 30270; get command id: 30522; set command id: 30521.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY2Id30270, kSteerTorqueNonlinearXY2ParameterIdId30270, 30270, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-3
     * Repository name: `Main_Steer_TorqueNonlinearX_y-3`.
     * Parameter id: 30271; get command id: 30524; set command id: 30523.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY3Id30271, kSteerTorqueNonlinearXY3ParameterIdId30271, 30271, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-4
     * Repository name: `Main_Steer_TorqueNonlinearX_y-4`.
     * Parameter id: 30272; get command id: 30526; set command id: 30525.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY4Id30272, kSteerTorqueNonlinearXY4ParameterIdId30272, 30272, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-5
     * Repository name: `Main_Steer_TorqueNonlinearX_y-5`.
     * Parameter id: 30273; get command id: 30528; set command id: 30527.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY5Id30273, kSteerTorqueNonlinearXY5ParameterIdId30273, 30273, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-6
     * Repository name: `Main_Steer_TorqueNonlinearX_y-6`.
     * Parameter id: 30274; get command id: 30530; set command id: 30529.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearXY6Id30274, kSteerTorqueNonlinearXY6ParameterIdId30274, 30274, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y2_y-2
     * Repository name: `Main_Steer_TorqueNonlinearY_y2_y-2`.
     * Parameter id: 30275; get command id: 30532; set command id: 30531.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY2Y2, kSteerTorqueNonlinearYY2Y2ParameterId, 30275, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y3_y-3
     * Repository name: `Main_Steer_TorqueNonlinearY_y3_y-3`.
     * Parameter id: 30276; get command id: 30534; set command id: 30533.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY3Y3, kSteerTorqueNonlinearYY3Y3ParameterId, 30276, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y4_y-4
     * Repository name: `Main_Steer_TorqueNonlinearY_y4_y-4`.
     * Parameter id: 30277; get command id: 30536; set command id: 30535.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY4Y4, kSteerTorqueNonlinearYY4Y4ParameterId, 30277, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y5_y-5
     * Repository name: `Main_Steer_TorqueNonlinearY_y5_y-5`.
     * Parameter id: 30278; get command id: 30538; set command id: 30537.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY5Y5, kSteerTorqueNonlinearYY5Y5ParameterId, 30278, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y6_y-6
     * Repository name: `Main_Steer_TorqueNonlinearY_y6_y-6`.
     * Parameter id: 30279; get command id: 30540; set command id: 30539.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY6Y6, kSteerTorqueNonlinearYY6Y6ParameterId, 30279, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y2
     * Repository name: `Main_Steer_TorqueNonlinearY_y2`.
     * Parameter id: 30280; get command id: 30542; set command id: 30541.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY2, kSteerTorqueNonlinearYY2ParameterId, 30280, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y3
     * Repository name: `Main_Steer_TorqueNonlinearY_y3`.
     * Parameter id: 30281; get command id: 30544; set command id: 30543.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY3, kSteerTorqueNonlinearYY3ParameterId, 30281, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y4
     * Repository name: `Main_Steer_TorqueNonlinearY_y4`.
     * Parameter id: 30282; get command id: 30546; set command id: 30545.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY4, kSteerTorqueNonlinearYY4ParameterId, 30282, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y5
     * Repository name: `Main_Steer_TorqueNonlinearY_y5`.
     * Parameter id: 30283; get command id: 30548; set command id: 30547.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY5, kSteerTorqueNonlinearYY5ParameterId, 30283, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y6
     * Repository name: `Main_Steer_TorqueNonlinearY_y6`.
     * Parameter id: 30284; get command id: 30550; set command id: 30549.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY6, kSteerTorqueNonlinearYY6ParameterId, 30284, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-2
     * Repository name: `Main_Steer_TorqueNonlinearY_y-2`.
     * Parameter id: 30285; get command id: 30552; set command id: 30551.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY2Id30285, kSteerTorqueNonlinearYY2ParameterIdId30285, 30285, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-3
     * Repository name: `Main_Steer_TorqueNonlinearY_y-3`.
     * Parameter id: 30286; get command id: 30554; set command id: 30553.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY3Id30286, kSteerTorqueNonlinearYY3ParameterIdId30286, 30286, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-4
     * Repository name: `Main_Steer_TorqueNonlinearY_y-4`.
     * Parameter id: 30287; get command id: 30556; set command id: 30555.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY4Id30287, kSteerTorqueNonlinearYY4ParameterIdId30287, 30287, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-5
     * Repository name: `Main_Steer_TorqueNonlinearY_y-5`.
     * Parameter id: 30288; get command id: 30558; set command id: 30557.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY5Id30288, kSteerTorqueNonlinearYY5ParameterIdId30288, 30288, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick force-feedback curve command; the host software sends the force-feedback curve value for the specified position_y-6
     * Repository name: `Main_Steer_TorqueNonlinearY_y-6`.
     * Parameter id: 30289; get command id: 30560; set command id: 30559.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerTorqueNonlinearYY6Id30289, kSteerTorqueNonlinearYY6ParameterIdId30289, 30289, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x2
     * Repository name: `Main_Steer_LocNonlinearX_x2`.
     * Parameter id: 30290; get command id: 30562; set command id: 30561.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXX2, kSteerLocNonlinearXX2ParameterId, 30290, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x3
     * Repository name: `Main_Steer_LocNonlinearX_x3`.
     * Parameter id: 30291; get command id: 30564; set command id: 30563.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXX3, kSteerLocNonlinearXX3ParameterId, 30291, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x4
     * Repository name: `Main_Steer_LocNonlinearX_x4`.
     * Parameter id: 30292; get command id: 30566; set command id: 30565.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXX4, kSteerLocNonlinearXX4ParameterId, 30292, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x5
     * Repository name: `Main_Steer_LocNonlinearX_x5`.
     * Parameter id: 30293; get command id: 30568; set command id: 30567.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXX5, kSteerLocNonlinearXX5ParameterId, 30293, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y2
     * Repository name: `Main_Steer_LocNonlinearX_y2`.
     * Parameter id: 30294; get command id: 30570; set command id: 30569.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXY2, kSteerLocNonlinearXY2ParameterId, 30294, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y3
     * Repository name: `Main_Steer_LocNonlinearX_y3`.
     * Parameter id: 30295; get command id: 30572; set command id: 30571.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXY3, kSteerLocNonlinearXY3ParameterId, 30295, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y4
     * Repository name: `Main_Steer_LocNonlinearX_y4`.
     * Parameter id: 30296; get command id: 30574; set command id: 30573.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXY4, kSteerLocNonlinearXY4ParameterId, 30296, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y5
     * Repository name: `Main_Steer_LocNonlinearX_y5`.
     * Parameter id: 30297; get command id: 30576; set command id: 30575.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXY5, kSteerLocNonlinearXY5ParameterId, 30297, Parameter<std::uint8_t>);

    /**
     * @brief Set and get X-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y6
     * Repository name: `Main_Steer_LocNonlinearX_y6`.
     * Parameter id: 30298; get command id: 30578; set command id: 30577.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearXY6, kSteerLocNonlinearXY6ParameterId, 30298, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x2
     * Repository name: `Main_Steer_LocNonlinearY_x2`.
     * Parameter id: 30299; get command id: 30580; set command id: 30579.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYX2, kSteerLocNonlinearYX2ParameterId, 30299, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x3
     * Repository name: `Main_Steer_LocNonlinearY_x3`.
     * Parameter id: 30300; get command id: 30582; set command id: 30581.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYX3, kSteerLocNonlinearYX3ParameterId, 30300, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x4
     * Repository name: `Main_Steer_LocNonlinearY_x4`.
     * Parameter id: 30301; get command id: 30584; set command id: 30583.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYX4, kSteerLocNonlinearYX4ParameterId, 30301, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_x5
     * Repository name: `Main_Steer_LocNonlinearY_x5`.
     * Parameter id: 30302; get command id: 30586; set command id: 30585.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYX5, kSteerLocNonlinearYX5ParameterId, 30302, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y2
     * Repository name: `Main_Steer_LocNonlinearY_y2`.
     * Parameter id: 30303; get command id: 30588; set command id: 30587.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYY2, kSteerLocNonlinearYY2ParameterId, 30303, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y3
     * Repository name: `Main_Steer_LocNonlinearY_y3`.
     * Parameter id: 30304; get command id: 30590; set command id: 30589.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYY3, kSteerLocNonlinearYY3ParameterId, 30304, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y4
     * Repository name: `Main_Steer_LocNonlinearY_y4`.
     * Parameter id: 30305; get command id: 30592; set command id: 30591.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYY4, kSteerLocNonlinearYY4ParameterId, 30305, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y5
     * Repository name: `Main_Steer_LocNonlinearY_y5`.
     * Parameter id: 30306; get command id: 30594; set command id: 30593.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYY5, kSteerLocNonlinearYY5ParameterId, 30306, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Y-axis joystick position feedback curve command; the host software sends the feedback curve value for the specified position_y6
     * Repository name: `Main_Steer_LocNonlinearY_y6`.
     * Parameter id: 30307; get command id: 30596; set command id: 30595.
     */
    MOZA_DECLARE_GENERATED_PARAM(steerLocNonlinearYY6, kSteerLocNonlinearYY6ParameterId, 30307, Parameter<std::uint8_t>);

    /**
     * @brief Set HID nonlinear curve parameters
     * Repository name: `MainSet_UsbHidAxis_SerialCmdSet`.
     * Command id: 8.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetUsbHidAxisSerialCmdSet, kMainSetUsbHidAxisSerialCmdSetCommandId, 8, Command<moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetRequest>);

    /**
     * @brief Get HID nonlinear curve parameters
     * Repository name: `MainGet_UsbHidAxis_SerialCmdGet`.
     * Command id: 9.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetUsbHidAxisSerialCmdGet, kMainGetUsbHidAxisSerialCmdGetCommandId, 9, Command<moza::as::wheelbase_type::MainGetUsbHidAxisSerialCmdGetRequest, std::uint8_t>);

    /**
     * @brief UsbHid axis serial setting command_reset (requires 0<X1<X2<X3<X4<100; if not satisfied, default values are applied)
     * Repository name: `MainSet_UsbHidAxis_SerialCmdSet_Reset`.
     * Command id: 10.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetUsbHidAxisSerialCmdSetReset, kMainSetUsbHidAxisSerialCmdSetResetCommandId, 10, Command<moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetResetRequest>);

    /**
     * @brief Set LED RGB data_LED strip 1
     * Repository name: `MainSet_LedRgbData_Strip1`.
     * Command id: 80.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetLedRgbDataStrip1, kMainSetLedRgbDataStrip1CommandId, 80, Command<moza::as::wheelbase_type::MainSetLedRgbDataStrip1Request>);

    /**
     * @brief Get LED RGB data_LED strip 1
     * Repository name: `MainGet_LedRgbData_Strip1`.
     * Command id: 81.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetLedRgbDataStrip1, kMainGetLedRgbDataStrip1CommandId, 81, Command<int, moza::as::wheelbase_type::MainGetLedRgbDataStrip1Response>);

    /**
     * @brief Set LED RGB data_LED strip 2
     * Repository name: `MainSet_LedRgbData_Strip2`.
     * Command id: 82.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetLedRgbDataStrip2, kMainSetLedRgbDataStrip2CommandId, 82, Command<moza::as::wheelbase_type::MainSetLedRgbDataStrip2Request>);

    /**
     * @brief Get LED RGB data_LED strip 2
     * Repository name: `MainGet_LedRgbData_Strip2`.
     * Command id: 83.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetLedRgbDataStrip2, kMainGetLedRgbDataStrip2CommandId, 83, Command<int, moza::as::wheelbase_type::MainGetLedRgbDataStrip2Response>);

    /**
     * @brief Set base parameter restore, reset, and progress-bar function
     * Repository name: `MainSet_Steer_MotorParamRetest`.
     * Command id: 236.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetSteerMotorParamRetest, kMainSetSteerMotorParamRetestCommandId, 236, Command<>);

    /**
     * @brief Get base parameter restore, reset, and progress-bar function
     * Repository name: `MainGet_Steer_MotorParamRetest`.
     * Command id: 237.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetSteerMotorParamRetest, kMainGetSteerMotorParamRetestCommandId, 237, Command<NoPayload, std::uint16_t>);

    /**
     * @brief Set base cogging torque reset and progress-bar function
     * Repository name: `MainSet_Steer_MotorCoggingReset`.
     * Command id: 238.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetSteerMotorCoggingReset, kMainSetSteerMotorCoggingResetCommandId, 238, Command<>);

    /**
     * @brief Get base cogging torque reset and progress-bar function
     * Repository name: `MainGet_Steer_MotorCoggingReset`.
     * Command id: 239.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetSteerMotorCoggingReset, kMainGetSteerMotorCoggingResetCommandId, 239, Command<NoPayload, std::uint16_t>);

    /**
     * @brief Get joystick connection status
     * Repository name: `MainGet_Steer_StickConnectState`.
     * Command id: 315.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetSteerStickConnectState, kMainGetSteerStickConnectStateCommandId, 315, Command<NoPayload, int>);

    /**
     * @brief Start pitch-axis resistance compensation calibration
     * Repository name: `MainSet_ResistanceCompensationResetSet`.
     * Command id: 501.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainSetResistanceCompensationResetSet, kMainSetResistanceCompensationResetSetCommandId, 501, Command<>);

    /**
     * @brief Get pitch-axis resistance compensation calibration progress
     * Repository name: `MainGet_ResistanceCompensationResetGet`.
     * Command id: 502.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainGetResistanceCompensationResetGet, kMainGetResistanceCompensationResetGetCommandId, 502, Command<NoPayload, std::uint8_t>);

    /**
     * @brief Yaw calibration
     * Repository name: `MainCtrl_YawCalib`.
     * Command id: 602.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlYawCalib, kMainCtrlYawCalibCommandId, 602, Command<int>);

    /**
     * @brief Force feedback effect
     * Repository name: `MainCtrl_FfbNewEffect`.
     * Command id: 603.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbNewEffect, kMainCtrlFfbNewEffectCommandId, 603, Command<moza::as::wheelbase_type::MainCtrlFfbNewEffectRequest, std::uint8_t>);

    /**
     * @brief Constant force feedback
     * Repository name: `MainCtrl_FfbConstant`.
     * Command id: 604.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbConstant, kMainCtrlFfbConstantCommandId, 604, Command<moza::as::wheelbase_type::MainCtrlFfbConstantRequest>);

    /**
     * @brief Ramp force feedback
     * Repository name: `MainCtrl_FfbRamp`.
     * Command id: 605.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbRamp, kMainCtrlFfbRampCommandId, 605, Command<moza::as::wheelbase_type::MainCtrlFfbRampRequest>);

    /**
     * @brief Periodic force feedback
     * Repository name: `MainCtrl_FfbPeriodic`.
     * Command id: 606.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbPeriodic, kMainCtrlFfbPeriodicCommandId, 606, Command<moza::as::wheelbase_type::MainCtrlFfbPeriodicRequest>);

    /**
     * @brief Condition force feedback
     * Repository name: `MainCtrl_FfbCondition`.
     * Command id: 607.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbCondition, kMainCtrlFfbConditionCommandId, 607, Command<moza::as::wheelbase_type::MainCtrlFfbConditionRequest>);

    /**
     * @brief Force feedback envelope
     * Repository name: `MainCtrl_FfbEnvelope`.
     * Command id: 608.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbEnvelope, kMainCtrlFfbEnvelopeCommandId, 608, Command<moza::as::wheelbase_type::MainCtrlFfbEnvelopeRequest>);

    /**
     * @brief Force feedback effect operation
     * Repository name: `MainCtrl_FfbEffectOperation`.
     * Command id: 609.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbEffectOperation, kMainCtrlFfbEffectOperationCommandId, 609, Command<moza::as::wheelbase_type::MainCtrlFfbEffectOperationRequest>);

    /**
     * @brief Force feedback control
     * Repository name: `MainCtrl_FfbControl`.
     * Command id: 610.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlFfbControl, kMainCtrlFfbControlCommandId, 610, Command<int>);

    /**
     * @brief Set indicator status
     * Repository name: `MainCtrl_SetIndicatorState`.
     * Command id: 612.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlSetIndicatorState, kMainCtrlSetIndicatorStateCommandId, 612, Command<int>);

    /**
     * @brief Set background light telemetry brightness
     * Repository name: `MainCtrl_BackgroundLedTelemetry`.
     * Command id: 613.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlBackgroundLedTelemetry, kMainCtrlBackgroundLedTelemetryCommandId, 613, Command<std::uint8_t>);

    /**
     * @brief Set flap light telemetry
     * Repository name: `MainCtrl_GearLedTelemetry`.
     * Command id: 614.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlGearLedTelemetry, kMainCtrlGearLedTelemetryCommandId, 614, Command<moza::as::wheelbase_type::MainCtrlGearLedTelemetryRequest>);

    /**
     * @brief Set LED telemetry data
     * Repository name: `MainCtrl_LedTelemetryData`.
     * Command id: 615.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdMainCtrlLedTelemetryData, kMainCtrlLedTelemetryDataCommandId, 615, Command<moza::as::wheelbase_type::MainCtrlLedTelemetryDataRequest>);

};

class ThrottleGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_THROTTLE;

    /**
     * @brief Get joystick connection status
     * Repository name: `TH_EncoderDetectResult`.
     * Parameter id: 1002; get command id: 1002; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thEncoderDetectResult, kTHEncoderDetectResultParameterId, 1002, ReadOnlyParameter<moza::as::throttle_type::THEncoderDetectResultGet>);

    /**
     * @brief Get left throttle axis data
     * Repository name: `TH_LeftThrottleLever`.
     * Parameter id: 1003; get command id: 1003; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLeftThrottleLever, kTHLeftThrottleLeverParameterId, 1003, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get right throttle axis data
     * Repository name: `TH_RightThrottleLever`.
     * Parameter id: 1004; get command id: 1004; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thRightThrottleLever, kTHRightThrottleLeverParameterId, 1004, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get joystick data
     * Repository name: `TH_Rocket`.
     * Parameter id: 1005; get command id: 1005; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thRocket, kTHRocketParameterId, 1005, ReadOnlyParameter<moza::as::throttle_type::THRocketGet>);

    /**
     * @brief Get slider data
     * Repository name: `TH_Slider`.
     * Parameter id: 1006; get command id: 1006; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thSlider, kTHSliderParameterId, 1006, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get physical axis position_RX axis
     * Repository name: `TH_GetAxisPhyPos_RX`.
     * Parameter id: 1008; get command id: 1008; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thGetAxisPhyPosRX, kTHGetAxisPhyPosRXParameterId, 1008, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get left grip connection type
     * Repository name: `TH_GetLeftRodType`.
     * Parameter id: 1009; get command id: 1009; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thGetLeftRodType, kTHGetLeftRodTypeParameterId, 1009, ReadOnlyParameter<int>);

    /**
     * @brief Get right grip connection type
     * Repository name: `TH_GetRightRodType`.
     * Parameter id: 1010; get command id: 1010; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thGetRightRodType, kTHGetRightRodTypeParameterId, 1010, ReadOnlyParameter<int>);

    /**
     * @brief Get axis calibration result
     * Repository name: `TH_AxisCalibResult`.
     * Parameter id: 1011; get command id: 1011; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxisCalibResult, kTHAxisCalibResultParameterId, 1011, ReadOnlyParameter<moza::as::throttle_type::THAxisCalibResultGet>);

    /**
     * @brief Set and get operating mode
     * Repository name: `TH_WorkingMode`.
     * Parameter id: 1012; get command id: 1012; set command id: 1013.
     */
    MOZA_DECLARE_GENERATED_PARAM(thWorkingMode, kTHWorkingModeParameterId, 1012, Parameter<int>);

    /**
     * @brief Set and get lighting brightness
     * Repository name: `TH_ledBrightness`.
     * Parameter id: 1013; get command id: 1014; set command id: 1015.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLedBrightness, kTHLedBrightnessParameterId, 1013, Parameter<std::uint8_t>);

    /**
     * @brief Set and get HID mode
     * Repository name: `TH_HidMode`.
     * Parameter id: 1014; get command id: 1016; set command id: 1017.
     */
    MOZA_DECLARE_GENERATED_PARAM(thHidMode, kTHHidModeParameterId, 1014, Parameter<int>);

    /**
     * @brief Set and get APU light brightness value
     * Repository name: `TH_ApuBrightness`.
     * Parameter id: 1015; get command id: 1018; set command id: 1019.
     */
    MOZA_DECLARE_GENERATED_PARAM(thApuBrightness, kTHApuBrightnessParameterId, 1015, Parameter<std::uint8_t>);

    /**
     * @brief Set and get axis-mapped button
     * Repository name: `TH_AxisMappingButtonEnable`.
     * Parameter id: 1016; get command id: 1020; set command id: 1021.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxisMappingButtonEnable, kTHAxisMappingButtonEnableParameterId, 1016, Parameter<int>);

    /**
     * @brief Set and get Cfg axis map_T01 device_32 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key32_Upper`.
     * Parameter id: 1017; get command id: 1022; set command id: 1023.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key32Upper, kTHCfgAxisMapT01Key32UpperParameterId, 1017, Parameter<std::uint16_t>);

    /**
     * @brief Set and get lighting mode
     * Repository name: `TH_LedMode`.
     * Parameter id: 1018; get command id: 1024; set command id: 1025.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLedMode, kTHLedModeParameterId, 1018, Parameter<int>);

    /**
     * @brief Set and get lighting telemetry brightness
     * Repository name: `TH_TelemetryBrightness`.
     * Parameter id: 1019; get command id: -1; set command id: 1027.
     */
    MOZA_DECLARE_GENERATED_PARAM(thTelemetryBrightness, kTHTelemetryBrightnessParameterId, 1019, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get configured afterburner percentage
     * Repository name: `TH_CfgAxisPercentage`.
     * Parameter id: 1020; get command id: 1028; set command id: 1029.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisPercentage, kTHCfgAxisPercentageParameterId, 1020, Parameter<std::uint8_t>);

    /**
     * @brief Set and get left slider mode
     * Repository name: `TH_LeftSliderMode`.
     * Parameter id: 1021; get command id: 1030; set command id: 1031.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLeftSliderMode, kTHLeftSliderModeParameterId, 1021, Parameter<int>);

    /**
     * @brief Set and get right slider mode
     * Repository name: `TH_RightSliderMode`.
     * Parameter id: 1022; get command id: 1032; set command id: 1033.
     */
    MOZA_DECLARE_GENERATED_PARAM(thRightSliderMode, kTHRightSliderModeParameterId, 1022, Parameter<int>);

    /**
     * @brief Set lighting group color_all lighting groups
     * Repository name: `TH_LampColor_ALL`.
     * Parameter id: 1023; get command id: -1; set command id: 1035.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampColorALL, kTHLampColorALLParameterId, 1023, WriteOnlyParameter<moza::as::throttle_type::THLampColorALLSet>);

    /**
     * @brief Set lighting group pattern_all lighting groups
     * Repository name: `TH_LampPattern_ALL`.
     * Parameter id: 1024; get command id: -1; set command id: 1037.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampPatternALL, kTHLampPatternALLParameterId, 1024, WriteOnlyParameter<int>);

    /**
     * @brief Set lighting group effect_all lighting groups
     * Repository name: `TH_LampEffect_All`.
     * Parameter id: 1025; get command id: -1; set command id: 1039.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampEffectAll, kTHLampEffectAllParameterId, 1025, WriteOnlyParameter<int>);

    /**
     * @brief Set lighting group brightness_all lighting groups
     * Repository name: `TH_LampBrightness_All`.
     * Parameter id: 1026; get command id: -1; set command id: 1041.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampBrightnessAll, kTHLampBrightnessAllParameterId, 1026, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set lighting group mode_all lighting groups
     * Repository name: `TH_LampMode_All`.
     * Parameter id: 1027; get command id: -1; set command id: 1043.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampModeAll, kTHLampModeAllParameterId, 1027, WriteOnlyParameter<int>);

    /**
     * @brief Set lighting group telemetry brightness_all lighting groups
     * Repository name: `TH_LampTelemetryBrightness_All`.
     * Parameter id: 1028; get command id: -1; set command id: 1045.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampTelemetryBrightnessAll, kTHLampTelemetryBrightnessAllParameterId, 1028, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get throttle axis synchronized output status
     * Repository name: `TH_AxisSyncState`.
     * Parameter id: 1029; get command id: 1046; set command id: 1047.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxisSyncState, kTHAxisSyncStateParameterId, 1029, Parameter<int>);

    /**
     * @brief Set and get throttle axis calibration status
     * Repository name: `TH_AxisCalibState`.
     * Parameter id: 1030; get command id: 1048; set command id: 1049.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxisCalibState, kTHAxisCalibStateParameterId, 1030, Parameter<moza::as::throttle_type::THAxisCalibState::Get, moza::as::throttle_type::THAxisCalibState::Set>);

    /**
     * @brief Set axis 0 calibration
     * Repository name: `TH_Axis0Calib`.
     * Parameter id: 1035; get command id: -1; set command id: 1104.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis0Calib, kTHAxis0CalibParameterId, 1035, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 1 calibration
     * Repository name: `TH_Axis1Calib`.
     * Parameter id: 1036; get command id: -1; set command id: 1105.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis1Calib, kTHAxis1CalibParameterId, 1036, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 2 calibration
     * Repository name: `TH_Axis2Calib`.
     * Parameter id: 1037; get command id: -1; set command id: 1106.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis2Calib, kTHAxis2CalibParameterId, 1037, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 3 calibration
     * Repository name: `TH_Axis3Calib`.
     * Parameter id: 1038; get command id: -1; set command id: 1107.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis3Calib, kTHAxis3CalibParameterId, 1038, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 4 calibration
     * Repository name: `TH_Axis4Calib`.
     * Parameter id: 1039; get command id: -1; set command id: 1108.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis4Calib, kTHAxis4CalibParameterId, 1039, WriteOnlyParameter<int>);

    /**
     * @brief Set motor vibration strength adjustment
     * Repository name: `TH_Motor`.
     * Parameter id: 1040; get command id: -1; set command id: 1109.
     */
    MOZA_DECLARE_GENERATED_PARAM(thMotor, kTHMotorParameterId, 1040, WriteOnlyParameter<moza::as::throttle_type::THMotorSet>);

    /**
     * @brief Set axis nonlinear curve parameter configuration
     * Repository name: `TH_AxisNonlinearParamCfg`.
     * Parameter id: 1041; get command id: -1; set command id: 1110.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxisNonlinearParamCfg, kTHAxisNonlinearParamCfgParameterId, 1041, WriteOnlyParameter<moza::as::throttle_type::THAxisNonlinearParamCfgSet>);

    /**
     * @brief Set axis 5 calibration
     * Repository name: `TH_Axis5Calib`.
     * Parameter id: 1042; get command id: -1; set command id: 1111.
     */
    MOZA_DECLARE_GENERATED_PARAM(thAxis5Calib, kTHAxis5CalibParameterId, 1042, WriteOnlyParameter<int>);

    /**
     * @brief Get physical axis position_RY axis
     * Repository name: `TH_GetAxisPhyPos_RY`.
     * Parameter id: 1043; get command id: 1050; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(thGetAxisPhyPosRY, kTHGetAxisPhyPosRYParameterId, 1043, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Set and get lighting color_lighting group 1
     * Repository name: `TH_LampColor_Strip1`.
     * Parameter id: 1045; get command id: 1053; set command id: 1054.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampColorStrip1, kTHLampColorStrip1ParameterId, 1045, Parameter<moza::as::throttle_type::THLampColorStrip1Value>);

    /**
     * @brief Set and get lighting color_lighting group 2
     * Repository name: `TH_LampColor_Strip2`.
     * Parameter id: 1046; get command id: 1055; set command id: 1056.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampColorStrip2, kTHLampColorStrip2ParameterId, 1046, Parameter<moza::as::throttle_type::THLampColorStrip2Value>);

    /**
     * @brief Set and get lighting group pattern_lighting group 1
     * Repository name: `TH_LampPattern_Strip1`.
     * Parameter id: 1047; get command id: 1057; set command id: 1058.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampPatternStrip1, kTHLampPatternStrip1ParameterId, 1047, Parameter<int>);

    /**
     * @brief Set and get lighting group pattern_lighting group 2
     * Repository name: `TH_LampPattern_Strip2`.
     * Parameter id: 1048; get command id: 1059; set command id: 1060.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampPatternStrip2, kTHLampPatternStrip2ParameterId, 1048, Parameter<int>);

    /**
     * @brief Set and get lighting group effect_lighting group 1
     * Repository name: `TH_LampEffect_Strip1`.
     * Parameter id: 1049; get command id: 1061; set command id: 1062.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampEffectStrip1, kTHLampEffectStrip1ParameterId, 1049, Parameter<int>);

    /**
     * @brief Set and get lighting group effect_lighting group 2
     * Repository name: `TH_LampEffect_Strip2`.
     * Parameter id: 1050; get command id: 1063; set command id: 1064.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampEffectStrip2, kTHLampEffectStrip2ParameterId, 1050, Parameter<int>);

    /**
     * @brief Set and get lighting group brightness_lighting group 1
     * Repository name: `TH_LampBrightness_Strip1`.
     * Parameter id: 1051; get command id: 1065; set command id: 1066.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampBrightnessStrip1, kTHLampBrightnessStrip1ParameterId, 1051, Parameter<std::uint8_t>);

    /**
     * @brief Set and get lighting group brightness_lighting group 2
     * Repository name: `TH_LampBrightness_Strip2`.
     * Parameter id: 1052; get command id: 1067; set command id: 1068.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampBrightnessStrip2, kTHLampBrightnessStrip2ParameterId, 1052, Parameter<std::uint8_t>);

    /**
     * @brief Set and get lighting group mode_lighting group 1
     * Repository name: `TH_LampMode_Strip1`.
     * Parameter id: 1053; get command id: 1069; set command id: 1070.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampModeStrip1, kTHLampModeStrip1ParameterId, 1053, Parameter<int>);

    /**
     * @brief Set and get lighting group mode_lighting group 2
     * Repository name: `TH_LampMode_Strip2`.
     * Parameter id: 1054; get command id: 1071; set command id: 1072.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampModeStrip2, kTHLampModeStrip2ParameterId, 1054, Parameter<int>);

    /**
     * @brief Set lighting group telemetry brightness_lighting group 1
     * Repository name: `TH_LampTelemetryBrightness_Strip1`.
     * Parameter id: 1055; get command id: -1; set command id: 1074.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampTelemetryBrightnessStrip1, kTHLampTelemetryBrightnessStrip1ParameterId, 1055, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set lighting group telemetry brightness_lighting group 2
     * Repository name: `TH_LampTelemetryBrightness_Strip2`.
     * Parameter id: 1056; get command id: -1; set command id: 1076.
     */
    MOZA_DECLARE_GENERATED_PARAM(thLampTelemetryBrightnessStrip2, kTHLampTelemetryBrightnessStrip2ParameterId, 1056, WriteOnlyParameter<std::uint8_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_32 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key32_Lower`.
     * Parameter id: 1057; get command id: 1078; set command id: 1079.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key32Lower, kTHCfgAxisMapT01Key32LowerParameterId, 1057, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_33 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key33_Upper`.
     * Parameter id: 1058; get command id: 1080; set command id: 1081.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key33Upper, kTHCfgAxisMapT01Key33UpperParameterId, 1058, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_33 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key33_Lower`.
     * Parameter id: 1059; get command id: 1082; set command id: 1083.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key33Lower, kTHCfgAxisMapT01Key33LowerParameterId, 1059, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_34 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key34_Upper`.
     * Parameter id: 1060; get command id: 1084; set command id: 1085.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key34Upper, kTHCfgAxisMapT01Key34UpperParameterId, 1060, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_34 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key34_Lower`.
     * Parameter id: 1061; get command id: 1086; set command id: 1087.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key34Lower, kTHCfgAxisMapT01Key34LowerParameterId, 1061, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_35 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key35_Upper`.
     * Parameter id: 1062; get command id: 1088; set command id: 1089.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key35Upper, kTHCfgAxisMapT01Key35UpperParameterId, 1062, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_35 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key35_Lower`.
     * Parameter id: 1063; get command id: 1090; set command id: 1091.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key35Lower, kTHCfgAxisMapT01Key35LowerParameterId, 1063, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_41 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key41_Upper`.
     * Parameter id: 1064; get command id: 1092; set command id: 1093.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key41Upper, kTHCfgAxisMapT01Key41UpperParameterId, 1064, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_41 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key41_Lower`.
     * Parameter id: 1065; get command id: 1094; set command id: 1095.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key41Lower, kTHCfgAxisMapT01Key41LowerParameterId, 1065, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_42 key_upper limit
     * Repository name: `TH_CfgAxisMap_T01_Key42_Upper`.
     * Parameter id: 1066; get command id: 1096; set command id: 1097.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key42Upper, kTHCfgAxisMapT01Key42UpperParameterId, 1066, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T01 device_42 key_lower limit
     * Repository name: `TH_CfgAxisMap_T01_Key42_Lower`.
     * Parameter id: 1067; get command id: 1098; set command id: 1099.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT01Key42Lower, kTHCfgAxisMapT01Key42LowerParameterId, 1067, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_72 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key72_Upper`.
     * Parameter id: 1068; get command id: 1112; set command id: 1113.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key72Upper, kTHCfgAxisMapT00Key72UpperParameterId, 1068, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_72 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key72_Lower`.
     * Parameter id: 1069; get command id: 1114; set command id: 1115.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key72Lower, kTHCfgAxisMapT00Key72LowerParameterId, 1069, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_73 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key73_Upper`.
     * Parameter id: 1070; get command id: 1116; set command id: 1117.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key73Upper, kTHCfgAxisMapT00Key73UpperParameterId, 1070, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_73 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key73_Lower`.
     * Parameter id: 1071; get command id: 1118; set command id: 1119.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key73Lower, kTHCfgAxisMapT00Key73LowerParameterId, 1071, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_74 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key74_Upper`.
     * Parameter id: 1072; get command id: 1120; set command id: 1121.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key74Upper, kTHCfgAxisMapT00Key74UpperParameterId, 1072, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_74 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key74_Lower`.
     * Parameter id: 1073; get command id: 1122; set command id: 1123.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key74Lower, kTHCfgAxisMapT00Key74LowerParameterId, 1073, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_75 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key75_Upper`.
     * Parameter id: 1074; get command id: 1124; set command id: 1125.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key75Upper, kTHCfgAxisMapT00Key75UpperParameterId, 1074, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_75 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key75_Lower`.
     * Parameter id: 1075; get command id: 1126; set command id: 1127.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key75Lower, kTHCfgAxisMapT00Key75LowerParameterId, 1075, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_76 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key76_Upper`.
     * Parameter id: 1076; get command id: 1128; set command id: 1129.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key76Upper, kTHCfgAxisMapT00Key76UpperParameterId, 1076, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_76 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key76_Lower`.
     * Parameter id: 1077; get command id: 1130; set command id: 1131.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key76Lower, kTHCfgAxisMapT00Key76LowerParameterId, 1077, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_77 key_upper limit
     * Repository name: `TH_CfgAxisMap_T00_key77_Upper`.
     * Parameter id: 1078; get command id: 1132; set command id: 1133.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key77Upper, kTHCfgAxisMapT00Key77UpperParameterId, 1078, Parameter<std::uint16_t>);

    /**
     * @brief Set and get Cfg axis map_T00 device_77 key_lower limit
     * Repository name: `TH_CfgAxisMap_T00_key77_Lower`.
     * Parameter id: 1079; get command id: 1134; set command id: 1135.
     */
    MOZA_DECLARE_GENERATED_PARAM(thCfgAxisMapT00Key77Lower, kTHCfgAxisMapT00Key77LowerParameterId, 1079, Parameter<std::uint16_t>);

    /**
     * @brief (To be entered) Get Data command
     * Repository name: `THGet_Data`.
     * Command id: 1000.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdTHGetData, kTHGetDataCommandId, 1000, Command<>);

};

class RudderGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_RUDDER;

    /**
     * @brief Get data
     * Repository name: `RD_Data`.
     * Parameter id: 2000; get command id: 2000; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdData, kRDDataParameterId, 2000, ReadOnlyParameter<moza::as::rudder_type::RDDataGet>);

    /**
     * @brief Get left brake sensor
     * Repository name: `RD_LeftBrakeSensor`.
     * Parameter id: 2003; get command id: 2003; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeSensor, kRDLeftBrakeSensorParameterId, 2003, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get right brake sensor
     * Repository name: `RD_RightBrakeSensor`.
     * Parameter id: 2004; get command id: 2004; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeSensor, kRDRightBrakeSensorParameterId, 2004, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get yaw sensor
     * Repository name: `RD_YawSensor`.
     * Parameter id: 2005; get command id: 2005; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawSensor, kRDYawSensorParameterId, 2005, ReadOnlyParameter<std::uint16_t>);

    /**
     * @brief Get raw data
     * Repository name: `RD_RawData`.
     * Parameter id: 2006; get command id: 2006; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRawData, kRDRawDataParameterId, 2006, ReadOnlyParameter<moza::as::rudder_type::RDRawDataGet>);

    /**
     * @brief (Version 1.1.1.4 has no get) Set and get operating mode
     * Repository name: `RD_WorkingMode`.
     * Parameter id: 2007; get command id: 2007; set command id: 2008.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdWorkingMode, kRDWorkingModeParameterId, 2007, Parameter<int>);

    /**
     * @brief Set and get yaw-axis nonlinear Y1
     * Repository name: `RD_YawAxisNonlinearY1`.
     * Parameter id: 2008; get command id: 2009; set command id: 2010.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisNonlinearY1, kRDYawAxisNonlinearY1ParameterId, 2008, Parameter<float>);

    /**
     * @brief Set and get yaw-axis nonlinear Y2
     * Repository name: `RD_YawAxisNonlinearY2`.
     * Parameter id: 2009; get command id: 2011; set command id: 2012.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisNonlinearY2, kRDYawAxisNonlinearY2ParameterId, 2009, Parameter<float>);

    /**
     * @brief Set and get yaw-axis nonlinear Y3
     * Repository name: `RD_YawAxisNonlinearY3`.
     * Parameter id: 2010; get command id: 2013; set command id: 2014.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisNonlinearY3, kRDYawAxisNonlinearY3ParameterId, 2010, Parameter<float>);

    /**
     * @brief Set and get yaw-axis nonlinear Y4
     * Repository name: `RD_YawAxisNonlinearY4`.
     * Parameter id: 2011; get command id: 2015; set command id: 2016.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisNonlinearY4, kRDYawAxisNonlinearY4ParameterId, 2011, Parameter<float>);

    /**
     * @brief Set and get yaw-axis nonlinear Y5
     * Repository name: `RD_YawAxisNonlinearY5`.
     * Parameter id: 2012; get command id: 2017; set command id: 2018.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisNonlinearY5, kRDYawAxisNonlinearY5ParameterId, 2012, Parameter<float>);

    /**
     * @brief Set and get left brake axis nonlinear Y1
     * Repository name: `RD_LeftBrakeAxisNonlinearY1`.
     * Parameter id: 2013; get command id: 2019; set command id: 2020.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisNonlinearY1, kRDLeftBrakeAxisNonlinearY1ParameterId, 2013, Parameter<float>);

    /**
     * @brief Set and get left brake axis nonlinear Y2
     * Repository name: `RD_LeftBrakeAxisNonlinearY2`.
     * Parameter id: 2014; get command id: 2021; set command id: 2022.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisNonlinearY2, kRDLeftBrakeAxisNonlinearY2ParameterId, 2014, Parameter<float>);

    /**
     * @brief Set and get left brake axis nonlinear Y3
     * Repository name: `RD_LeftBrakeAxisNonlinearY3`.
     * Parameter id: 2015; get command id: 2023; set command id: 2024.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisNonlinearY3, kRDLeftBrakeAxisNonlinearY3ParameterId, 2015, Parameter<float>);

    /**
     * @brief Set and get left brake axis nonlinear Y4
     * Repository name: `RD_LeftBrakeAxisNonlinearY4`.
     * Parameter id: 2016; get command id: 2025; set command id: 2026.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisNonlinearY4, kRDLeftBrakeAxisNonlinearY4ParameterId, 2016, Parameter<float>);

    /**
     * @brief Set and get left brake axis nonlinear Y5
     * Repository name: `RD_LeftBrakeAxisNonlinearY5`.
     * Parameter id: 2017; get command id: 2037; set command id: 2028.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisNonlinearY5, kRDLeftBrakeAxisNonlinearY5ParameterId, 2017, Parameter<float>);

    /**
     * @brief Set and get right brake axis nonlinear Y1
     * Repository name: `RD_RightBrakeAxisNonlinearY1`.
     * Parameter id: 2018; get command id: 2029; set command id: 2030.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisNonlinearY1, kRDRightBrakeAxisNonlinearY1ParameterId, 2018, Parameter<float>);

    /**
     * @brief Set and get right brake axis nonlinear Y2
     * Repository name: `RD_RightBrakeAxisNonlinearY2`.
     * Parameter id: 2019; get command id: 2031; set command id: 2032.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisNonlinearY2, kRDRightBrakeAxisNonlinearY2ParameterId, 2019, Parameter<float>);

    /**
     * @brief Set and get right brake axis nonlinear Y3
     * Repository name: `RD_RightBrakeAxisNonlinearY3`.
     * Parameter id: 2020; get command id: 2033; set command id: 2034.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisNonlinearY3, kRDRightBrakeAxisNonlinearY3ParameterId, 2020, Parameter<float>);

    /**
     * @brief Set and get right brake axis nonlinear Y4
     * Repository name: `RD_RightBrakeAxisNonlinearY4`.
     * Parameter id: 2021; get command id: 2035; set command id: 2036.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisNonlinearY4, kRDRightBrakeAxisNonlinearY4ParameterId, 2021, Parameter<float>);

    /**
     * @brief Set and get right brake axis nonlinear Y5
     * Repository name: `RD_RightBrakeAxisNonlinearY5`.
     * Parameter id: 2022; get command id: 2037; set command id: 2038.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisNonlinearY5, kRDRightBrakeAxisNonlinearY5ParameterId, 2022, Parameter<float>);

    /**
     * @brief Set and get yaw-axis maximum dead zone
     * Repository name: `RD_YawAxisMaxDeadZone`.
     * Parameter id: 2023; get command id: 2039; set command id: 2040.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisMaxDeadZone, kRDYawAxisMaxDeadZoneParameterId, 2023, Parameter<float>);

    /**
     * @brief Set and get yaw-axis minimum dead zone
     * Repository name: `RD_YawAxisMinDeadZone`.
     * Parameter id: 2024; get command id: 2041; set command id: 2042.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisMinDeadZone, kRDYawAxisMinDeadZoneParameterId, 2024, Parameter<float>);

    /**
     * @brief Set and get left brake maximum dead zone
     * Repository name: `RD_LeftBrakeMaxDeadZone`.
     * Parameter id: 2025; get command id: 2043; set command id: 2044.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeMaxDeadZone, kRDLeftBrakeMaxDeadZoneParameterId, 2025, Parameter<float>);

    /**
     * @brief Set and get left brake minimum dead zone
     * Repository name: `RD_LeftBrakeMinDeadZone`.
     * Parameter id: 2026; get command id: 2045; set command id: 2046.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeMinDeadZone, kRDLeftBrakeMinDeadZoneParameterId, 2026, Parameter<float>);

    /**
     * @brief Set and get right brake maximum dead zone
     * Repository name: `RD_RightBrakeMaxDeadZone`.
     * Parameter id: 2027; get command id: 2047; set command id: 2048.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeMaxDeadZone, kRDRightBrakeMaxDeadZoneParameterId, 2027, Parameter<float>);

    /**
     * @brief Set and get right brake minimum dead zone
     * Repository name: `RD_RightBrakeMinDeadZone`.
     * Parameter id: 2028; get command id: 2049; set command id: 2050.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeMinDeadZone, kRDRightBrakeMinDeadZoneParameterId, 2028, Parameter<float>);

    /**
     * @brief Set yaw-axis calibration (RZ)
     * Repository name: `RD_YawAxisCalib`.
     * Parameter id: 2033; get command id: -1; set command id: 2055.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisCalib, kRDYawAxisCalibParameterId, 2033, WriteOnlyParameter<int>);

    /**
     * @brief Set left brake RX-axis calibration (RX)
     * Repository name: `RD_LeftBrakeAxisCalib`.
     * Parameter id: 2034; get command id: -1; set command id: 2056.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisCalib, kRDLeftBrakeAxisCalibParameterId, 2034, WriteOnlyParameter<int>);

    /**
     * @brief Set right brake axis calibration (RY)
     * Repository name: `RD_RightBrakeAxisCalib`.
     * Parameter id: 2035; get command id: -1; set command id: 2057.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisCalib, kRDRightBrakeAxisCalibParameterId, 2035, WriteOnlyParameter<int>);

    /**
     * @brief Set yaw-axis direction reversal
     * Repository name: `RD_YawAxisReverseDirection`.
     * Parameter id: 2036; get command id: -1; set command id: 2058.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdYawAxisReverseDirection, kRDYawAxisReverseDirectionParameterId, 2036, WriteOnlyParameter<int>);

    /**
     * @brief Set left brake axis direction reversal
     * Repository name: `RD_LeftBrakeAxisReverseDirection`.
     * Parameter id: 2037; get command id: -1; set command id: 2059.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdLeftBrakeAxisReverseDirection, kRDLeftBrakeAxisReverseDirectionParameterId, 2037, WriteOnlyParameter<int>);

    /**
     * @brief Set right brake axis direction reversal
     * Repository name: `RD_RightBrakeAxisReverseDirection`.
     * Parameter id: 2038; get command id: -1; set command id: 2060.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdRightBrakeAxisReverseDirection, kRDRightBrakeAxisReverseDirectionParameterId, 2038, WriteOnlyParameter<int>);

    /**
     * @brief Get calibration result
     * Repository name: `RD_CalibState`.
     * Parameter id: 2039; get command id: 2061; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdCalibState, kRDCalibStateParameterId, 2039, ReadOnlyParameter<moza::as::rudder_type::RDCalibStateGet>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `RD_BrakeButtonMode`.
     * Parameter id: 2040; get command id: -1; set command id: 2062.
     */
    MOZA_DECLARE_GENERATED_PARAM(rdBrakeButtonMode, kRDBrakeButtonModeParameterId, 2040, WriteOnlyParameter<int>);

    /**
     * @brief Get left brake axis nonlinear Y5
     * Repository name: `RDGet_LeftBrakeAxisNonlinearY5`.
     * Command id: 2027.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdRDGetLeftBrakeAxisNonlinearY5, kRDGetLeftBrakeAxisNonlinearY5CommandId, 2027, Command<NoPayload, float>);

};

class MotorGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_MOTOR;

    // This device type currently has no generated parameter accessors.

};

class StickGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_STICK;

    /**
     * @brief Get data
     * Repository name: `Stick_Data`.
     * Parameter id: 4000; get command id: 4000; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(data, kDataParameterId, 4000, ReadOnlyParameter<moza::as::stick_type::DataGet>);

    /**
     * @brief (No valid value returned) Get StickId identifier
     * Repository name: `Stick_StickId`.
     * Parameter id: 4001; get command id: 4001; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(stickId, kStickIdParameterId, 4001, ReadOnlyParameter<int>);

    /**
     * @brief Get axis travel
     * Repository name: `Stick_AxisTravel`.
     * Parameter id: 4002; get command id: 4002; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(axisTravel, kAxisTravelParameterId, 4002, ReadOnlyParameter<moza::as::stick_type::AxisTravelGet>);

    /**
     * @brief Set and get POV hat display mode
     * Repository name: `Stick_PovHatMode`.
     * Parameter id: 4010; get command id: 4011; set command id: 4012.
     */
    MOZA_DECLARE_GENERATED_PARAM(povHatMode, kPovHatModeParameterId, 4010, Parameter<int>);

    /**
     * @brief Set and get LED brightness
     * Repository name: `Stick_LedBrightness`.
     * Parameter id: 4011; get command id: 4013; set command id: 4014.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledBrightness, kLedBrightnessParameterId, 4011, Parameter<std::uint8_t>);

    /**
     * @brief Set and get LED color
     * Repository name: `Stick_LedColor`.
     * Parameter id: 4012; get command id: 4015; set command id: 4016.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledColor, kLedColorParameterId, 4012, Parameter<moza::as::stick_type::LedColorValue>);

    /**
     * @brief Set and get LED mode
     * Repository name: `Stick_LedMode`.
     * Parameter id: 4013; get command id: 4017; set command id: 4018.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledMode, kLedModeParameterId, 4013, Parameter<int>);

    /**
     * @brief Set and get current left joystick mode
     * Repository name: `Stick_LeftJoystickCurMode`.
     * Parameter id: 4014; get command id: 4019; set command id: 4020.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftJoystickCurMode, kLeftJoystickCurModeParameterId, 4014, Parameter<int>);

    /**
     * @brief Set and get current right joystick mode
     * Repository name: `Stick_RightJoystickCurMode`.
     * Parameter id: 4015; get command id: 4021; set command id: 4022.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightJoystickCurMode, kRightJoystickCurModeParameterId, 4015, Parameter<int>);

    /**
     * @brief Set and get left joystick mode 1
     * Repository name: `Stick_LeftJoystickMode1`.
     * Parameter id: 4016; get command id: 4023; set command id: 4024.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftJoystickMode1, kLeftJoystickMode1ParameterId, 4016, Parameter<int>);

    /**
     * @brief Set and get left joystick mode 2
     * Repository name: `Stick_LeftJoystickMode2`.
     * Parameter id: 4017; get command id: 4025; set command id: 4026.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftJoystickMode2, kLeftJoystickMode2ParameterId, 4017, Parameter<int>);

    /**
     * @brief Set and get right joystick mode 1
     * Repository name: `Stick_RightJoystickMode1`.
     * Parameter id: 4018; get command id: 4027; set command id: 4028.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightJoystickMode1, kRightJoystickMode1ParameterId, 4018, Parameter<int>);

    /**
     * @brief Set and get right joystick mode 2
     * Repository name: `Stick_RightJoystickMode2`.
     * Parameter id: 4019; get command id: 4029; set command id: 4030.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightJoystickMode2, kRightJoystickMode2ParameterId, 4019, Parameter<int>);

    /**
     * @brief Set and get trigger axis mode
     * Repository name: `Stick_HallTriggerAxisMode`.
     * Parameter id: 4020; get command id: 4031; set command id: 4032.
     */
    MOZA_DECLARE_GENERATED_PARAM(hallTriggerAxisMode, kHallTriggerAxisModeParameterId, 4020, Parameter<int>);

    /**
     * @brief Set and get left trigger axis/button mapping mode
     * Repository name: `Stick_LeftTriggerButtonMode`.
     * Parameter id: 4021; get command id: 4033; set command id: 4034.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftTriggerButtonMode, kLeftTriggerButtonModeParameterId, 4021, Parameter<int>);

    /**
     * @brief Set and get right trigger axis/button mapping mode
     * Repository name: `Stick_RightTriggerButtonMode`.
     * Parameter id: 4022; get command id: 4035; set command id: 4036.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightTriggerButtonMode, kRightTriggerButtonModeParameterId, 4022, Parameter<int>);

    /**
     * @brief Set and get five-way switch mode
     * Repository name: `Stick_FiveWaySwitchMode`.
     * Parameter id: 4023; get command id: 4037; set command id: 4038.
     */
    MOZA_DECLARE_GENERATED_PARAM(fiveWaySwitchMode, kFiveWaySwitchModeParameterId, 4023, Parameter<int>);

    /**
     * @brief Set and get left joystick center-press function
     * Repository name: `Stick_LeftJoystickPushMode`.
     * Parameter id: 4024; get command id: 4039; set command id: 4040.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftJoystickPushMode, kLeftJoystickPushModeParameterId, 4024, Parameter<int>);

    /**
     * @brief Set and get right joystick center-press function
     * Repository name: `Stick_RightJoystickPushMode`.
     * Parameter id: 4025; get command id: 4041; set command id: 4042.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightJoystickPushMode, kRightJoystickPushModeParameterId, 4025, Parameter<int>);

    /**
     * @brief Set and get joystick output square mapping enable
     * Repository name: `Stick_EnableSquareMapping`.
     * Parameter id: 4026; get command id: 4043; set command id: 4044.
     */
    MOZA_DECLARE_GENERATED_PARAM(enableSquareMapping, kEnableSquareMappingParameterId, 4026, Parameter<int>);

    /**
     * @brief Set and get J03 light brightness_status light
     * Repository name: `Stick_J03_LedBrightness_Status`.
     * Parameter id: 4027; get command id: 4045; set command id: 4046.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedBrightnessStatus, kJ03LedBrightnessStatusParameterId, 4027, Parameter<std::uint8_t>);

    /**
     * @brief Set and get J03 LED color_status light
     * Repository name: `Stick_J03_LedColor_Status`.
     * Parameter id: 4028; get command id: 4047; set command id: 4048.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedColorStatus, kJ03LedColorStatusParameterId, 4028, Parameter<moza::as::stick_type::J03LedColorStatusValue>);

    /**
     * @brief Set and get J03 LED mode_status light
     * Repository name: `Stick_J03_LedMode_Status`.
     * Parameter id: 4029; get command id: 4049; set command id: 4050.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedModeStatus, kJ03LedModeStatusParameterId, 4029, Parameter<int>);

    /**
     * @brief Set and get J03 LED operation mode_status light
     * Repository name: `Stick_J03_LedOperateMode_Status`.
     * Parameter id: 4030; get command id: 4051; set command id: 4052.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedOperateModeStatus, kJ03LedOperateModeStatusParameterId, 4030, Parameter<int>);

    /**
     * @brief Set and get J03 device and telemetry mode_status light
     * Repository name: `Stick_J03_LedDeviceBrightness_Status`.
     * Parameter id: 4031; get command id: 4087; set command id: 4054.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedDeviceBrightnessStatus, kJ03LedDeviceBrightnessStatusParameterId, 4031, Parameter<std::uint8_t>);

    /**
     * @brief Set and get Xbox compatibility mode
     * Repository name: `Stick_CompatibleMode`.
     * Parameter id: 4038; get command id: 4069; set command id: 4070.
     */
    MOZA_DECLARE_GENERATED_PARAM(compatibleMode, kCompatibleModeParameterId, 4038, Parameter<int>);

    /**
     * @brief Set and get Xbox operating mode and parameters
     * Repository name: `Stick_XboxWorkMode`.
     * Parameter id: 4039; get command id: 4071; set command id: 4072.
     */
    MOZA_DECLARE_GENERATED_PARAM(xboxWorkMode, kXboxWorkModeParameterId, 4039, Parameter<moza::as::stick_type::XboxWorkModeValue>);

    /**
     * @brief Set axis 0 caliber
     * Repository name: `Stick_Axis0Calib`.
     * Parameter id: 4040; get command id: -1; set command id: 4073.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis0Calib, kAxis0CalibParameterId, 4040, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 0 caliber
     * Repository name: `Stick_Axis0Calib`.
     * Parameter id: 4041; get command id: -1; set command id: 4073.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis0CalibId4041, kAxis0CalibParameterIdId4041, 4041, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 1 caliber
     * Repository name: `Stick_Axis1Calib`.
     * Parameter id: 4042; get command id: -1; set command id: 4074.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis1Calib, kAxis1CalibParameterId, 4042, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 2 caliber
     * Repository name: `Stick_Axis2Calib`.
     * Parameter id: 4043; get command id: -1; set command id: 4075.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis2Calib, kAxis2CalibParameterId, 4043, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 3 caliber
     * Repository name: `Stick_Axis3Calib`.
     * Parameter id: 4044; get command id: -1; set command id: 4076.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis3Calib, kAxis3CalibParameterId, 4044, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 4 caliber
     * Repository name: `Stick_Axis4Calib`.
     * Parameter id: 4045; get command id: -1; set command id: 4077.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis4Calib, kAxis4CalibParameterId, 4045, WriteOnlyParameter<int>);

    /**
     * @brief Set axis 5 caliber
     * Repository name: `Stick_Axis5Calib`.
     * Parameter id: 4046; get command id: -1; set command id: 4078.
     */
    MOZA_DECLARE_GENERATED_PARAM(axis5Calib, kAxis5CalibParameterId, 4046, WriteOnlyParameter<int>);

    /**
     * @brief Set and get J03 light brightness_button light
     * Repository name: `Stick_J03_LedBrightness_Button`.
     * Parameter id: 4047; get command id: 4079; set command id: 4080.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedBrightnessButton, kJ03LedBrightnessButtonParameterId, 4047, Parameter<std::uint8_t>);

    /**
     * @brief Set and get J03 LED color_button light
     * Repository name: `Stick_J03_LedColor_Button`.
     * Parameter id: 4048; get command id: 4081; set command id: 4082.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedColorButton, kJ03LedColorButtonParameterId, 4048, Parameter<moza::as::stick_type::J03LedColorButtonValue>);

    /**
     * @brief Set and get J03 LED mode_button light
     * Repository name: `Stick_J03_LedMode_Button`.
     * Parameter id: 4059; get command id: 4083; set command id: 4084.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedModeButton, kJ03LedModeButtonParameterId, 4059, Parameter<int>);

    /**
     * @brief Set and get J03 LED operation mode_button light
     * Repository name: `Stick_J03_LedOperateMode_Button`.
     * Parameter id: 4060; get command id: 4085; set command id: 4086.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedOperateModeButton, kJ03LedOperateModeButtonParameterId, 4060, Parameter<int>);

    /**
     * @brief Set and get J03 device and telemetry mode_button light
     * Repository name: `Stick_J03_LedDeviceBrightness_Button`.
     * Parameter id: 4061; get command id: 4089; set command id: 4088.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03LedDeviceBrightnessButton, kJ03LedDeviceBrightnessButtonParameterId, 4061, Parameter<std::uint8_t>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `Stick_J03_Axis_Enable`.
     * Parameter id: 4100; get command id: -1; set command id: 4090.
     */
    MOZA_DECLARE_GENERATED_PARAM(j03AxisEnable, kJ03AxisEnableParameterId, 4100, WriteOnlyParameter<moza::as::stick_type::J03AxisEnableSet>);

};

class ThrottlePanelGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_THROTTLE_PANEL;

    /**
     * @brief Get data
     * Repository name: `TP_Data`.
     * Parameter id: 5000; get command id: 5000; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpData, kTPDataParameterId, 5000, ReadOnlyParameter<moza::as::throttlePanel_type::TPDataGet>);

    /**
     * @brief Get left Hall calibration result
     * Repository name: `TP_LeftHallCalibRes`.
     * Parameter id: 5002; get command id: 5002; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpLeftHallCalibRes, kTPLeftHallCalibResParameterId, 5002, ReadOnlyParameter<moza::as::throttlePanel_type::TPLeftHallCalibResGet>);

    /**
     * @brief Get right Hall calibration result
     * Repository name: `TP_RightHallCalibRes`.
     * Parameter id: 5003; get command id: 5003; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpRightHallCalibRes, kTPRightHallCalibResParameterId, 5003, ReadOnlyParameter<moza::as::throttlePanel_type::TPRightHallCalibResGet>);

    /**
     * @brief Set and get backlight brightness (manual/device)
     * Repository name: `TP_BackLightBrightness`.
     * Parameter id: 5004; get command id: 5004; set command id: 5005.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpBackLightBrightness, kTPBackLightBrightnessParameterId, 5004, Parameter<std::uint8_t>);

    /**
     * @brief Set and get telemetry-set backlight brightness
     * Repository name: `TP_BackLightBrightnessTelemetry`.
     * Parameter id: 5005; get command id: 5006; set command id: 5007.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpBackLightBrightnessTelemetry, kTPBackLightBrightnessTelemetryParameterId, 5005, Parameter<std::uint8_t>);

    /**
     * @brief Set and get selected communication port
     * Repository name: `TP_SerialPort`.
     * Parameter id: 5006; get command id: 5008; set command id: 5009.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpSerialPort, kTPSerialPortParameterId, 5006, Parameter<std::uint8_t>);

    /**
     * @brief Set and get landing gear light status
     * Repository name: `TP_FpLed`.
     * Parameter id: 5007; get command id: 5010; set command id: 5011.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpFpLed, kTPFpLedParameterId, 5007, Parameter<int>);

    /**
     * @brief Set and get lighting mode
     * Repository name: `TP_LedMode`.
     * Parameter id: 5008; get command id: 5012; set command id: 5013.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpLedMode, kTPLedModeParameterId, 5008, Parameter<int>);

    /**
     * @brief Set left Hall calibration
     * Repository name: `TP_LeftHallCalib`.
     * Parameter id: 5009; get command id: -1; set command id: 5014.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpLeftHallCalib, kTPLeftHallCalibParameterId, 5009, WriteOnlyParameter<int>);

    /**
     * @brief Set right Hall calibration
     * Repository name: `TP_RightHallCalib`.
     * Parameter id: 5010; get command id: -1; set command id: 5015.
     */
    MOZA_DECLARE_GENERATED_PARAM(tpRightHallCalib, kTPRightHallCalibParameterId, 5010, WriteOnlyParameter<int>);

};

class AccessoryGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_OTHER;

    /**
     * @brief Get data
     * Repository name: `Other_Data`.
     * Parameter id: 6000; get command id: 6000; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(data, kDataParameterId, 6000, ReadOnlyParameter<moza::as::accessory_type::DataGet>);

    /**
     * @brief Set and get lighting group brightness
     * Repository name: `Other_LedBrightness`.
     * Parameter id: 6002; get command id: 6002; set command id: 6003.
     */
    MOZA_DECLARE_GENERATED_PARAM(ledBrightness, kLedBrightnessParameterId, 6002, Parameter<moza::as::accessory_type::LedBrightnessValue>);

    /**
     * @brief Set and get segment display brightness
     * Repository name: `Other_SegBrightness`.
     * Parameter id: 6003; get command id: 6004; set command id: 6005.
     */
    MOZA_DECLARE_GENERATED_PARAM(segBrightness, kSegBrightnessParameterId, 6003, Parameter<std::uint8_t>);

    /**
     * @brief Set and get segment display digit display
     * Repository name: `Other_SegNum`.
     * Parameter id: 6004; get command id: 6006; set command id: 6007.
     */
    MOZA_DECLARE_GENERATED_PARAM(segNum, kSegNumParameterId, 6004, Parameter<moza::as::accessory_type::SegNumValue>);

    /**
     * @brief Set and get segment display character/symbol display
     * Repository name: `Other_SegStr`.
     * Parameter id: 6005; get command id: 6006; set command id: 6009.
     */
    MOZA_DECLARE_GENERATED_PARAM(segStr, kSegStrParameterId, 6005, Parameter<moza::as::accessory_type::SegStr::Get, moza::as::accessory_type::SegStr::Set>);

    /**
     * @brief Set and get overall segment display settings
     * Repository name: `Other_SegAll`.
     * Parameter id: 6006; get command id: 6010; set command id: 6011.
     */
    MOZA_DECLARE_GENERATED_PARAM(segAll, kSegAllParameterId, 6006, Parameter<int>);

    /**
     * @brief Set left Hall calibration
     * Repository name: `Other_LeftHallCalib`.
     * Parameter id: 6011; get command id: -1; set command id: 6016.
     */
    MOZA_DECLARE_GENERATED_PARAM(leftHallCalib, kLeftHallCalibParameterId, 6011, WriteOnlyParameter<int>);

    /**
     * @brief Set right Hall calibration
     * Repository name: `Other_RightHallCalib`.
     * Parameter id: 6012; get command id: -1; set command id: 6017.
     */
    MOZA_DECLARE_GENERATED_PARAM(rightHallCalib, kRightHallCalibParameterId, 6012, WriteOnlyParameter<int>);

    /**
     * @brief Get segment display character/symbol display
     * Repository name: `OtherGet_SegStr`.
     * Command id: 6008.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdOtherGetSegStr, kOtherGetSegStrCommandId, 6008, Command<NoPayload, moza::as::accessory_type::OtherGetSegStrResponse>);

};

class ForceFeedbackThrottleGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_FORCE_FEEDBACK_THROTTLE;

    // This device type currently has no generated parameter accessors.

};

class ControlPanelGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_CONTROL_PANEL;

    /**
     * @brief Set and get lighting operating mode_all lighting groups
     * Repository name: `CD_IndicatorWorkMode_All`.
     * Parameter id: 8000; get command id: 8000; set command id: 8001.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatorWorkModeAll, kCDIndicatorWorkModeAllParameterId, 8000, Parameter<int>);

    /**
     * @brief Set and get adjustable lighting range_all lighting groups
     * Repository name: `CD_IndicatotBrightnessRange_All`.
     * Parameter id: 8001; get command id: 8002; set command id: 8003.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatotBrightnessRangeAll, kCDIndicatotBrightnessRangeAllParameterId, 8001, Parameter<std::uint8_t>);

    /**
     * @brief Set and get knob hold time
     * Repository name: `CD_EncoderHoldTime`.
     * Parameter id: 8004; get command id: 8007; set command id: 8006.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdEncoderHoldTime, kCDEncoderHoldTimeParameterId, 8004, Parameter<std::uint8_t>);

    /**
     * @brief Set segment display 1
     * Repository name: `CD_CodeScreen1`.
     * Parameter id: 8005; get command id: -1; set command id: 8008.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdCodeScreen1, kCDCodeScreen1ParameterId, 8005, WriteOnlyParameter<moza::as::controlPanel_type::CDCodeScreen1Set>);

    /**
     * @brief Set segment display 2
     * Repository name: `CD_CodeScreen2`.
     * Parameter id: 8006; get command id: -1; set command id: 8009.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdCodeScreen2, kCDCodeScreen2ParameterId, 8006, WriteOnlyParameter<moza::as::controlPanel_type::CDCodeScreen2Set>);

    /**
     * @brief Axis 0 calibration
     * T22: photoresistor 0
     * T20 FPP: game controller X axis
     * T20 MCD: game controller RX axis
     * Repository name: `CD_Axis0Calib`.
     * Parameter id: 8007; get command id: -1; set command id: 8010.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis0Calib, kCDAxis0CalibParameterId, 8007, WriteOnlyParameter<int>);

    /**
     * @brief Axis 1 calibration
     * T22: photoresistor 1
     * T20 FPP: game controller Y axis
     * Repository name: `CD_Axis1Calib`.
     * Parameter id: 8008; get command id: -1; set command id: 8011.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis1Calib, kCDAxis1CalibParameterId, 8008, WriteOnlyParameter<int>);

    /**
     * @brief Set and get operating mode
     * Repository name: `CD_WorkingMode`.
     * Parameter id: 8009; get command id: 8012; set command id: 8013.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdWorkingMode, kCDWorkingModeParameterId, 8009, Parameter<int>);

    /**
     * @brief Set and get brightness used by telemetry mode/device mode_all lighting groups
     * Repository name: `CD_Telemetry_Device_Brightness_All`.
     * Parameter id: 8010; get command id: 8014; set command id: 8015.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdTelemetryDeviceBrightnessAll, kCDTelemetryDeviceBrightnessAllParameterId, 8010, Parameter<std::uint8_t>);

    /**
     * @brief Get each configured value of the segment display
     * Repository name: `CD_ExtCodeChange`.
     * Parameter id: 8012; get command id: 8027; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdExtCodeChange, kCDExtCodeChangeParameterId, 8012, ReadOnlyParameter<moza::as::controlPanel_type::CDExtCodeChangeGet>);

    /**
     * @brief Set T21_FCU segment display
     * Repository name: `CD_CodeScreen3`.
     * Parameter id: 8016; get command id: -1; set command id: 8024.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdCodeScreen3, kCDCodeScreen3ParameterId, 8016, WriteOnlyParameter<moza::as::controlPanel_type::CDCodeScreen3Set>);

    /**
     * @brief Set T21_LIS/RIS segment display
     * Repository name: `CD_CodeScreen4`.
     * Parameter id: 8017; get command id: -1; set command id: 8024.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdCodeScreen4, kCDCodeScreen4ParameterId, 8017, WriteOnlyParameter<moza::as::controlPanel_type::CDCodeScreen4Set>);

    /**
     * @brief Get T20_DDI game data
     * Repository name: `CD_T20_DDIDate`.
     * Parameter id: 8018; get command id: 8050; set command id: -1.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdT20DDIDate, kCDT20DDIDateParameterId, 8018, ReadOnlyParameter<std::uint64_t>);

    /**
     * @brief Set photoresistor switch
     * Repository name: `CD_EnableLightSensor`.
     * Parameter id: 8060; get command id: -1; set command id: 8060.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdEnableLightSensor, kCDEnableLightSensorParameterId, 8060, WriteOnlyParameter<int>);

    /**
     * @brief Set left/right cockpit selection
     * Repository name: `CD_CockPitSide`.
     * Parameter id: 8061; get command id: -1; set command id: 8061.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdCockPitSide, kCDCockPitSideParameterId, 8061, WriteOnlyParameter<int>);

    /**
     * @brief Set kneeboard switch
     * Repository name: `CD_EnableNote`.
     * Parameter id: 8062; get command id: -1; set command id: 8062.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdEnableNote, kCDEnableNoteParameterId, 8062, WriteOnlyParameter<int>);

    /**
     * @brief Set checklist switch
     * Repository name: `CD_EnableChecklist`.
     * Parameter id: 8063; get command id: -1; set command id: 8063.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdEnableChecklist, kCDEnableChecklistParameterId, 8063, WriteOnlyParameter<int>);

    /**
     * @brief Set and get lighting operating mode_lighting group 1
     * Repository name: `CD_IndicatorWorkMode_Strip1`.
     * Parameter id: 8100; get command id: 8100; set command id: 8101.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatorWorkModeStrip1, kCDIndicatorWorkModeStrip1ParameterId, 8100, Parameter<int>);

    /**
     * @brief Set and get lighting operating mode_lighting group 2
     * Repository name: `CD_IndicatorWorkMode_Strip2`.
     * Parameter id: 8101; get command id: 8102; set command id: 8103.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatorWorkModeStrip2, kCDIndicatorWorkModeStrip2ParameterId, 8101, Parameter<int>);

    /**
     * @brief Set and get lighting operating mode_lighting group 3
     * Repository name: `CD_IndicatorWorkMode_Strip3`.
     * Parameter id: 8102; get command id: 8104; set command id: 8105.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatorWorkModeStrip3, kCDIndicatorWorkModeStrip3ParameterId, 8102, Parameter<int>);

    /**
     * @brief Set and get adjustable lighting range_lighting group 1
     * Repository name: `CD_IndicatotBrightnessRange_Strip1`.
     * Parameter id: 8103; get command id: 8106; set command id: 8107.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatotBrightnessRangeStrip1, kCDIndicatotBrightnessRangeStrip1ParameterId, 8103, Parameter<std::uint8_t>);

    /**
     * @brief Set and get adjustable lighting range_lighting group 2
     * Repository name: `CD_IndicatotBrightnessRange_Strip2`.
     * Parameter id: 8104; get command id: 8108; set command id: 8109.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatotBrightnessRangeStrip2, kCDIndicatotBrightnessRangeStrip2ParameterId, 8104, Parameter<std::uint8_t>);

    /**
     * @brief Set and get adjustable lighting range_lighting group 3
     * Repository name: `CD_IndicatotBrightnessRange_Strip3`.
     * Parameter id: 8105; get command id: 8110; set command id: 8111.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdIndicatotBrightnessRangeStrip3, kCDIndicatotBrightnessRangeStrip3ParameterId, 8105, Parameter<std::uint8_t>);

    /**
     * @brief Set and get brightness used by telemetry mode/device mode_lighting group 1
     * Repository name: `CD_Telemetry_Device_Brightness_Strip1`.
     * Parameter id: 8106; get command id: 8112; set command id: 8113.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdTelemetryDeviceBrightnessStrip1, kCDTelemetryDeviceBrightnessStrip1ParameterId, 8106, Parameter<std::uint8_t>);

    /**
     * @brief Set and get brightness used by telemetry mode/device mode_lighting group 2
     * Repository name: `CD_Telemetry_Device_Brightness_Strip2`.
     * Parameter id: 8107; get command id: 8114; set command id: 8115.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdTelemetryDeviceBrightnessStrip2, kCDTelemetryDeviceBrightnessStrip2ParameterId, 8107, Parameter<std::uint8_t>);

    /**
     * @brief Set and get brightness used by telemetry mode/device mode_lighting group 3
     * Repository name: `CD_Telemetry_Device_Brightness_Strip3`.
     * Parameter id: 8108; get command id: 8116; set command id: 8117.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdTelemetryDeviceBrightnessStrip3, kCDTelemetryDeviceBrightnessStrip3ParameterId, 8108, Parameter<std::uint8_t>);

    /**
     * @brief Axis 2 calibration
     * T20 FPP: game controller Z axis
     * Repository name: `CD_Axis2Calib`.
     * Parameter id: 8201; get command id: -1; set command id: 8201.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis2Calib, kCDAxis2CalibParameterId, 8201, WriteOnlyParameter<int>);

    /**
     * @brief Axis 3 calibration
     * T20 FPP: game controller RX axis
     * Repository name: `CD_Axis3Calib`.
     * Parameter id: 8202; get command id: -1; set command id: 8202.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis3Calib, kCDAxis3CalibParameterId, 8202, WriteOnlyParameter<int>);

    /**
     * @brief Axis 4 calibration
     * T20 FPP: game controller RY axis
     * Repository name: `CD_Axis4Calib`.
     * Parameter id: 8203; get command id: -1; set command id: 8203.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis4Calib, kCDAxis4CalibParameterId, 8203, WriteOnlyParameter<int>);

    /**
     * @brief Axis 5 calibration
     * T20 FPP: game controller RZ axis
     * Repository name: `CD_Axis5Calib`.
     * Parameter id: 8204; get command id: -1; set command id: 8204.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis5Calib, kCDAxis5CalibParameterId, 8204, WriteOnlyParameter<int>);

    /**
     * @brief Axis 6 calibration
     * T20 FPP: game controller slider
     * Repository name: `CD_Axis6Calib`.
     * Parameter id: 8205; get command id: -1; set command id: 8205.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdAxis6Calib, kCDAxis6CalibParameterId, 8205, WriteOnlyParameter<int>);

    /**
     * @brief Axis 6 calibration
     * T20 FPP: all-axis calibration
     * T20 MCD: all-axis calibration
     * Repository name: `CD_ALLAxisCalib`.
     * Parameter id: 8206; get command id: -1; set command id: 8206.
     */
    MOZA_DECLARE_GENERATED_PARAM(cdALLAxisCalib, kCDALLAxisCalibParameterId, 8206, WriteOnlyParameter<int>);

    /**
     * @brief EFIS extended function switch
     * Repository name: `CD_ExtEnable`.
     * Command id: 8018.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDExtEnable, kCDExtEnableCommandId, 8018, Command<int>);

    /**
     * @brief EFIS start changing transponder code
     * Repository name: `CD_ExtCodeChangeStart`.
     * Command id: 8019.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDExtCodeChangeStart, kCDExtCodeChangeStartCommandId, 8019, Command<moza::as::controlPanel_type::CDExtCodeChangeStartRequest>);

    /**
     * @brief T21_LIS/RIS segment display:
     * content[0~3]: digit values (represented by ASCII codes)
     * content[4]: icons; each bit indicates the on/off state of one icon
     * Repository name: `CD_CtrlCodeScreen4`.
     * Command id: 8025.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDCtrlCodeScreen4, kCDCtrlCodeScreen4CommandId, 8025, Command<moza::as::controlPanel_type::CDCtrlCodeScreen4Request>);

    /**
     * @brief Number of times the EFIS segment display has been changed, used to locate the digit display that needs to be changed
     * Repository name: `CD_ExtCodeChangeTime`.
     * Command id: 8026.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDExtCodeChangeTime, kCDExtCodeChangeTimeCommandId, 8026, Command<int>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `CD_HallAxisCalibStart`.
     * Command id: 8028.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDHallAxisCalibStart, kCDHallAxisCalibStartCommandId, 8028, Command<int>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `CD_HallAxisCalibEnd`.
     * Command id: 8029.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDHallAxisCalibEnd, kCDHallAxisCalibEndCommandId, 8029, Command<int>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `CD_HallAxisCalibMid`.
     * Command id: 8030.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDHallAxisCalibMid, kCDHallAxisCalibMidCommandId, 8030, Command<int>);

    /**
     * @brief Typed parameter accessor.
     * Repository name: `CD_GetShiftRegStatus`.
     * Command id: 8031.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDGetShiftRegStatus, kCDGetShiftRegStatusCommandId, 8031, Command<NoPayload, moza::as::controlPanel_type::CDGetShiftRegStatusResponse>);

    /**
     * @brief Set individual status light switch
     * Repository name: `CD_LedEnable`.
     * Command id: 8064.
     */
    MOZA_DECLARE_GENERATED_CMD(cmdCDLedEnable, kCDLedEnableCommandId, 8064, Command<moza::as::controlPanel_type::CDLedEnableRequest>);

};

class ScreenGeneratedBase : public AsDeviceGeneratedBase
{
public:
    using AsDeviceGeneratedBase::AsDeviceGeneratedBase;
    static constexpr int deviceType = MOZA_DT_AS_SCREEN;

    // This device type currently has no generated parameter accessors.

};

} // namespace internal

} // namespace moza::as

namespace moza::internal {

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::PanelRawDataGet,
        fn(value.buttonRegData);
        fn(value.knobRaw);
        fn(value.hallSwitchRaw);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LedRgbDataALLValue,
        fn(value.ledIndex1);
        fn(value.led);
        fn(value.led1);
        fn(value.led2);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::AxisCalibrateSet,
        fn(value.enum0);
        fn(value.enum1);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::SoftwareAutoTrimCompenPosXSet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::SoftwareAutoTrimCompenPosYSet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::SoftwareAutoPilotCompenPosXSet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::SoftwareAutoPilotCompenPosYSet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::DirectInputSpringEffectCpOffsetGet,
        fn(value.cpoffsetX);
        fn(value.cpoffsetY);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorGet,
        fn(value.selector);
        fn(value.reserved);
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorSet,
        fn(value.uint);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorGet,
        fn(value.selector);
        fn(value.reserved);
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorSet,
        fn(value.uint);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorAllSet,
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorGroup1Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorGroup2Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbColorGroup3Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorAllSet,
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorGroup1Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorGroup2Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::LightRgbTelemetryColorGroup3Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveAileronPositiveBackValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveAileronPositiveValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveAileronBackValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveElevatorPositiveBackValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveElevatorBackValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::VariablePointCurveElevatorPositiveValue,
        fn(value.pointCount);
        fn(value.x0);
        fn(value.y0);
        fn(value.x1);
        fn(value.y1);
        fn(value.x2);
        fn(value.y2);
        fn(value.x3);
        fn(value.y3);
        fn(value.x4);
        fn(value.y4);
        fn(value.x5);
        fn(value.y5);
        fn(value.x6);
        fn(value.y6);
        fn(value.x7);
        fn(value.y7);
        fn(value.x8);
        fn(value.y8);
        fn(value.x9);
        fn(value.y9);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisXPosXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisXNegXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisYPosXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisYNegXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisZPosXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::UsbHidAxisSerialCmdAxisZNegXresetSet,
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetRequest,
        fn(value.axisxPos);
        fn(value.x);
        fn(value.set);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainGetUsbHidAxisSerialCmdGetRequest,
        fn(value.axisxPos);
        fn(value.x);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainSetUsbHidAxisSerialCmdSetResetRequest,
        fn(value.axisxPos);
        fn(value.enum1);
        fn(value.x);
        fn(value.x1);
        fn(value.x2);
        fn(value.x3);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainSetLedRgbDataStrip1Request,
        fn(value.ledIndex);
        fn(value.red);
        fn(value.green);
        fn(value.blue);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainGetLedRgbDataStrip1Response,
        fn(value.ledIndex1);
        fn(value.led);
        fn(value.led1);
        fn(value.led2);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainSetLedRgbDataStrip2Request,
        fn(value.ledIndex);
        fn(value.red);
        fn(value.green);
        fn(value.blue);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainGetLedRgbDataStrip2Response,
        fn(value.ledIndex1);
        fn(value.led);
        fn(value.led1);
        fn(value.led2);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbNewEffectRequest,
        fn(value.type);
        fn(value.index);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbConstantRequestEnableAxis,
        fn(value.field0);
        fn(value.field1);
        fn(value.field2);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbConstantRequest,
        fn(value.effectBlockIndex);
        fn(value.magnitude);
        fn(value.duration);
        fn(value.enableAxis);
        fn(value.directionX);
        fn(value.directionY);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbRampRequest,
        fn(value.effectBlockIndex);
        fn(value.startLevel);
        fn(value.endLevel);
        fn(value.duration);
        fn(value.enableAxis);
        fn(value.directionX);
        fn(value.directionY);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbPeriodicRequest,
        fn(value.effectBlockIndex);
        fn(value.magnitude);
        fn(value.offset);
        fn(value.phase);
        fn(value.period);
        fn(value.duration);
        fn(value.enableAxis);
        fn(value.directionX);
        fn(value.directionY);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbConditionRequest,
        fn(value.effectBlockIndex);
        fn(value.parameterBlockOffset);
        fn(value.centerPointOffset);
        fn(value.positiveCoefficient);
        fn(value.negativeCoefficient);
        fn(value.positiveSaturation);
        fn(value.negativeSaturation);
        fn(value.deadBand);
        fn(value.duration);
        fn(value.enableAxis);
        fn(value.directionX);
        fn(value.directionY);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbEnvelopeRequest,
        fn(value.effectBlockIndex);
        fn(value.attackLevel);
        fn(value.fadeLevel);
        fn(value.attackTim);
        fn(value.fadeTime);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlFfbEffectOperationRequest,
        fn(value.effectBlockIndex);
        fn(value.operation);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlGearLedTelemetryRequest,
        fn(value.gearLight);
        fn(value.brightness);
        fn(value.color);
)

MOZA_DECLARE_REFLECT(moza::as::wheelbase_type::MainCtrlLedTelemetryDataRequest,
        fn(value.gearLight);
        fn(value.telemetrydata);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THEncoderDetectResultGet,
        fn(value.x);
        fn(value.y);
        fn(value.rx);
        fn(value.ry);
        fn(value.rz);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THRocketGet,
        fn(value.x);
        fn(value.y);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisCalibResultGet,
        fn(value.uint0);
        fn(value.enum1);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THLampColorALLSet,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisCalibStateGetStatus,
        fn(value.field0);
        fn(value.field1);
        fn(value.field2);
        fn(value.field3);
        fn(value.field4);
        fn(value.field5);
        fn(value.field6);
        fn(value.field7);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisCalibStateGet,
        fn(value.status);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisCalibStateSetBitset0,
        fn(value.field0);
        fn(value.field1);
        fn(value.field2);
        fn(value.field3);
        fn(value.field4);
        fn(value.field5);
        fn(value.field6);
        fn(value.field7);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisCalibStateSet,
        fn(value.bitset0);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THMotorSet,
        fn(value.uint0);
        fn(value.ms);
        fn(value.enum2);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THAxisNonlinearParamCfgSet,
        fn(value.rx);
        fn(value.param);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THLampColorStrip1Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::throttle_type::THLampColorStrip2Value,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::rudder_type::RDDataGet,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.contentIndexContentContentCrc);
)

MOZA_DECLARE_REFLECT(moza::as::rudder_type::RDRawDataGet,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.contentIndexContentContentCrc);
)

MOZA_DECLARE_REFLECT(moza::as::rudder_type::RDCalibStateGet,
        fn(value.leftBrake);
        fn(value.rightBrake);
        fn(value.yawAxis);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::DataGet,
        fn(value.data);
        fn(value.crc);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::AxisTravelGet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::LedColorValue,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::J03LedColorStatusValue,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::XboxWorkModeValue,
        fn(value.mode);
        fn(value.mode1);
        fn(value.mode2);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::J03LedColorButtonValue,
        fn(value.r);
        fn(value.g);
        fn(value.b);
)

MOZA_DECLARE_REFLECT(moza::as::stick_type::J03AxisEnableSet,
        fn(value.axis);
        fn(value.enable);
)

MOZA_DECLARE_REFLECT(moza::as::throttlePanel_type::TPDataGet,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
)

MOZA_DECLARE_REFLECT(moza::as::throttlePanel_type::TPLeftHallCalibResGet,
        fn(value.result);
        fn(value.min);
        fn(value.max);
)

MOZA_DECLARE_REFLECT(moza::as::throttlePanel_type::TPRightHallCalibResGet,
        fn(value.result);
        fn(value.min);
        fn(value.max);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::DataGet,
        fn(value.uint0);
        fn(value.contentIndexCrc);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::LedBrightnessValue,
        fn(value.led);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::SegNumValue,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::SegStrGet,
        fn(value.uint0);
        fn(value.uint1);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::SegStrSet,
        fn(value.uint0);
        fn(value.enum1);
)

MOZA_DECLARE_REFLECT(moza::as::accessory_type::OtherGetSegStrResponse,
        fn(value.uint0);
        fn(value.enum1);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDCodeScreen1Set,
        fn(value.ms);
        fn(value.enum1);
        fn(value.uint2);
        fn(value.uint3);
        fn(value.uint4);
        fn(value.uint5);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDCodeScreen2Set,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
        fn(value.uint4);
        fn(value.uint5);
        fn(value.uint6);
        fn(value.uint7);
        fn(value.uint8);
        fn(value.uint9);
        fn(value.uint10);
        fn(value.uint11);
        fn(value.uint12);
        fn(value.uint13);
        fn(value.uint14);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDExtCodeChangeGet,
        fn(value._1stScreen);
        fn(value._2stScreen);
        fn(value._3stScreen);
        fn(value._4stScreen);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDCodeScreen3Set,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
        fn(value.uint4);
        fn(value.uint5);
        fn(value.uint6);
        fn(value.uint7);
        fn(value.uint8);
        fn(value.uint9);
        fn(value.uint10);
        fn(value.uint11);
        fn(value.uint12);
        fn(value.uint13);
        fn(value.uint14);
        fn(value.field15);
        fn(value.field16);
        fn(value.field17);
        fn(value.field18);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDCodeScreen4Set,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
        fn(value.uint4);
        fn(value.uint5);
        fn(value.uint6);
        fn(value.uint7);
        fn(value.uint8);
        fn(value.uint9);
        fn(value.uint10);
        fn(value.uint11);
        fn(value.uint12);
        fn(value.uint13);
        fn(value.uint14);
        fn(value.field15);
        fn(value.field16);
        fn(value.field17);
        fn(value.field18);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDExtCodeChangeStartRequest,
        fn(value.field0);
        fn(value._1stScreen);
        fn(value._2stScreen);
        fn(value._3stScreen);
        fn(value._4stScreen);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDCtrlCodeScreen4Request,
        fn(value.uint0);
        fn(value.uint1);
        fn(value.uint2);
        fn(value.uint3);
        fn(value.uint4);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDGetShiftRegStatusResponse,
        fn(value._1);
        fn(value._2);
        fn(value._3);
)

MOZA_DECLARE_REFLECT(moza::as::controlPanel_type::CDLedEnableRequest,
        fn(value.index);
        fn(value.enable);
)

} // namespace moza::internal
