Ash - among other ECSs - doesn't implement any sort of hierarchical relationship (parents and children) between its entities. Is there a reason for that? The solution in most cases seems to be to make two components - Parent and Children - and organize your entities accordingly. But is this something that should just be hierarchical and part of entities themselves? ECSs are considered to be relational databases in a lot of ways, but I can't help feeling that it could benefit from both.
Say for example I have a character in a game. He'll be made of the usual body parts: 1 body, 1 head, 2 arms, 2 hands, 2 legs, and 2 feet. All of these parts will be made into their own entities. Regardless of what components I give to these separate entities, they will in essence be related like so:
Is this something that really requires components to do? No matter what components they may get, Foot 1 should never exist if Leg 1 is removed from the game. With a hierarchical entity setup, before Leg 1 is removed and cleaned up, you can guarantee that Foot 1 will be cleaned up and dealt with first, whether that be removing its components first, or making sure it gets pulled out of systems first. Whatever the case.
I've working exclusively with ECSs for my job over the past 2 years, and after working with Ash and designing my own framework on the side, I'd love to know if this seems out of line to do, and hear the pros and cons to doing/no doing this.