   static let configuration = CommandConfiguration(
     abstract: "Print the target's metadata cache nodes.")
 
-  @Argument(help: "The pid or partial name of the target process")
-  var nameOrPid: String
-
-  func run() throws {
-    try withReflectionContext(nameOrPid: nameOrPid) {
+  @OptionGroup()
+  var options: UniversalOptions
+
+  func run() throws {
+    try withReflectionContext(nameOrPid: options.nameOrPid) {
       try dumpMetadataCacheNodes(context: $0,
                                  inspector: $1)
     }

    ])
}

struct DumpConformanceCache: ParsableCommand {
  static let configuration = CommandConfiguration(
    abstract: "Print the contents of the target's protocol conformance cache.")

  @Argument(help: "The pid or partial name of the target process")
  var nameOrPid: String

  func run() throws {
    try withReflectionContext(nameOrPid: nameOrPid) { context, _ in
      try dumpConformanceCache(context: context)
    }
  }
}

struct DumpRawMetadata: ParsableCommand {
  static let configuration = CommandConfiguration(
    abstract: "Print the target's metadata allocations.")
  @Argument(help: "The pid or partial name of the target process")

  var nameOrPid: String

  @Flag(help: "Show the backtrace for each allocation")
  var backtrace: Bool

  @Flag(help: "Show a long-form backtrace for each allocation")
  var backtraceLong: Bool

  func run() throws {
    let style = backtrace ? Backtrace.Style.oneLine :
                backtraceLong ? Backtrace.Style.long :
                nil
    try withReflectionContext(nameOrPid: nameOrPid) {
      try dumpRawMetadata(context: $0, inspector: $1, backtraceStyle: style)
    }
  }
}

  static let configuration = CommandConfiguration(
    abstract: "Print the target's generic metadata allocations.")

  @OptionGroup()
  var universalOptions: UniversalOptions

  @OptionGroup()
  var backtraceOptions: BacktraceOptions

  func run() throws {
    try withReflectionContext(nameOrPid: universalOptions.nameOrPid) {
      try dumpGenericMetadata(context: $0,
                              inspector: $1,
                              backtraceStyle: backtraceOptions.style)
    }
  }
}
