There are four options for Narrator: None, All, Chat, and System. It's great that the ChatMessageType enum is implemented, so thank you for that!
However, the Narrator's functionality is awkward on Bukkit servers because player chat messages and Player.sendMessage(String) are sent as "System" messages. When using the Spigot().sendMessage(BaseComponent) method on a Player or CommandSender, the default ChatMessageType is ChatMessageType.Chat, thus creating some inconsistency. This is also true on the BungeeCord, where the inconsistency becomes further noticeable when BungeeCord plugin makers just use the CommandSender.sendMessage(BaseComponent) (ChatMessageType.Chat) like they do on Bukkit servers as CommandSender.sendMessage(String) (ChatMessageType.System).
This issue doesn't affect anyone who doesn't use Minecraft's Narrator functionality, but for people who use it, the inconsistencies found in "System" and "Chat" mode is puzzling.
My suggestion is to make the messages consistent, where the default ::sendMessage stays or becomes System and the player chat messages becomes Chat. This implementation should make using Narrator more acceptable on Bukkit/Spigot servers.