former is grammar, latter is structured output
it is the mechanism that I meant, yes. Problem with grammar is that it is dog slow when doing stuff like that, apparently. Plus token!=word so tough to implement.
Also, like I said, model does not "see" that you're doing this, internally.