constructor(parent) {
    super(parent)

    // If fully hidden by parent clipping rect, cull the whole Group out of the scene
    Object.defineProperty(this.threeObject, 'visible', groupVisiblePropDef)

    // Anonymous container for bg/border/scrollbar child objects; these live separate
    // from the main `children` tree
    this.layers = new Group3DFacade(this)
    this.layers.children = [null, null, null]

    // Shared objects for passing down to layers - treated as immutable
    this._sizeVec2 = Object.freeze(new Vector2())
    this._clipRectVec4 = emptyVec4
    this._borderWidthVec4 = emptyVec4
    this._borderRadiiVec4 = emptyVec4

    ;(this._geomBoundingSphere = new Sphere()).version = 0
    this._wasFullyClipped = true
  }
Represents a single block UI element, essentially just a 2D rectangular block that
can contain text, be styled with background/border, and participate in flexbox layout.
Its behavior and styling is very much like an HTML element using flexbox.