data class Parameter<T : Any>(val type: KClass<T>, val name: String, val description: String? = null, val regex: Regex? = null, val optional: Boolean = true, val multiple: Boolean = false, val tag: String? = null, val values: List<T> = emptyList()) : Property<T>
TODO To group properties (for listing or alternatives). I.e.: '|alternate|' for grouping options that are exclusive or 'Common Options' to group in help