The diamond operator is just a convenience so you can write List<GameObject> myList = new ArrayList<>();
instead of List<GameObject> myList= new ArrayList<GameObject>();
Typical EC systems have very little to no hierarchical structure. . They are rarely tied in parent/child relationships and are almost never used with inheritance. Although Assets may be stored by components, usually the Assets (as well as the UI, Input, and the Scene) are not Entities themselves.This
is a pretty good discussion about Components.