pub fn check_collisions(words: &[WordDef]) -> Result<(), String>
Check for word name collisions across all definitions
Returns an error with helpful message if any word is defined multiple times.