Defines a command entry for a CLI module. It also implements some basic validations.
@type t() :: %Nexus.Command{ default: term(), doc: String.t(), module: atom(), name: atom(), required: boolean(), subcommands: [t()], type: atom() }
@spec parse!(keyword()) :: t()