Were you thinking about using the same structure for passes as well? I think it could be used, but maybe will need to expand a bit to have a set/array of values for a single field. For older style passes used same "name = value;" assignment syntax, but fx_4+ is using function-looking syntax, like SetPixelShader(...), and those occasionally have multiple arguments. No problem in using "SetPixelShader" as a field name here for consistency here.