---
title: OpenBodyDeclaration
description: "What an Open body declares: the parts that it lends a Chart, what the Agents of a Chart can have, and the limits of a Chart."
---

# `OpenBodyDeclaration`

Type, in `@jr2/orchestrator/src/open-body.ts`. It is an export of `@jr2/orchestrator`, on the [Authoring surface](../authoring-surface.md) page, in Charts.

```ts
type OpenBodyDeclaration = {
  lends: Lends;
  allows: { models: string[]; workspace: WorkspaceAccess[] };
  ceilings: Ceilings;
};
```

What an Open body declares: the parts that it lends a Chart, what the Agents of a Chart can
have, and the limits of a Chart. Give it to [`openBody`](openbody.md), and to `chartSchemaFor` for the
pick of a planner.

**Fields**

- `lends`: [`Lends`](type-lends.md)

  The parts that a Chart can use.
- `allows`: `object`

  What the Agents that a Chart adds can have: a model from `models`, and a Workspace access
  from `workspace`. With no model, a Chart cannot add an Agent.

  - `models`: `string[]`
  - `workspace`: `WorkspaceAccess[]`
- `ceilings`: [`Ceilings`](type-ceilings.md)

  The limits of one Chart.

**See also**

- [Charts](../../concepts/charts.md)
