You can specify the fieldnames any way you want, they are just Comparables. It is however important that they are known at planning time. After a flow has been planned they can no longer be modified.
If you look at lingual, it is exactly that: A generic cascading app which parses user input (SQL) and generates flows based on that input. It does of course a bit more than that, but the principal is what you are trying to do. I don't mean to say you should use lingual here, it is just an example that it is possible.
http://www.cascading.org/projects/lingual/The other example would be multitool, which is our cascading based sed/grep/awk/sort/cut replacement. It does a similar thing:
http://docs.cascading.org/multitool/2.6/