BuilderScope
Scope handed as the extension receiver to every dev.catbit.mosaic.client.ui.sdui.foundation.tiles.holder.tile.TileHolderBuilder.build and dev.catbit.mosaic.client.ui.sdui.foundation.tiles.holder.event.EventHolderBuilder.build call — the toolbox a HolderBuilder uses to turn a TileSchema/EventSchema into its live Holder counterpart.
Its central job is letting a builder recurse into its own children without needing a reference to the app-wide TileHolderBuilderManager/EventHolderBuilderManager directly — buildTileHolder/ buildEventHolder (and their list-oriented buildEventHolders/buildTileHolders extensions) look up the right builder for each child schema's own concrete class and build it, which is how a container tile's children, or an event's own nested events, end up as fully-built holders too. It also exposes decode/decodeOrNull (for a builder that needs to interpret an opaque AnySerializable field as a concrete type) and the same Koin get/getOrNull/logError/log helpers available elsewhere in the framework.
One BuilderScope instance is created per screen (owned by that screen's TilesManager) and reused for every holder built while that screen is alive.
Constructors
Functions
Builds a fresh E from eventSchema.
Looks up the dev.catbit.mosaic.client.ui.sdui.foundation.tiles.holder.event.EventHolderBuilder registered for eventSchema's own concrete class and builds it.
Builds a holder for every entry in this list via buildEventHolder — the standard way a TileHolderBuilder/EventHolderBuilder turns its own schema's events field into the events constructor argument of the Holder it's building.
Looks up the dev.catbit.mosaic.client.ui.sdui.foundation.tiles.holder.tile.TileHolderBuilder registered for tileSchema's own concrete class and builds it.
Builds a holder for every entry in this list via buildTileHolder — the standard way a container tile's TileHolderBuilder turns its own schema's tiles field into the tiles constructor argument of the TileHolder it's building.
Decodes data as T via the framework's MosaicSerializer, using T's own generated KSerializer — for a builder that needs to interpret an opaque AnySerializable field (already a raw JSON-shaped value, not a JSON string) as a concrete type.
Same as decode, but returns null instead of throwing when data is null or doesn't match T's expected shape.
Non-reified overload of decodeOrNull.
Resolves an instance of T from the app's Koin scope — the way a HolderBuilder reaches a dependency it needs at construction time.
Non-reified overload of get.