function validateSignal(signal: unknown): boolean {
if (typeof signal !== "object" || signal === null) return false;
const s = signal as Record<string, unknown>;
// Required fields
if (typeof s.category !== "string") return false;
if (typeof s.confidence !== "number" || s.confidence < 0 || s.confidence > 1) return false;
if (typeof s.subject !== "string" || s.subject.length === 0 || s.subject.length > 500) return false;
// Valid categories
const validCategories = [
"interest", "evaluation", "problem", "purchase_intent",
"price_sensitivity", "brand_affinity", "user_context",
"business_context", "recommendation_request"
];
if (!validCategories.includes(s.category)) return false;
return true;
}