Autonomous Dial-a-Ride Transit: Software Functionality and Architecture Overview