# UnifiedControl direct base Control import / v5.66.3

## Purpose

v5.66.3 fixes the AMD boot error reported in `demo/basic.html`:

```text
TypeError: Class extends value undefined is not a constructor or null
```

The failure occurred while loading optional UnifiedControl modules such as ContentControl / DesignerControl through `UnifiedControl/main`. UnifiedWriter only needs the base `UnifiedControl.Control` class for its public `EditorControl` and `WorkbenchControl` inheritance, so loading the whole UnifiedControl public entry during Writer boot is unnecessary.

## Decision

UnifiedWriter keeps UnifiedControl as a peer package and does not copy or download it into the Writer ZIP.

The Demo / Host still sets the `UnifiedControl` RequireJS alias from the UnifiedControl package root URL:

```javascript
var unifiedControlRoot = 'https://cdn.skylarkjs.com/itoolkits/developments/UnifiedControl/';
require.config({
  paths: {
    UnifiedControl: unifiedControlRoot.replace(/\/+$/, '') + '/scripts',
    UnifiedWriter: '<UnifiedWriterPackageRoot>/scripts'
  }
});
```

However, `scripts/controls/editor_control.js` now imports the required base class directly:

```javascript
define([
  'UnifiedControl/controls/control',
  '../amd/jquery',
  './LegacyRuntime',
  '../core/control_contracts'
], function (UnifiedControlControl, $, LegacyRuntime, ControlContracts) {
  var BaseControl = (UnifiedControlControl &&
    (UnifiedControlControl.Control || UnifiedControlControl.default)) || UnifiedControlControl;

  class EditorControl extends BaseControl {
    // UnifiedWriter-specific model-first editor bridge
  }
});
```

This avoids loading optional UnifiedControl Content / Designer / Runtime modules before they are needed.

## Policy alignment

This remains compatible with the v1.9 UnifiedControl Framework policy:

- UnifiedWriter public Controls still inherit `UnifiedControl.Control`.
- UnifiedControl remains an external required package and is not bundled into UnifiedWriter.
- `PACKAGE_MANIFEST.json` keeps `requiredPackages.UnifiedControl` with `apiVersion: >=0.7 <1.0`.
- The direct module path is a compatibility measure for the dev-0.7.x package and does not change the Host-facing Writer API.

## Host impact

No Host API change is required. Host / Demo still provide the same aliases:

```javascript
require.config({
  paths: {
    UnifiedControl: '<UnifiedControlPackageRoot>/scripts',
    UnifiedWriter: '<UnifiedWriterPackageRoot>/scripts'
  }
});
```

Host code continues to use:

```javascript
require(['UnifiedWriter/main'], function (UnifiedWriter) {
  var control = UnifiedWriter.createEditorControl({ container: '#target' });
});
```

## Verification

Static verification for this build checks that `editor_control.js` no longer depends on `UnifiedControl/main` and instead imports `UnifiedControl/controls/control`.
