The typehint looks weird. You are never traversing the data (so Traversable on it is useless) but you are accessing properties (not part of the interface)