{
  "packageName": "UnifiedWriter",
  "productVersion": "1.0.0",
  "apiVersion": "1.6",
  "buildVersion": "20260626.5672",
  "publicEntry": "scripts/main.js",
  "versionMetadata": "VERSION.json",
  "runtimeRequired": [
    "PACKAGE_MANIFEST.json",
    "VERSION.json",
    "scripts/",
    "scripts/commands/",
    "scripts/models/",
    "scripts/services/",
    "themes/base/",
    "scripts/core/control_contracts.js",
    "scripts/controls/",
    "scripts/controls/editor_control.js",
    "scripts/controls/workbench_control.js",
    "scripts/controls/legacy_runtime.js",
    "themes/base/unified_writer.css"
  ],
  "runtimeOptional": [
    "assets/",
    "data/",
    "demo/",
    "demo/callback-io.html",
    "demo/demo.css",
    "demo/demo_local_file_system.js",
    "demo/parameters.html",
    "demo/regression-tests.html",
    "docs/",
    "docs/EDITOR_ENGINE.md",
    "docs/GOOGLE_DOCS_FEATURE_MAP.md",
    "docs/DOCX_IMPORT_ARCHITECTURE.md",
    "docs/GOOGLE_DOCS_EDITING_AND_DOCX_LV2.md",
    "docs/GOOGLE_DOCS_FORMAT_MENU.md",
    "docs/SELECTION_TOOLBAR_FORMAT_STABILITY.md",
    "docs/LIST_OUTLINE_RULER_STABILITY.md",
    "docs/DOCX_IMPORT_LEVEL3_TABLE_SECTION.md",
    "docs/TABLE_EDITING_FOUNDATION.md",
    "docs/TABLE_DIALOG_MODAL_FRAME_FIX.md",
    "docs/TABLE_INLINE_SELECTION_FIX.md",
    "docs/TABLE_ADVANCED_EDITING.md",
    "docs/CONTEXT_MENU_IMAGE_TOOLBAR.md",
    "docs/DOCX_EXPORT_FOUNDATION.md",
    "docs/DOCX_REVIEW_ROUNDTRIP_FOUNDATION.md",
    "docs/EDITING_STABILITY_REGRESSION.md",
    "docs/STAGE1_V539_PRACTICAL_EDITING.md",
    "docs/STAGE2_STAGE3_V545_DOCX_LAYOUT_HOST_REGRESSION.md",
    "docs/HOST_API_AND_REGRESSION_POLICY.md",
    "docs/DOCX_ROUNDTRIP_LEVEL4_6.md",
    "docs/UI_POLISH_MENU_TOOLBAR_V546.md",
    "docs/FILE_MENU_SAVEAS_PRINT_FIX_V5461.md",
    "docs/FILE_MENU_COMMAND_WIRING_FIX_V5462.md",
    "docs/STAGE_V552_PRODUCTIZATION.md",
    "docs/V552_REMAINING_COMPATIBILITY_NOTES.md",
    "docs/DOCM_VBA_SCRIPT_ENGINE_FOUNDATION.md",
    "docs/MACRO_SECURITY_POLICY.md",
    "docs/STAGE_V563_PRODUCTIZATION_COMPATIBILITY_POLISH.md",
    "docs/V563_REMAINING_HIGH_FIDELITY_ROADMAP.md",
    "docs/TOOLS_MENU_APP_FUNCTION_POLICY_V5631.md",
    "docs/CONTROL_VARIANTS_AND_HOST_INTEGRATION.md",
    "docs/FILE_CONTROL_COMMAND_STANDARD.md",
    "docs/HOST_FILE_MENU_DELEGATION_V5641.md",
    "docs/EDITORCONTROL_VIEW_MODE_V5642.md",
    "docs/HOST_FILE_MENU_DELEGATION_V5642.md",
    "docs/MENU_OUTLINE_POLISH_V5643.md",
    "demo/oneeditor-integration.html",
    "docs/ONEEDITOR_INTEGRATION.md",
    "docs/STAGE_V565_POLICY_VIEWMODE_INTEGRATION.md",
    "docs/DEVELOPMENT_MENU_V5651.md",
    "docs/DEVELOPMENT_MENU_V5652.md",
    "docs/DEVELOPMENT_MENU_V5653.md",
    "docs/UNIFIEDCONTROL_FRAMEWORK_ADOPTION_V5660.md",
    "docs/UNIFIEDCONTROL_CDN_REFERENCE_V5661.md",
    "docs/UNIFIEDCONTROL_CDN_REFERENCE_V5662.md",
    "docs/UNIFIEDCONTROL_PACKAGE_ROOT_REFERENCE_V5662.md",
    "docs/UNIFIEDCONTROL_DIRECT_CONTROL_IMPORT_V5663.md",
    "docs/REQUIREJS_DEMO_LOADER_V5665.md",
    "docs/UNIFIEDCONTROL_AMD_PARALLEL_INIT_FIX_V5664.md"
  ],
  "directoryRoles": {
    "scripts/": "Runtime AMD package",
    "themes/": "Runtime theme resources",
    "demo/": "Host integration examples with parameter panels and maximizable Control frames",
    "docs/": "Human-readable documentation",
    "assets/": "Static assets",
    "data/": "Sample data / fixtures",
    "scripts/models/": "StateStore and file context model",
    "scripts/services/": "File I/O and export services",
    "scripts/commands/": "Default command registration",
    "scripts/controls/": "Public UnifiedControl-based Control classes and the legacy runtime bridge"
  },
  "developmentVersion": "dev-5.67.2",
  "developmentMilestone": "5.67.2",
  "stable": false,
  "packageId": "unified-writer",
  "renameBase": "OfficeDoc dev-5.22.2",
  "notes": [
    "v5.67.2 changes Demo OpenFile/SaveFile callbacks to use browser native Local Disk file selection and write-through File System Access API when available; download is fallback only.",
    "v5.67.1 aligns Demo SaveFile callbacks with HostSavePayload/v1 and styles Demo Save As dialogs through styleScope.overlayClass (.uwriter-floating-ui).",
    "v5.67.0 implements EditorControl.openFile/saveFile/saveAsFile/exportFile HostFilePayload/v1 and HostSavePayload/v1 APIs, and declares CSS styles/styleScope in PACKAGE_MANIFEST.json for Host pre-mount loading.",
    "v5.66.6 uses UnifiedControl as peer package and lower_snake_case.js module filenames."
  ],
  "revision": "demo-local-disk-file-picker-save",
  "version": "dev-5.67.2",
  "description": "UnifiedWriter development build v5.67.2 with Demo Local Disk file picker based OpenFile/SaveFile callbacks.",
  "contractVersion": "1.6",
  "controlVariants": {
    "EditorControl": "UnifiedControl.Control subclass. Body Control for OneEditor edit mode and OneViewer view/read-only mode.",
    "WorkbenchControl": "UnifiedControl.Control subclass. Composite surface: EditorControl + optional menu/toolbar/panes/statusbar; not a Host app."
  },
  "commandNamespaces": {
    "host": "Host-owned common commands for integrated Host shells. File-menu ownership is profile-specific, not mandatory for every Host.",
    "writer": "UnifiedWriter package commands exposed by EditorControl in edit/view filtered form",
    "writer.file": "UnifiedWriter storage-neutral File commands used by WorkbenchControl File menu or delegated integrated Host File menu profiles"
  },
  "requiredPackages": {
    "UnifiedControl": {
      "apiVersion": ">=0.7 <1.0",
      "publicEntry": "scripts/main.js",
      "required": true,
      "notes": "Provided by Host/Demo RequireJS alias; not copied into the UnifiedWriter package. Development demos default to the internal CDN package root and derive the scripts alias from it. v5.66.6 uses official RequireJS 2.3.6 and imports the base class through UnifiedControl/controls/control.",
      "developmentPackageRootUrl": "https://cdn.skylarkjs.com/itoolkits/developments/UnifiedControl/",
      "developmentScriptsAliasUrl": "https://cdn.skylarkjs.com/itoolkits/developments/UnifiedControl/scripts",
      "referenceMode": "packageRootUrl+directControlModule",
      "controlImport": "UnifiedControl/controls/control",
      "developmentVersion": ">=dev-0.7.2"
    }
  },
  "demoDependencies": {
    "requirejs": {
      "version": "2.3.6",
      "cdnUrl": "https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js",
      "purpose": "Official AMD loader used by demo/*.html. Do not use scripts/vendor/require.js as a loader."
    }
  },
  "moduleFilenameStandard": {
    "scope": "scripts/**/*.js",
    "physicalFilename": "lower_snake_case.js",
    "amdModulePath": "lower_snake_case",
    "classNames": "PascalCase retained",
    "publicApiNames": "camelCase/PascalCase retained as applicable"
  },
  "styles": {
    "required": [
      "themes/base/unified_writer.css"
    ],
    "themes": {
      "flat": [
        "themes/flat/unified_writer.css"
      ],
      "light": [],
      "dark": [
        "themes/flat/unified_writer.css"
      ]
    },
    "hostOptional": [
      "demo/demo.css"
    ]
  },
  "styleScope": {
    "rootClass": ".uwriter",
    "overlayClass": ".uwriter-floating-ui",
    "cssVariables": [
      "--bg",
      "--panel",
      "--text",
      "--muted",
      "--border",
      "--shadow",
      "--primary",
      "--hover",
      "--page-width",
      "--page-height",
      "--page-padding",
      "--page-pad-y",
      "--page-pad-x"
    ]
  },
  "filePayloadApi": {
    "hostFilePayload": "HostFilePayload/v1",
    "hostSavePayload": "HostSavePayload/v1",
    "methods": [
      "openFile(payload, context)",
      "saveFile(payload, context)",
      "saveAsFile(payload, context)",
      "exportFile(payload, context)"
    ]
  },
  "demoFileCallbacks": {
    "openFile": "Host OpenFile callback uses showOpenFilePicker first and returns HostFilePayload/v1 with file handle when available.",
    "saveFile": "Host SaveFile callback writes HostSavePayload/v1 payload.data to the selected Local Disk file handle via showSaveFilePicker/createWritable.",
    "fallback": "FileSaver/download fallback is used only when the browser does not support File System Access API."
  }
}