# Give Each Service One Primary Entity

Holds a service to a single entity and its repository, so cross-entity work becomes an explicit coordinator.

Follow these project instructions.
# Give Each Service One Primary Entity

Holds a service to a single entity and its repository, so cross-entity work becomes an explicit coordinator.

Version: `1.0.0`

Bind a service to one entity and one repository. It may read from other services for lookups and rule evaluation, but the data it owns and writes is its own entity's.

A service that writes through several repositories has quietly become the place where two entities' rules meet, which means neither entity's service is the whole truth about it any more. The next person changing one of those entities has no way to know this other service writes it too.

When a workflow genuinely spans entities - an order that touches inventory and billing - give it its own coordinator service that calls the two owning services in sequence. The coordinator owns the sequence; each owning service still owns its entity's rules.

Prefer the base service CRUD and its override hooks over writing new plumbing for create, update and delete. The hooks are where per-entity behaviour goes.

#### Constraints
- Do not write through a second entity’s repository from a service that does not own it.
- Never re-implement CRUD plumbing that the base service already provides.

#### Verification
- Any cross-entity sequence lives in a named coordinator, not inside an entity service
- Per-entity behaviour sits in base-service override hooks rather than new CRUD code
- The service writes through exactly one repository
