 }
 
 fileprivate extension ArgumentInfoV0 {
-  init(argument: ArgumentDefinition) {
+  init?(argument: ArgumentDefinition) {
+    guard let kind = ArgumentInfoV0.KindV0(argument: argument) else { return nil }
     self.init(
-      kind: ArgumentInfoV0.KindV0(argument: argument),
+      kind: kind,
       shouldDisplay: argument.help.shouldDisplay,
       isOptional: argument.help.options.contains(.isOptional),
       isRepeating: argument.help.options.contains(.isRepeating),

    let arguments = commandStack
      .allArguments()
      .mergingCompositeArguments()
      .map(ArgumentInfoV0.init)

    self = CommandInfoV0(
      superCommands: superCommands,

}

fileprivate extension ArgumentInfoV0.KindV0 {
  init?(argument: ArgumentDefinition) {
    switch argument.kind {
    case .named:
      switch argument.update {
