Funciones de fusión de mapas SCSS

Hola, estoy intentando hacer una función de fusión de mapas más avanzada. Actualmente solo tengo los colores dentro del “rojo: ();”

ejemplo completo en codepen

$red: #f00; $green: #0f0; $blue: #00f; $colours: $red $green $blue; $output: (); @each $current-colour in $colours { $i: index($colours, $current-colour); $output: map-merge($output, ($i*100:$current-colour)); } $rgbcolors ( red: ( //only this is being generated with the code 100: $red, 200: $green, 300: $blue ) ) !default; 

Quiero ser capaz de generar el código dentro del mapa.

 $rgbcolors ( // I want to generate the code here So instead of applying the values inside the map I can make the "green" and the "blue" map headers and also create the values inside it red: ( 100: $red, 200: $red, 300: $red ), green: ( 100: $green, 200: $green, 300: $green ), blue: ( 100: $blue, 200: $blue, 300: $blue ) ) !default; 

Luego, para dar un paso más, quiero aclarar y oscurecer el primer y el tercer valor.

 ...... green: ( 100: lighten($green, 5%), 200: $green, 300: darken($green, 5%) ), ..... 

¿Necesitaría @for and yeach para que esto funcione?