KiteLog
object KiteLog
The logging policy, as a contract rather than a framework.
KitePlayer never prints on its own. Every line the engine would say goes through this one seam, which is SILENT until an application installs a sink, and becomes silent again when the sink is removed. There are no log levels to configure inside the player, no files, no timestamps and no formatting: the sink gets the tag and the message and owns everything else, because the application, not the library, knows where its logs belong.
The player's own record-keeping does not depend on this: warnings are always kept in the bounded history KitePlayer.warningHistory and printed by KitePlayer.diagnosticsDump, sink or no sink.