Scoring contract

Updated Jul 16, 2026

The Scorer trait maps a PointOfInterest and InterestProfile to a f32 score. Implementations must be Send + Sync, return deterministic, non-negative, finite values, and should normalize scores to 0.0..=1.0. Scorer::sanitise is provided to clamp or reset invalid values.[^5]