why protected and not private if your goal is to try to guess what will be allowed for ``__get`` and array access ?

And this seems weird to be, because the implementation of ArrayAccess or magic method can do things in a totally different way than accessing the protected properties (sotring the data in a single private property containing an array for instance, as done in Pimple)