I would recommend limiting the simulatenously played SoundEffects to maybe 3-5 to make sure performance is good (to play more simulatenously will probably disturb the user anyway) – you could do that with an own AudioManager for example which just has a play function and does this internally..
Regarding your other points:
@Logging Debug Output
We will change the default logging behavior of the engine to be disabled in future updates, while you can then turn them on with categorized logging from Qt. Meanwhile, you can prefix your log output e.g. with “xxx” and then can browse through the log with a search. Not ideal, but a workaround at least. 😉
Performance should be the same by concatenating. You should not rely on the id anywhere else than for debug output purposes though. We can change the id pooling naming mechanism – do you think it would be useful, and if so, which naming mechanism would you prefer?
@Entity Component System
You can use EntityManager::getEntityArrayByType() to receive all entities of a given entityType. However, the outside should not know about internal components of these Entities – instead, I would recommend a Connection element that listens to a signal in the entity if something of global interest happens.
Do you need something different, or what is your use case?