fn filter_challenges( challenges: Vec<Challenge>, filter: &[Constraint] ) -> Result<Vec<Challenge>, Rejection>