/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

// Generated from Rust runtime schemas. Run npm run schema:generate -w @maka-agent/plugin-sdk.
import { contracts } from './contracts.js';
import { configurations } from './configurations.js';

export const nativeImplementations = /* @__PURE__ */ ((): {
  label: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Label: typeof contracts.label };
  };
  locale: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Locale: typeof contracts.locale };
  };
  textReader: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Reader: typeof contracts.textReader };
  };
  textarea: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Textarea: typeof contracts.textarea };
  };
  markdown: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Markdown: typeof contracts.markdown };
  };
  markdownText: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { MarkdownText: typeof contracts.markdownText };
  };
  diff: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Diff: typeof contracts.diff };
  };
  sourceText: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { SourceText: typeof contracts.sourceText };
  };
  filePicker: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { FilePicker: typeof contracts.filePicker };
  };
  terminalView: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { TerminalView: typeof contracts.terminalView };
  };
  readingArea: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { ReadingArea: typeof contracts.readingArea };
  };
  rows: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Rows: typeof contracts.rows };
  };
  valueCheckpoint: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Checkpoint: typeof contracts.valueCheckpoint };
  };
  textFile: {
    implementation: string;
    configuration: {
      type: 'object';
      additionalProperties: false;
      properties: { path: { type: ['string', 'null']; minLength: 1 } };
      title: 'TextFileConfiguration';
      $schema: 'https://json-schema.org/draft/2020-12/schema';
    };
    exports: { TextFile: typeof contracts.textFile };
  };
  morphMark: {
    implementation: string;
    configuration: {
      type: 'object';
      additionalProperties: false;
      properties: {
        shapes: { type: 'array'; items: { $ref: '#/$defs/MorphShape' }; minItems: 2; maxItems: 2 };
        color: { $ref: '#/$defs/TerminalColor' };
        period: { type: 'integer'; format: 'uint32'; minimum: 1000; maximum: 60000 };
      };
      required: ['shapes', 'color', 'period'];
      title: 'MorphMarkConfiguration';
      $schema: 'https://json-schema.org/draft/2020-12/schema';
      $defs: {
        MorphShape: {
          type: 'object';
          additionalProperties: false;
          properties: {
            paths: {
              type: 'array';
              items: {
                type: 'array';
                items: {
                  type: 'array';
                  items: { type: 'number'; format: 'float' };
                  minItems: 2;
                  maxItems: 2;
                };
              };
              minItems: 1;
            };
            radius: { type: 'number'; format: 'float'; minimum: 0.01; maximum: 0.2 };
            miters: { type: 'array'; items: { type: 'integer'; format: 'uint'; minimum: 0 } };
            columns: { type: 'integer'; format: 'uint'; minimum: 32; maximum: 256 };
          };
          required: ['paths', 'radius', 'miters', 'columns'];
        };
        TerminalColor: {
          anyOf: [
            { type: 'integer'; format: 'uint32'; minimum: 0; maximum: 16777215 },
            { $ref: '#/$defs/TerminalNamedColor' },
          ];
          description: "Terminal colors retain the user's ANSI palette and default background.\nNumeric values are RGB; named values are emitted as terminal attributes.";
        };
        TerminalNamedColor: {
          type: 'string';
          enum: [
            'reset',
            'black',
            'red',
            'green',
            'yellow',
            'blue',
            'magenta',
            'cyan',
            'gray',
            'dark_gray',
            'light_red',
            'light_green',
            'light_yellow',
            'light_blue',
            'light_magenta',
            'light_cyan',
            'white',
          ];
        };
      };
    };
    exports: { MorphMark: typeof contracts.morphMark };
  };
  selectionMenu: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { SelectionMenu: typeof contracts.selectionMenu };
  };
  input: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { SecretInput: typeof contracts.secretInput; TextInput: typeof contracts.textInput };
  };
  terminalSurface: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Surface: typeof contracts.terminalSurface };
  };
  callerHistory: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: {
      DeploymentHistory: typeof contracts.callerHistory;
      History: typeof contracts.callerHistory;
    };
  };
  receiptReader: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Receipts: typeof contracts.receiptReader };
  };
  deploymentManager: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Management: typeof contracts.deploymentManager };
  };
  gateway: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: {};
  };
  uiDeploymentManager: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Management: typeof contracts.deploymentManager };
  };
  agent: {
    implementation: string;
    configuration: typeof configurations.agent;
    exports: { agent: typeof contracts.agent };
  };
  acpExecutor: {
    implementation: string;
    configuration: {
      type: 'object';
      additionalProperties: false;
      properties: {
        agent: { $ref: '#/$defs/AcpAgent' };
        permissions: {
          anyOf: [{ $ref: '#/$defs/Permissions' }, { type: 'null' }];
          description: 'Requested launch access, still subject to installation limits and consent.';
        };
      };
      required: ['agent'];
      title: 'AcpExecutorConfiguration';
      $schema: 'https://json-schema.org/draft/2020-12/schema';
      $defs: {
        AcpAgent: {
          type: 'object';
          additionalProperties: false;
          properties: {
            id: { type: 'string' };
            displayName: { type: 'string' };
            executable: { type: 'string' };
            args: { type: 'array'; items: { type: 'string' }; default: [] };
            env: {
              type: 'object';
              additionalProperties: { type: 'string' };
              description: "Ordinary launch settings only. Credentials belong to the agent's login store.";
              default: {};
            };
          };
          required: ['id', 'displayName', 'executable'];
        };
        Permissions: {
          type: 'object';
          additionalProperties: false;
          properties: {
            filesystem: { type: 'array'; items: { $ref: '#/$defs/Rule' } };
            network: { $ref: '#/$defs/Network' };
          };
          required: ['filesystem', 'network'];
        };
        Rule: {
          type: 'object';
          additionalProperties: false;
          properties: {
            path: { type: 'string' };
            scope: { $ref: '#/$defs/Scope' };
            access: { $ref: '#/$defs/Access' };
          };
          required: ['path', 'scope', 'access'];
          description: 'Paths have executor-native meaning. Validate and materialize them on the\nexecution host, never on a remote Desktop. This document alone grants nothing.';
        };
        Scope: { type: 'string'; enum: ['subtree', 'exact'] };
        Access: {
          type: 'string';
          enum: ['read', 'write', 'deny'];
          description: 'Equal-path conflict priority is different from authority breadth: deny wins.';
        };
        Network: {
          oneOf: [
            { type: 'string'; enum: ['denied', 'allowed'] },
            {
              type: 'object';
              properties: {
                restricted: {
                  type: 'object';
                  properties: {
                    destinations: {
                      type: 'array';
                      uniqueItems: true;
                      items: { $ref: '#/$defs/Destination' };
                    };
                  };
                  additionalProperties: false;
                  required: ['destinations'];
                };
              };
              required: ['restricted'];
              additionalProperties: false;
            },
          ];
        };
        Destination: {
          type: 'object';
          additionalProperties: false;
          properties: {
            host: { type: 'string'; minLength: 1; maxLength: 253 };
            port: { type: 'integer'; format: 'uint16'; minimum: 1; maximum: 65535 };
          };
          required: ['host', 'port'];
          description: 'Destination authority, independent of the upstream proxy used to reach it.\nA domain grant does not authorize its subdomains or other ports.';
        };
      };
    };
    exports: { executor: typeof contracts.executor; setup: typeof contracts.executorSetup };
  };
  workhub: {
    implementation: string;
    configuration: typeof configurations.workhub;
    exports: { agent: typeof contracts.agent; workhub: typeof contracts.workhubCoordinator };
  };
  workspaceComputer: {
    implementation: string;
    configuration: typeof configurations.workspaceComputer;
    exports: { computer: typeof contracts.workspaceComputer };
  };
  workspaceFiles: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { files: typeof contracts.workspaceFiles };
  };
  workspaceProcesses: {
    implementation: string;
    configuration: typeof configurations.workspaceProcesses;
    exports: {
      processes: typeof contracts.workspaceProcesses;
      terminal: typeof contracts.terminal;
    };
  };
  protocolProcesses: {
    implementation: string;
    configuration: typeof configurations.workspaceProcesses;
    exports: { protocol: typeof contracts.protocolProcesses };
  };
  uiAuthoring: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Authoring: typeof contracts.uiAuthoring };
  };
  workspaceWeb: {
    implementation: string;
    configuration: typeof configurations.workspaceWeb;
    exports: { web: typeof contracts.workspaceWeb };
  };
  workspaceJev: {
    implementation: string;
    configuration: typeof configurations.workspaceJev;
    exports: { jev: typeof contracts.workspaceJev };
  };
  skillLibrary: {
    implementation: string;
    configuration: typeof configurations.skillLibrary;
    exports: { skills: typeof contracts.skillLibrary };
  };
  skillOutcomes: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { Outcomes: typeof contracts.skillOutcomes };
  };
  questions: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { questions: typeof contracts.questions };
  };
  forms: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { forms: typeof contracts.forms };
  };
  settings: {
    implementation: string;
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema';
      title: 'Configuration';
      type: 'object';
      properties: { locale: { type: 'string'; default: '' } };
      additionalProperties: false;
    };
    exports: { Settings: typeof contracts.settings };
  };
  settingsAuthentication: {
    implementation: string;
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema';
      title: 'Configuration';
      type: 'object';
      properties: { locale: { type: 'string'; default: '' } };
      additionalProperties: false;
    };
    exports: { Authentication: typeof contracts.settingsAuthentication };
  };
  hostLogs: {
    implementation: string;
    configuration: { type: 'object'; properties: {}; required: []; additionalProperties: false };
    exports: { HostLogs: typeof contracts.hostLogs };
  };
  settingsSetup: {
    implementation: string;
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema';
      title: 'Configuration';
      type: 'object';
      properties: { locale: { type: 'string'; default: '' } };
      additionalProperties: false;
    };
    exports: { Setup: typeof contracts.settingsSetup };
  };
} => ({
  label: {
    implementation: 'maka.ui.label',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Label: contracts.label },
  },
  locale: {
    implementation: 'maka.ui.locale',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Locale: contracts.locale },
  },
  textReader: {
    implementation: 'maka.text.reader',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Reader: contracts.textReader },
  },
  textarea: {
    implementation: 'maka.ui.textarea',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Textarea: contracts.textarea },
  },
  markdown: {
    implementation: 'maka.ui.markdown',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Markdown: contracts.markdown },
  },
  markdownText: {
    implementation: 'maka.text.markdown.tui',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { MarkdownText: contracts.markdownText },
  },
  diff: {
    implementation: 'maka.ui.diff',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Diff: contracts.diff },
  },
  sourceText: {
    implementation: 'maka.ui.source',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { SourceText: contracts.sourceText },
  },
  filePicker: {
    implementation: 'maka.ui.file',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { FilePicker: contracts.filePicker },
  },
  terminalView: {
    implementation: 'maka.ui.terminal',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { TerminalView: contracts.terminalView },
  },
  readingArea: {
    implementation: 'maka.ui.reading',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { ReadingArea: contracts.readingArea },
  },
  rows: {
    implementation: 'maka.ui.rows',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Rows: contracts.rows },
  },
  valueCheckpoint: {
    implementation: 'maka.ui.checkpoint',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Checkpoint: contracts.valueCheckpoint },
  },
  textFile: {
    implementation: 'maka.ui.text-file',
    configuration: {
      type: 'object',
      additionalProperties: false,
      properties: { path: { type: ['string', 'null'], minLength: 1 } },
      title: 'TextFileConfiguration',
      $schema: 'https://json-schema.org/draft/2020-12/schema',
    },
    exports: { TextFile: contracts.textFile },
  },
  morphMark: {
    implementation: 'maka.ui.morph-mark',
    configuration: {
      type: 'object',
      additionalProperties: false,
      properties: {
        shapes: { type: 'array', items: { $ref: '#/$defs/MorphShape' }, minItems: 2, maxItems: 2 },
        color: { $ref: '#/$defs/TerminalColor' },
        period: { type: 'integer', format: 'uint32', minimum: 1000, maximum: 60000 },
      },
      required: ['shapes', 'color', 'period'],
      title: 'MorphMarkConfiguration',
      $schema: 'https://json-schema.org/draft/2020-12/schema',
      $defs: {
        MorphShape: {
          type: 'object',
          additionalProperties: false,
          properties: {
            paths: {
              type: 'array',
              items: {
                type: 'array',
                items: {
                  type: 'array',
                  items: { type: 'number', format: 'float' },
                  minItems: 2,
                  maxItems: 2,
                },
              },
              minItems: 1,
            },
            radius: { type: 'number', format: 'float', minimum: 0.01, maximum: 0.2 },
            miters: { type: 'array', items: { type: 'integer', format: 'uint', minimum: 0 } },
            columns: { type: 'integer', format: 'uint', minimum: 32, maximum: 256 },
          },
          required: ['paths', 'radius', 'miters', 'columns'],
        },
        TerminalColor: {
          anyOf: [
            { type: 'integer', format: 'uint32', minimum: 0, maximum: 16777215 },
            { $ref: '#/$defs/TerminalNamedColor' },
          ],
          description:
            "Terminal colors retain the user's ANSI palette and default background.\nNumeric values are RGB; named values are emitted as terminal attributes.",
        },
        TerminalNamedColor: {
          type: 'string',
          enum: [
            'reset',
            'black',
            'red',
            'green',
            'yellow',
            'blue',
            'magenta',
            'cyan',
            'gray',
            'dark_gray',
            'light_red',
            'light_green',
            'light_yellow',
            'light_blue',
            'light_magenta',
            'light_cyan',
            'white',
          ],
        },
      },
    },
    exports: { MorphMark: contracts.morphMark },
  },
  selectionMenu: {
    implementation: 'maka.ui.selection-menu',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { SelectionMenu: contracts.selectionMenu },
  },
  input: {
    implementation: 'maka.ui.input',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { SecretInput: contracts.secretInput, TextInput: contracts.textInput },
  },
  terminalSurface: {
    implementation: 'maka.ui.surface.tui',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Surface: contracts.terminalSurface },
  },
  callerHistory: {
    implementation: 'maka.operations.history',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { DeploymentHistory: contracts.callerHistory, History: contracts.callerHistory },
  },
  receiptReader: {
    implementation: 'maka.operations.receipts',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Receipts: contracts.receiptReader },
  },
  deploymentManager: {
    implementation: 'maka.application.management',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Management: contracts.deploymentManager },
  },
  gateway: {
    implementation: 'maka.application.gateway',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: {},
  },
  uiDeploymentManager: {
    implementation: 'maka.application.ui-management',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Management: contracts.deploymentManager },
  },
  agent: {
    implementation: 'maka.agent.api',
    configuration: configurations.agent,
    exports: { agent: contracts.agent },
  },
  acpExecutor: {
    implementation: 'maka.agent.acp',
    configuration: {
      type: 'object',
      additionalProperties: false,
      properties: {
        agent: { $ref: '#/$defs/AcpAgent' },
        permissions: {
          anyOf: [{ $ref: '#/$defs/Permissions' }, { type: 'null' }],
          description: 'Requested launch access, still subject to installation limits and consent.',
        },
      },
      required: ['agent'],
      title: 'AcpExecutorConfiguration',
      $schema: 'https://json-schema.org/draft/2020-12/schema',
      $defs: {
        AcpAgent: {
          type: 'object',
          additionalProperties: false,
          properties: {
            id: { type: 'string' },
            displayName: { type: 'string' },
            executable: { type: 'string' },
            args: { type: 'array', items: { type: 'string' }, default: [] },
            env: {
              type: 'object',
              additionalProperties: { type: 'string' },
              description:
                "Ordinary launch settings only. Credentials belong to the agent's login store.",
              default: {},
            },
          },
          required: ['id', 'displayName', 'executable'],
        },
        Permissions: {
          type: 'object',
          additionalProperties: false,
          properties: {
            filesystem: { type: 'array', items: { $ref: '#/$defs/Rule' } },
            network: { $ref: '#/$defs/Network' },
          },
          required: ['filesystem', 'network'],
        },
        Rule: {
          type: 'object',
          additionalProperties: false,
          properties: {
            path: { type: 'string' },
            scope: { $ref: '#/$defs/Scope' },
            access: { $ref: '#/$defs/Access' },
          },
          required: ['path', 'scope', 'access'],
          description:
            'Paths have executor-native meaning. Validate and materialize them on the\nexecution host, never on a remote Desktop. This document alone grants nothing.',
        },
        Scope: { type: 'string', enum: ['subtree', 'exact'] },
        Access: {
          type: 'string',
          enum: ['read', 'write', 'deny'],
          description:
            'Equal-path conflict priority is different from authority breadth: deny wins.',
        },
        Network: {
          oneOf: [
            { type: 'string', enum: ['denied', 'allowed'] },
            {
              type: 'object',
              properties: {
                restricted: {
                  type: 'object',
                  properties: {
                    destinations: {
                      type: 'array',
                      uniqueItems: true,
                      items: { $ref: '#/$defs/Destination' },
                    },
                  },
                  additionalProperties: false,
                  required: ['destinations'],
                },
              },
              required: ['restricted'],
              additionalProperties: false,
            },
          ],
        },
        Destination: {
          type: 'object',
          additionalProperties: false,
          properties: {
            host: { type: 'string', minLength: 1, maxLength: 253 },
            port: { type: 'integer', format: 'uint16', minimum: 1, maximum: 65535 },
          },
          required: ['host', 'port'],
          description:
            'Destination authority, independent of the upstream proxy used to reach it.\nA domain grant does not authorize its subdomains or other ports.',
        },
      },
    },
    exports: { executor: contracts.executor, setup: contracts.executorSetup },
  },
  workhub: {
    implementation: 'maka.workhub.api',
    configuration: configurations.workhub,
    exports: { agent: contracts.agent, workhub: contracts.workhubCoordinator },
  },
  workspaceComputer: {
    implementation: 'maka.workspace.computer',
    configuration: configurations.workspaceComputer,
    exports: { computer: contracts.workspaceComputer },
  },
  workspaceFiles: {
    implementation: 'maka.workspace.files',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { files: contracts.workspaceFiles },
  },
  workspaceProcesses: {
    implementation: 'maka.workspace.processes',
    configuration: configurations.workspaceProcesses,
    exports: { processes: contracts.workspaceProcesses, terminal: contracts.terminal },
  },
  protocolProcesses: {
    implementation: 'maka.workspace.protocol-processes',
    configuration: configurations.workspaceProcesses,
    exports: { protocol: contracts.protocolProcesses },
  },
  uiAuthoring: {
    implementation: 'maka.application.authoring',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Authoring: contracts.uiAuthoring },
  },
  workspaceWeb: {
    implementation: 'maka.workspace.web',
    configuration: configurations.workspaceWeb,
    exports: { web: contracts.workspaceWeb },
  },
  workspaceJev: {
    implementation: 'maka.workspace.jev',
    configuration: configurations.workspaceJev,
    exports: { jev: contracts.workspaceJev },
  },
  skillLibrary: {
    implementation: 'maka.skills.library',
    configuration: configurations.skillLibrary,
    exports: { skills: contracts.skillLibrary },
  },
  skillOutcomes: {
    implementation: 'maka.skills.outcomes',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { Outcomes: contracts.skillOutcomes },
  },
  questions: {
    implementation: 'maka.interactions.questions',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { questions: contracts.questions },
  },
  forms: {
    implementation: 'maka.interactions.forms',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { forms: contracts.forms },
  },
  settings: {
    implementation: 'maka.settings',
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema',
      title: 'Configuration',
      type: 'object',
      properties: { locale: { type: 'string', default: '' } },
      additionalProperties: false,
    },
    exports: { Settings: contracts.settings },
  },
  settingsAuthentication: {
    implementation: 'maka.settings.authentication',
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema',
      title: 'Configuration',
      type: 'object',
      properties: { locale: { type: 'string', default: '' } },
      additionalProperties: false,
    },
    exports: { Authentication: contracts.settingsAuthentication },
  },
  hostLogs: {
    implementation: 'maka.host.logs',
    configuration: { type: 'object', properties: {}, required: [], additionalProperties: false },
    exports: { HostLogs: contracts.hostLogs },
  },
  settingsSetup: {
    implementation: 'maka.settings.setup',
    configuration: {
      $schema: 'https://json-schema.org/draft/2020-12/schema',
      title: 'Configuration',
      type: 'object',
      properties: { locale: { type: 'string', default: '' } },
      additionalProperties: false,
    },
    exports: { Setup: contracts.settingsSetup },
  },
}))();
