import type { Game } from './engine'; import { basicPendingMovement, type MovementPending } from './basic-pending-movement'; /** * Revealing Richese's existing marker during a different player's ordinary * movement cannot add an occupying faction to the declared destination. The * caller retains its common profile and Truthtrance/commitment guards. */ export function richeseRevealForeignMovementPending(g: Game): MovementPending | null { if (!Array.isArray(g.players)) return null; const richese = g.players.find(player => player.faction === 'richese'); const deployed = richese?.noField?.deployed; if (!richese || !deployed || deployed.controller !== richese.id || !deployed.location || !('territory' in deployed.location)) return null; const movement = basicPendingMovement(g); return movement && movement.player !== richese.id ? movement.key : null; }