 // MARK: - Config
 
 struct Config {
-  enum Keys {
-    static let inputDir = "input_dir"
-    static let outputDir = "output_dir"
+  enum Keys: String {
+    case inputDir = "input_dir"
+    case outputDir = "output_dir"
   }
 
   let inputDir: Path?

      case .missingEntry(let key):
        return "Missing entry for key \(key)."
      case .multipleErrors(let errors):
        return errors.map { $0.localizedDescription }.joined(separator: "\n")
      case .pathNotFound(let path):
        return "File \(path) not found."
      case .unknownParser(let name):

          )
        } catch let error as Config.Error {
          // Prefix the name of the command for a better error message
          errors.append(error.withKeyPrefixed(by: parserCmd.name))
        }
      } else {
        errors.append(Config.Error.unknownParser(name: cmdName))
      }
    }

    if errors.isEmpty {
      self.commands = cmds
    } else {
      throw Error.multipleErrors(errors)
    }
  }
}

