Note that using dynamic keys like this may limit type stability and reduce performance in some situations. NamedTuple is designed with the idea that keys are usually known at compile time. You should consider whether Dict (which does not “compile in” they keys) is suitable for your use case.
Hang on, are the y and z arguments not assigned to symbols to begin with? NamedTuples can only take symbols so why not constrain y::Symbol and z::Symbol? Symbol(y) is flexible but not everything should be forced into a symbol. A Dict wouldn’t need to do that to its keys.