def __init__(
        self,
        name: str,
        motor_ft_per_sec: float,
        ticks_per_feet: int,
        max_position: typing.Optional[float] = None,
        min_position: typing.Optional[float] = 0,
    ):
        """
            :param name: Name of motion, shown in pyfrc simulation UI
            :param motor_ft_per_sec: Motor travel in feet per second (or whatever units you want)
            :param ticks_per_feet: Number of encoder ticks per feet
            :param max_position: Maximum position that this motion travels to
            :param min_position: Minimum position that this motion travels to
        """
        self.name = name
        self.motor_ft_per_sec = motor_ft_per_sec
        self.ticks_per_feet = ticks_per_feet
        self.min_position = min_position
        self.max_position = max_position

        hal_data.setdefault("custom", {})[self.name] = 0
def __init__ ( self , name : str , motor_ft_per_sec : float , ticks_per_feet : int , max_position : typing . Optional [ float ] = None , min_position : typing . Optional [ float ] = 0 , ) : self . name = name self . motor_ft_per_sec = motor_ft_per_sec self . ticks_per_feet = ticks_per_feet self . min_position = min_position self . max_position = max_position hal_data . setdefault ( "custom" , { } ) [ self . name ] = 0
:param name: Name of motion, shown in pyfrc simulation UI
            :param motor_ft_per_sec: Motor travel in feet per second (or whatever units you want)
            :param ticks_per_feet: Number of encoder ticks per feet
            :param max_position: Maximum position that this motion travels to
            :param min_position: Minimum position that this motion travels to