Why DecalManager is not part of the subset of the engine exposed by ebuses?​

I got a look at engine decal manager class and it looks to be really usefull for temporary decals (hits marks) while decal component is more for decals that follows a parent entity lifetime.

It supports 512 decals by default with lifetime management , growing anim, and placement modification and testing.

  1. Why it is not part of the subset of the engine exposed by ebuses so that we can make use of it from scripts?

  2. Simulating how it works spawning temporary entities with decal components is not reinventing the wheel and potentially less performant?

  3. Why CryEngineDecalInfo uses material name as string and not as a reference?A very common choice in this engine.If for example a weapon always spawn the same decal isn’t better to lookup the material by string just on init and then use the reference?Is it due to address changes and invalidation?if so why don’t use hashes everywhere?Can maybe someone explain how resources get managed in a specific post so that people may grasp what references are safe or not safe to cache?