Separate generic code review from design, security, financial, and other kinds of reviews.
Match teams to pull requests using simplified API abstractions.
Decide what happens if the PR author or committers are part of the review team.
Each review team can set their approval requirements, allowing you to get beyond simple constraints like "1 approval required".