export type CandidateScope = 'route' | 'file' | 'account'; export interface GateMetadata { id: string; threshold: string; billingDimension: string; scope: CandidateScope | 'mixed'; sourceCitation?: string; description?: string; } export interface Candidate { kind: string; scope: CandidateScope; route?: string | null; hostname?: string | null; files: string[]; priority: number; confidence: number; o11ySignal?: string; reason: string; question: string; evidence?: Record; disqualified?: boolean; disqualifyReason?: string; warnings?: string[]; } export interface Signals { metrics?: Record; codebase?: { findings?: Array>; routes?: Array>; }; project?: Record; usage?: Record; stack?: Record; }