will throw on any upperCase unless they are present in the allowList. Recursively searches the object, returning valid keys
will throw on any upperCase unless they are present in the allowList. Recursively searches the object, returning valid keys