Currently I'm implementing the entity management system for einfall.
It's a little tricky. I want to be able to process / render my various entities. So I should be quickly able to determine what's at a particular x,y tile position and z height.
Any entities on map-1 should be able to be selected as a whole and removed easily. Also entities can be moved from map to map. Yes moving, when moving an entity exists "between tiles", if I want NPC movement to happen at the same time, there could be problems where they manage to land on the same tile. I do want movement to happen at the same time, so this also complicates things, basically an entity can be on one or more tiles. This also works well if I ever wanted to add mulitiled monsters into the game. (Which really I'm suprised we never see in roguelikes)
I've been very good and written tests first. Simplicity is my goal at the moment but not so simple that it's extremely slow.