I am the body of an EventBroker event announcing a change to a BEAM module.
:kind is one of :recompiled, :compile_failed, :source_written. Directly-saved modules carry :source + :functions inline; sibling cascades arrive bare.
:kind
:recompiled
:compile_failed
:source_written
:source
:functions
@type t() :: %GtBridge.Events.ModuleEvent{ errors: list() | nil, functions: [map()] | nil, kind: :recompiled | :compile_failed | :source_written | :source_removed, mod: module() | nil, source: String.t() | nil, source_hash: integer() | nil }