I generally stay away from using domains as command objects, because you have to worry about what is and isn't bindable, and that can lead to security issues. Also just taking a map of properties can jam them into a domain object, if you don't have full control over that map can be just as dangerous. While binding to domain objects can be convenient in a toy project, I would advise having separate command objects and domain objects in any project that is going to go out to production.