pub fn collect_skills( skills: Vec<Arc<dyn Skill>>, ) -> Result<HashMap<String, Arc<dyn Skill>>, SkillError>
Collect skills into a map, failing on duplicate IDs.