I may have found a hint in @djacu’s excellent Function Arguments - NixOS Modules Lessons
It looks like specialArgs is always passed as an argument as well as all its attributes!
Which seems to be what the line @zimward pointed at do
({ inherit lib options config specialArgs; } // specialArgs)
Which means, pass lib, options, config, specialArgs and “merge” with all the attributes of specialArgs (using the // operator).
5 Likes