TODO Push this selection of labels down into the Prolog interpreter.
Ideally we discover the labels the user can apply here based on doing
a findall() over the space of labels they can apply combined against
the submit rule, thereby skipping any mutually exclusive cases. However
those are not common, so it might just be reasonable to take this
simple approach.