pub fn parse_version(version: &str) -> Option<(u32, u32, u32)>
Parse a semantic version string into (major, minor, patch)