section(cbiClass, ...args) {
		if (!CBIAbstractSection.isSubclass(cbiClass))
			L.error('TypeError', 'Class must be a descendent of CBIAbstractSection');

		const obj = cbiClass.instantiate([this, ...args]);
		this.append(obj);
		return obj;
	}
Add a configuration section to the map.

LuCI forms follow the structure of the underlying UCI configurations.
This means that a map, which represents a single UCI configuration, is
divided into multiple sections which in turn contain an arbitrary
number of options.

While UCI itself only knows two kinds of sections - named and anonymous
ones - the form class offers various flavors of form section elements
to present configuration sections in different ways. Refer to the
documentation of the different section classes for details.

@param {LuCI.form.AbstractSection} sectionclass
The section class to use for rendering the configuration section.
Note that this value must be the class itself, not a class instance
obtained from calling `new`. It must also be a class derived from
`LuCI.form.AbstractSection`.

@param {...string} classargs
Additional arguments which are passed as-is to the constructor of the
given section class. Refer to the class specific constructor
documentation for details.

@returns {LuCI.form.AbstractSection}
Returns the instantiated section class instance.