TileHolderBuilder
Contract every Tile — built-in or custom — implements to turn its own TileSchema subtype T into its matching live TileHolder subtype H. Registered against T's class via a TileDefinition, and invoked exclusively through BuilderScope.buildTileHolder (and, transitively, through List<TileSchema>?.buildTileHolders()) — nothing else in the framework constructs a TileHolder directly.
A stateless object is the norm (every built-in tile's HolderBuilder is one) — the instance state lives entirely on the H it produces, not on the builder itself.