The Word That Covers Two Opposite Products
The previous track refused a package. This track accepts one. If those two sentences use the word the same way, one of the tracks is lying.
They do not. A published package is a product sold to consumers you do not control: it lives on a registry, it carries a version, it is fetched at install time, and two consumers pinning different versions is a supported state. That is the isolation product. That is what the family declined, and still declines, for every language.
A path package is a compiler instruction. It says: treat this directory beside me as a unit of compilation. There is no version. There is no publish step. There is no registry account. The directory is the sibling working tree the family already lives in. Resolving it costs what vendoring costs to set up — a line in a manifest the consumer already had — and nothing to keep.
What Isolation Would Have Added Here
Walk the published-package charges against this family and they are still charges, not features. A publish step in every Swift change. A version number that has to be reasoned about and bumped. The possibility — now made legitimate — of two phone apps compiling different revisions of the shared types. The last one is the same sharp edge the original record named: skew as a supported feature, inside the repository that exists to make skew a bug.
A path dependency cannot express that skew. It points at a tree, not at a tag. Tomorrow's checkout and today's checkout see the same package because they see the same directory. That is not a limitation the family is patiently enduring. It is the property they were buying.
Self-Contained, Still
The previous track's spine doctrine looked, for a moment, like a casualty: a consumer now lists a package. Read the list. The package is a relative path to a sibling that is already on the machine. A cold checkout of the consumer alone still cannot build the Swift half, which was already true — the kit repository was already a sibling the drift check skipped politely when absent. The path package did not add a network. It named a directory the family layout already assumed.
What would break the spine is a registry. A tag. A promise that the bytes can be fetched later. None of those arrived. The next lesson is why the compiler needed a unit at all; this one is only the refusal to misname it.