Ported interaction API from zachtaylor/jpokemon