Yes, sorry, I explained that poorly.

What I meant is that explicitly listing out all of the parents where it's
okay to use bar.baz_boom as a child isn't the correct approach - going down
that path we'll always miss one or two. You'd basically need to add every
possible place in the AST where a value could be read.

Really, the rules are pretty simple:

1. Inside of a CallExpression, all is fair.
2. Inside of an AssignmentExpression, the rightmost member of a
MemberExpression must be camelcase.
3. In all other cases, the identifier must be camel case.

I think the correct approach would be to address each of these
circumstances directly.