# UnifiedControl / v1.9 Policy Alignment

This package aligns UnifiedSlide with the iToolkits general policy v1.9 and UnifiedControl App Package Integration Technical Specification dev-0.7.2.

## Applied changes

- UnifiedSlide references `UnifiedControl/main` as the shared Control Framework dependency.
- `UnifiedSlideControl` subclasses `UnifiedControl.Control` while keeping the existing Host-facing API (`mount`, `destroy`, `exec`, `on`, `off`, `getState`, `getMenuContributions`, `getToolbarContributions`, `getContextMenuContributions`, `getFileCapabilities`).
- `PACKAGE_MANIFEST.json` declares `requiredPackages.UnifiedControl` with `apiVersion: >=0.7 <1.0` and `developmentVersion: >=dev-0.7.2`.
- UnifiedControl is not copied into this ZIP. Host/Demo configures a RequireJS alias to the shared package root.
- Physical AMD module filenames under `scripts/` are standardized to `lower_snake_case.js`.
- JavaScript class names and public API names are intentionally unchanged.

## Host / Demo RequireJS alias

```js
var unifiedControlRootUrl = 'https://cdn.skylarkjs.com/itoolkits/developments/UnifiedControl/';

require.config({
  paths: {
    UnifiedControl: unifiedControlRootUrl + 'scripts',
    UnifiedSlide: '<UnifiedSlidePackageRoot>/scripts'
  }
});
```

The CDN URL above is a Host/Demo integration setting. It is not written into `PACKAGE_MANIFEST.json`, which stays package-root independent.

## Module naming examples

- `scripts/controls/unified_slide_control.js`
- `scripts/commands/command_registry.js`
- `scripts/models/state_store.js`
- `scripts/services/pptx/pptx_import_service.js`
- `scripts/services/ooxml/ooxml_package_reader.js`

## Compatibility note

The current legacy workspace remains in `scripts/app.js` for UI stability, but Host-facing control, command, contribution, file capability and callback contracts are exposed through `UnifiedSlideControl`.
