Right. So maybe have a look at the source code of OrderedLogistic. You’ll see it just creates a Categorical distribution with a specific probability vector p. That’s just there for user convenience, but you could have done it yourself. And it’s only PyMC/PyTensor basic operations:
You could have computed those p and then just pass them to an observed pm.Categorical to define your likelihood.