Not sure you should return true here so quickly, what if they define both id and type? Granted, if they provide both id and type, and typed failed, that could be bad too.