Game/IKillSource.cs
/// <summary>
/// Implement on any component that can appear as an attacker in the kill feed.
/// Examples: Player, Npc, explosive barrel, turret, whatever the fuck.
/// </summary>
public interface IKillSource
{
	/// <summary>
	/// Display name
	/// </summary>
	string DisplayName { get; }

	/// <summary>
	/// Steam ID for the local "is-me" highlight. Defaults to 0 (not a player).
	/// </summary>
	long SteamId => default;

	/// <summary>
	/// Entity-type tag passed as <c>attackerTags</c>.
	/// Return an empty string for plain player kills. Examples: "npc"
	/// </summary>
	string Tags => "";

	/// <summary>
	/// Called on the host when this source kills something.
	/// Credit kills, update stats, etc. Default is no-op.
	/// </summary>
	void OnKill( GameObject victim ) { }
}