In general, Hamiltonian does not support discrete variable, as the construction of Hamiltonian Monte Carlo proposals relies on a numerical solution of a differential equation. There are some effort of embedding discrete variables into continuous space (e.g., https://arxiv.org/abs/1705.08510), but so far there is no satisfying solutions that works in practices.