Feature/new bus endpoint

#10 Added the new endpoint w/ deserialization tests. Updated the failure on the callback to show a more user friendly message.
I'm just treating it as an invalid position string at this point. I don't know if that's worth bubbling up to the user somewhere...