The test for a context boundary is whether the same word means the same thing on both sides, not whether the code is in separate directories.
"order" in fulfilment: a set of lines to pick and pack.
cancelled means do not ship.
"order" in finance: a revenue event with a tax
treatment. cancelled means issue
a credit note.
same word, two models, and forcing one shared Order class
means a class with fields half of it ignores.
the translation between them is the interesting part, and
it belongs in one explicit place.
A shared model across two contexts accumulates optional fields until nobody can say what a valid instance looks like, which is the observable symptom of a missing boundary. Two models and an explicit translation is more code and is the version where each model can be understood on its own.