pub fn get_base_dir() -> Result<PathBuf>
Get the base directory (parent of the executable), cached via OnceLock