outer, where scope pointed to the most deep child component, customer.
<layer1>
<template v-slot:slotName="scope">
{{scope}}
</template>
</layer1>
layer1, where the slot name defined by parent.
<layer2>
<template v-for="(_, slotKey) in $scopedSlots" v-slot:[slotKey]="scope">
<slot :name="slotKey" v-bind="scope"/>
</template>
</layer2>
layer2, where the slot spreaded to every consumer component.
<consumer v-for="value in structure">
<template v-slot="scope">
<slot :name="value" v-bind="scope">
</template>
</consumer>