ds485-core is concerned about managing the the serial interface. but since the ds485-container is defined in ds485-core all projects, including those not needing access to the serial interface still have a build dependency on ds485-core. ds485-core itself does not need ds485-container, it's merely a container for keeping header and payload together, the format transferred over the wire looks completely different
ds485-netlib relies heavily on ds485-container, and also uses it as it's wire format, hence it makes a more natural place to host that definition