trait TiltCylinderAxleActuators:
    # Define four axles
    left_tilt_barrel_axle is CAT_D10.Assets.Components.Axle
    left_tilt_rod_axle is CAT_D10.Assets.Components.Axle
    right_tilt_barrel_axle is CAT_D10.Assets.Components.Axle
    right_tilt_rod_axle is CAT_D10.Assets.Components.Axle

    # Create bearings on the push bars
    left_push_bar:
        tilt_bearings is MachineModeling.Components.Composite.BearingPair with MachineModeling.Components.Composite.Traits.BearingsFromConnector:
            separation: 0.28
            body: left_push_bar.body
            connector: left_push_bar.cylinder_connector
    right_push_bar:
        tilt_bearings is MachineModeling.Components.Composite.BearingPair with MachineModeling.Components.Composite.Traits.BearingsFromConnector:
            separation: 0.28
            body: right_push_bar.body
            connector: right_push_bar.cylinder_connector

    blade:
        left_tilt_bearings is MachineModeling.Components.Composite.BearingPair with MachineModeling.Components.Composite.Traits.BearingsFromConnector:
            separation: 0.2
            body: blade.body
            connector: blade.left_upper_connector
        right_tilt_bearings is MachineModeling.Components.Composite.BearingPair with MachineModeling.Components.Composite.Traits.BearingsFromConnector:
            separation: 0.2
            body: blade.body
            connector: blade.right_upper_connector

    blade_connection:

        # Upgrade the cylinders
        left_tilt_actuator becomes MachineModeling.Actuators.Linear.CylinderBearings with CAT_D10.Assets.Components.Traits.TiltCylinderBearings, CAT_D10.Assets.Components.Traits.VelocityMotor
        right_tilt_actuator becomes MachineModeling.Actuators.Linear.CylinderBearings with CAT_D10.Assets.Components.Traits.TiltCylinderBearings, CAT_D10.Assets.Components.Traits.VelocityMotor

        left_tilt_connection becomes MachineModeling.Actuators.Linear.Connections.CylinderAxleBearings:
            barrel_axle: left_tilt_barrel_axle
            rod_axle: left_tilt_rod_axle
            from_bearings: left_push_bar.tilt_bearings
            to_bearings: blade.left_tilt_bearings
            actuator: blade_connection.left_tilt_actuator
            # cylinder_group.systems: [blade, chassis, blade_connection.left_tilt_actuator]
            # cylinder_group.bodies: [left_tilt_barrel_axle.body, left_tilt_rod_axle.body]

        right_tilt_connection becomes MachineModeling.Actuators.Linear.Connections.CylinderAxleBearings:
            barrel_axle: right_tilt_barrel_axle
            rod_axle: right_tilt_rod_axle
            from_bearings: right_push_bar.tilt_bearings
            to_bearings: blade.right_tilt_bearings
            actuator: blade_connection.right_tilt_actuator
