Regarding api_name, Are we going to check this for every single method/enum/variable? or per extension or per namespace?

That seems a bit too refined to me. @cmarcelo ?