Body of PUT /v1/physicians/{id}/specialties — which of the tenant's
specialties this physician covers. A whole-list replace.
Slugs must exist in the tenant's catalogue (GET /v1/specialties); an
unknown one is dropped rather than refused, because a typo that narrowed a
physician to nothing routable would be worse than a typo ignored — read
the returned physician.specialties to see what stuck. An EMPTY list means
"covers everything" (the permissive default that lets a clinic turn on
specialty routing without emptying its rota); acceptsAllSpecialties
says the same thing explicitly and survives a later non-empty list.
Body of
PUT /v1/physicians/{id}/specialties— which of the tenant's specialties this physician covers. A whole-list replace.Slugs must exist in the tenant's catalogue (
GET /v1/specialties); an unknown one is dropped rather than refused, because a typo that narrowed a physician to nothing routable would be worse than a typo ignored — read the returnedphysician.specialtiesto see what stuck. An EMPTY list means "covers everything" (the permissive default that lets a clinic turn on specialty routing without emptying its rota);acceptsAllSpecialtiessays the same thing explicitly and survives a later non-empty list.