I’m not able to judge your preferences without more context. My personal opinion is that dictionaries should be avoided due to their lack of performance and elegance. Value tuples and named keyword arguments are better for me, for instance they allow autocompletion in code editor.
If your model is really complicated and have some business rules you need to validate I would define some struct, maybe some hierarchy of structs (you can go abstract types or nested structs, or both). Probably your params have some defaults in case of missing user input. We had quite interesting discussion in thread below about default values for fields. There are also other threads about this topic.
We can always define some macros if you have an idea for better syntax for handling that, user input in scripts is a common problem I am also struggling.