Hi there.
I am wondering if it would make sense for you to define smart contract access privileges based on a function semantic meaning?
I’ve described this idea in my blog
https://peersky.xyz/blog/token-id-matching-to-msg-sig/
as well as here on the forum