pub trait SystemLayout {
// Required methods
fn configs_dir(&self) -> PathBuf;
fn cache_dir(&self) -> PathBuf;
// Provided methods
fn catalog_cache_dir(&self) -> PathBuf { ... }
fn git_cache_dir(&self) -> PathBuf { ... }
fn http_cache_dir(&self) -> PathBuf { ... }
fn answers_config(&self) -> PathBuf { ... }
fn catalog(&self) -> PathBuf { ... }
}