Moves an activity into one of the caller's custom groups at the given position (`sortOrder`), removing it from any other group first so an activity belongs to at most one group. Rows at/after the index are shifted to keep ordering dense. Scoped to the caller's own groups; gated by `user_schedule:read`.
Content type: application/json · schema MoveActivityToGroupBodyV1