Well, since there's a lot of direction that the user could use, I think that the builder pattern is a better approach and I like all of your example!

No new, and if something isn't set through the builder pattern, we use default values! That could even remove the need to bind manually the annotations from defaultPlace, notFoundPlace etc