I would actually reverse the convention on these. Instead of having multiple nearly-identical methods feed into one version that takes ApiCommand as a parameter, have a chain where it can propagate different default values. So, for example, direct(directingManifest) calls direct(directingManifest, null), which then creates the ApiCommand and calls a private method.