The restrictions defined here are the same ones that are enforced as `ValueError` inside the generate method for this backend.