docs: void remove_child(int idx)
      {
          assert(idx >=0);
          assert(idx < get_child_count()); // this also asserts child count > 0
          assert get_child(idx) != null : "No child at index " + idx;
  
          _children[idx].detachFromContainer();
          int children_to_move = _child_count - idx - 1;
          if (children_to_move > 0) {
              System.arraycopy(_children, idx+1, _children, idx, children_to_move);
          }
          _child_count--;
          _children[_child_count] = null;
          structuralModificationCount++;
      }