I am one of the owners of Codehaus CARGO, which has a Maven2/Maven3 plugin; and would have an improvement request with regards to how parameters are managed.
Currently, what happens is that if a user unwillingly puts a parameter in the wrong place then the plugin execution continues as is. One of the latest such issues one of the users has had can be found on http://cargo.996258.n3.nabble.com/Maven-plugin-and-javaagent-tp18075.html
As an example, I can write the below POM and build still works (even thought the MOJO has no parameter called "foo"):
It would be good for the MOJO developer to be ablo instruct by MOJO to fail if there is an unknown parameter in the configuration.