Parametered optional named arguments

This works

function f(;
    field        ::NTuple{Nfield,Symbol},
    fieldscale   ::NTuple= (),#NTuple{Nfield ,Float64}(1. for i =1: Nfield),
    afield       ::NTuple{Nafield,Symbol}=NTuple{0,Symbol}(),
    afieldscale  ::NTuple= ()) where{Nfield,Nafield}  #NTuple{Nafield,Float64}(1. for i =1:Nafield)                ) where{Nfield,Nafield}
    @show Nfield,Nafield
end

f(field=(:a,))