canPerform() may want to include who is a token holder or other authentication—at the moment if the Hatch app is set as an ACL Oracle, any address will be able to use the granted functionality once the vesting period is complete. -> This was done to allow votes to be (eventually) created even if something catastrophic happened to the Hatch app during fundraising. Consider changing this to be just the initial sale period, rather than full vesting date.
Note: It may be more interesting to avoid creating votes when the hatch is ongoing, checking if the hatch is either pending or closed.