@crdlc can you please explain what is a `role` and how is it different than `GridItemsFactory.TYPE` ?