I would recommend to structure the code as defined in the Ansible Best Practices document:
and to follow the structure that major contributors to the ansible galaxy platform use, like geerlingguy.
If one will follow a significant different structure then it will be really hard in the future to reuse roles from the ansible galaxy community and one has to reinvent the wheel.