quiero get un resultado de la list diferente

Tengo la function recibir Lista: list<json>

dentro de esta list muchas list:

 list1<go> list2<come> list3<leave> 

Código:

 fun handleResults(it: json) { var storeCoupons = when(id_choice.toInt()){ 0->it.list1 1->it.list2 else->it.list3 } while (i in i.. storeCoupons?.size!!-1){ var pos=storeCoupons.get(i).title var img = storeCoupons?.get(i)?.image var id=storeCoupons?.get(i)?.id users.add(User(id.toString()!!,pos!!, img!!)) i++ } } 

el problema es que la variable storeCoupons cambia su tipo de datos porque recibe algunos types tipo de datos como list1 y otra list de time2, supongo que debería hacer otra list y agregar toda la list dentro de ella?