feat(rust): RunicNPC profiles, their push and adoption, per-profile kills (runicnpc stage 4, WIP)

Schema for site NPC profiles (per server, shared or fleet), the per-server
push record, and kills by profile. The push adopts a server's own profiles
before its first push (D244), keeping one whose name a site profile already
has as replaced (D251). The tally's npcProfileKills are stored per profile
and credited to the site profile pushed under that name (D247).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-30 04:21:46 -05:00
parent b0143801a2
commit 564a234890
12 changed files with 1200 additions and 0 deletions

View File

@@ -105,6 +105,13 @@ const STAFF_KINDS = Object.freeze([
'clan.member.added',
'clan.member.left',
'clan.member.kicked',
// RunicNPC (runicnpc stage 4). `npc.died` names the player who killed it and
// everyone who hurt it, so it is a roll call like `player.tally`: staff until
// an operator says otherwise. What the public sees of a kill is the tally's
// per-profile count on the leaderboard (D250).
'npc.died',
'npc.health',
'npc.placement.changed',
])
/**