In the general case I am completely with you here.
Just definitely don’t obsess. There are many cases where just passing integers and Strings is completely fine.
But I find myself using value objects for another reason as well: libraries like domo / typed_struct can help you with better enforcing contracts at runtime plus give you better error messages in case of a violation.


















