fn validate_id(id: &str) -> Result<(), String>
A reverse-DNS-ish id: non-empty, lowercase [a-z0-9.-], at least one dot, length-capped. Kept pragmatic — it’s a uniqueness key, not a security boundary.
[a-z0-9.-]