// NPC agenda keyword hints shown on cards (top 4 per role) const AGENDA_HINTS = { 'CTO': ['engineering', 'architecture', 'team morale', 'reliability'], 'CFO': ['burn rate', 'runway', 'fiduciary', 'cost discipline'], 'Investor Rep': ['growth', 'market share', 'IPO', 'bold moves'], 'Independent': ['reputation', 'ethics', 'long-term', 'governance'], } const ROLE_CLS = { 'CTO': 'cto', 'CFO': 'cfo', 'Investor Rep': 'inv', 'Independent': 'ind', } const ROLE_INITIALS = { 'CTO': 'CT', 'CFO': 'CF', 'Investor Rep': 'IN', 'Independent': 'ID', } function NPCCard({ npc }) { const { role, statement, vote, confidence } = npc const cls = ROLE_CLS[role] ?? 'ind' const pct = Math.round(confidence * 100) const hints = AGENDA_HINTS[role] ?? [] return (
{ROLE_INITIALS[role] ?? role[0]}
{role.toUpperCase()}
→{vote.replace(/_/g, '_')}

{statement}

CONF
{pct}%
{hints.map((h) => ( #{h} ))}
) } export default function NPCGrid({ npcStatements }) { if (!npcStatements?.length) { return (
Board Statements
// awaiting board response...
) } return (
Board Statements
{npcStatements.map((npc) => ( ))}
) }