Had a quick look at the CarLink apk today and decompiled it.
PlayInfo (carplay/a.java) pushes to CarLinkService.i() to the bus client f590l, which is bound to com.syu.ms (action com.syu.ms.toolkit) = FYT's central media service.
new o.e(this, "com.syu.ms.toolkit", "com.syu.ms") // CarLinkService:6507
i().cmd(module=0, cmd=23, ints{10,subcode}, strings{value}) // PlayInfo
The following info: title/artist/album/cover/duration/position/playState/shuffle/repeat are published to com.syu.ms under module 0 / command 23. com.syu.ms is what the FYT native media UI should read from
For play/pause/next/prev, the bus is bidirectional as carlink already handles steering-wheel/media keys. MediaSession callbacks issue the matching cmd(...) and carlink forwards it to the phone over CarPlay/AA.
The following is available for Android Auto only but not enabled. InstrumentClusterListener + NavigationStatus.NavigationStatusListener expose:
onNextTurn(roadName, turnEnum, turnSide,maneuver-icon bitmap, …) -the turn instruction + icon
onNextTurnDistance(distance, units) - distance to turn (m/km/mi/ft/yd)
onNavigationState(...), onNavigationCurrentPosition(...), onStatus(...)
(bonus, also dormant: media album-art bitmap, and phone status + caller photo)
So it seems like most of the things needed for this to work are built in but either not completed in CarLink or not built into the music widget