pub fn valid_id(id: &str) -> bool
Is this a usable game id or access directory name: [a-z0-9_-]+?
[a-z0-9_-]+
Both end up in a URL and on disk, and this alphabet can neither widen into a path nor collide case-insensitively on Windows.