method _parse_req_args (HashRef :$type_href) {

my @ret;

foreach my $subtype ( keys %$type_href ) {

    my $hard;
    if ( $subtype eq 'hard' ) {
        $hard = 1;
    }
    elsif ( $subtype eq 'soft' ) {
        $hard = 0;
    }
    else {
        $self->warn("unrecognized required arg subtype: $subtype");
    }

    my $subtype_href = $type_href->{$subtype};

    foreach my $cli_arg ( keys %$subtype_href ) {

        my $method_arg = $subtype_href->{$cli_arg};
        my $opt        = CLI::Driver::Option->new(
            required   => 1,
            hard       => $hard,
            cli_arg    => $cli_arg,
            method_arg => $method_arg
        );

        push @ret, $opt;
    }
}

return @ret;
}