public ArgumentsHandler(string title, string description, string[] argnames, string[] argtitles, IArgumentType[] argtypes, string[] argdescs, bool[] argreqs, SetArgumentTreeArgumentType resulttype, int time)
            : base(title, description)
        {
            this.argnames = argnames;
            this.argtitles = argtitles;
            this.argtypes = argtypes;
            this.argdescs = argdescs;
            this.argreqs = argreqs;
            this.resulttype = resulttype;

            this.time = time;

            argmap = new Dictionary<string, int>();
            for (int ii = 0; ii < argnames.Length; ii++)
                argmap[argnames[ii]] = ii;
        }
        public ArgumentsHandler(string title, string description, string[] argnames, string[] argtitles, IArgumentType[] argtypes, string[] argdescs, bool[] argreqs, SetArgumentTreeArgumentType resulttype, int time)
            : base(title, description)
        {
            this.argnames   = argnames;
            this.argtitles  = argtitles;
            this.argtypes   = argtypes;
            this.argdescs   = argdescs;
            this.argreqs    = argreqs;
            this.resulttype = resulttype;

            this.time = time;

            argmap = new Dictionary <string, int>();
            for (int ii = 0; ii < argnames.Length; ii++)
            {
                argmap[argnames[ii]] = ii;
            }
        }