@required
is a hint that some value should be passed as an argument to this parameter, even if it's just the default.
This hint only makes sense when used with optional parameters, such as when you surround the parameters with braces, because otherwise arguments are mandatory anyways (like what you would be used to in e.g. java.
Naming is a bit unfortunate here but named
parameters in dart also mean they're optional, you can call a function without any of them.