The first is solvable with a PR check. You can do whatever you want with the submodule on your branch, but if you want it to merge to `main`, then your changes to the submodule have to merged to its `main`.
We have a check that makes sure the referenced commits is on `main`, and not older than 10 PRs.