Should allowedTypes be constructor injected from a container parameter? I cannot think of other types of metas but hard coding this list could turn out to be inflexible and put the onus of maintaining this list on the devs.