I just talked with @timplunkett about the generic way to handle 'restrictions' like this and came to the conclusion that having plugin contexts is the way to go here. It means that plugins that restrict by entity type would be limited to only one entity type. Based on what Tim has also been working on, it seems the context system needs a bit of work. I'll look into converting this to see if it's feasible currently.