---
title: BodyAcceptsSlots
description: A type that the Authoring surface names.
---

# `BodyAcceptsSlots`

Type, in `@jr2/orchestrator/src/workspace.ts`. It is type plumbing: it computes a type from the types of a Machine or of its parts, and a workflow module does not write it. The signature of an export, or a type that it names, names this type, so its declaration is here. The [Authoring surface](../authoring-surface.md) page lists each export.

```ts
type BodyAcceptsSlots<TBody extends AnyStateMachine, TSlots extends string> =
  InputFrom<TBody> extends { workspace: infer THandles }
    ? WorkspaceHandles<TSlots> extends THandles
      ? BodyNamesNoSlotUnderOpenMap<TBody, TSlots>
      : { "the body's declared handles must accept the Repo Slots the wrapper declares": WorkspaceHandles<TSlots> }
    : unknown;
```
