

## dev-31.0.10 UnifiedControl dependency
UnifiedSpread requires UnifiedControl API >=0.7 <1.0. Host/Demo must configure RequireJS alias `UnifiedControl` to the UnifiedControl package scripts root. The public Control class extends `UnifiedControl.Control`; factories remain `createEditorControl()` and `createWorkbenchControl()`.
# Public API Contract

Control methods: `mount`, `destroy`, `exec`, `on`, `off`, `getState`, `setOptions`.


## dev-31.0.6 additions

Public creation entries:

- `createWorkbenchControl(options)` - composite Control with menu bar, toolbar, formula bar and status bar.
- `createEditorControl(options)` - editing body Control for Host-composed UI such as OneEditor.

Control methods:

- `getCommandRegistry()`
- `getCommandDescriptors()`
- `getMenuContributions(options)`
- `getToolbarContributions(options)`
- `getContextMenuContributions(options)`
- `getFileCapabilities()`

Command IDs use the `spread.` prefix. Unprefixed historical command IDs are rejected. Contribution descriptors always return `spread.*` command IDs.


## Programable File API Contract

- HostFilePayload: `HostFilePayload/v1`
- HostSavePayload: `HostSavePayload/v1`
- Standard EditorControl methods: `openFile`, `saveFile`, `saveAsFile`, `exportFile`.
- `saveFile` / `saveAsFile` / `exportFile` do not call Host storage directly; they generate `payload.data`.
- WorkbenchControl File menu calls Host callbacks for file selection/writing and delegates workbook parsing/output generation to EditorControl.
