It's generally better to use an iterator type instead of forcing someone to use a `slice`. Since it's not always guaranteed that the children entities will be in an array-like container.
fn replace_children(&mut self, children: impl IntoIterator<Item = Entity>) -> &mut Self {