async def METHOD_NAME(
    self,
    pipette_id: str,
    deck_coordinates: DeckPoint,
    direct: bool,
    additional_min_travel_z: Optional[float],
    speed: Optional[float] = None,
) -> Point:
    """Move pipette to a given deck coordinate."""
    origin = await self._gantry_mover.get_position(pipette_id=pipette_id)
    max_travel_z = self._gantry_mover.get_max_travel_z(pipette_id=pipette_id)
    # calculate the movement's waypoints
    waypoints = self._state_store.motion.get_movement_waypoints_to_coords(
        origin=origin,
        dest=Point(
            x=deck_coordinates.x, y=deck_coordinates.y, z=deck_coordinates.z
        ),
        max_travel_z=max_travel_z,
        direct=direct,
        additional_min_travel_z=additional_min_travel_z,
    )
    speed = self._state_store.pipettes.get_movement_speed(
        pipette_id=pipette_id, requested_speed=speed
    )
    # move through the waypoints
    final_point = await self._gantry_mover.move_to(
        pipette_id=pipette_id,
        waypoints=waypoints,
        speed=speed,
    )
    return final_point