multiselect
fun <T> Terminal.multiselect(title: String, options: () -> List<Option<T>>, keyOptions: Map<String, KeyOption>? = null, defaultCursor: Int? = null, defaultOptions: List<T> = emptyList(), details: (data: T, index: Int) -> Widget?? = null, onHover: suspend (option: Option<T>, index: Int) -> Unit? = null, onSelect: suspend (opion: Option<T>, index: Int) -> Unit? = null, onAnimate: (widget: Widget) -> Unit? = null, onDone: (animation: Animation<*>, throwable: Throwable?) -> Unit? = null, pageSize: Int = 10, maxPages: Int = 20): List<T>