A little unsure if I'm misunderstanding how EmuList.Deselect works. But isn't it supposed to pass the list index here?
Even so, having changed Deselct to pass list_index to DeselectNoCallback in my own project, GetSelection keeps returning the wrong selection since list.selected_entries[?"first"] doesn't get updated in subsequent calls to list.Select.
Again, maybe I'm just not understanding how to use this.