A pattern I quite like in SwiftUI is building design system components where every “slot” is a a generic View, offering infinite customizability, while offering sane defaults like an init where some of the params are typed (usually just to LocalizedStringKey).
But how do you avoid the massive explosion of inits for a view with more than a couple slots? Especially when some are optional, so you need a conditional EmptyView init for each optional slot?