-type message_id() :: dtm | gbq | gbs | gga | gll | glq | gnq | gns | gpq | grs | gsa | gst | gsv | rmc | txt | vlw | vtg | zda | binary().
-type talker_id() :: gps | glonass | galileo | beidou | any | binary().
-spec parse(binary()) -> {ok, {talker_id(), message_id(), map() | binary()}} | {error, term()}.