# Generator - Main Module
#
# Infrastructure generation, gap analysis, change tracking, and questionnaires.

let contracts = import "contracts.ncl" in
let defaults = import "defaults.ncl" in

{
  # Re-export gap analysis contracts (not_exported, for type checking only)
  MissingTaskservGap | not_exported = contracts.MissingTaskservGap,
  MissingFieldGap | not_exported = contracts.MissingFieldGap,
  VersionMismatchGap | not_exported = contracts.VersionMismatchGap,
  DependencyGap | not_exported = contracts.DependencyGap,
  Gap | not_exported = contracts.Gap,
  GapAnalysisReport | not_exported = contracts.GapAnalysisReport,
  GapFix | not_exported = contracts.GapFix,
  GapFixPlan | not_exported = contracts.GapFixPlan,

  # Re-export change tracking contracts (not_exported, for type checking only)
  AddTaskservChange | not_exported = contracts.AddTaskservChange,
  RemoveTaskservChange | not_exported = contracts.RemoveTaskservChange,
  UpdateTaskservChange | not_exported = contracts.UpdateTaskservChange,
  UpdateFieldChange | not_exported = contracts.UpdateFieldChange,
  PreserveCustomizationChange | not_exported = contracts.PreserveCustomizationChange,
  Change | not_exported = contracts.Change,
  MergeResult | not_exported = contracts.MergeResult,
  ChangelogEntry | not_exported = contracts.ChangelogEntry,

  # Re-export declaration contracts (not_exported, for type checking only)
  Metadata | not_exported = contracts.Metadata,
  TechnologyDetection | not_exported = contracts.TechnologyDetection,
  TaskservRequirement | not_exported = contracts.TaskservRequirement,
  ServerConfig | not_exported = contracts.ServerConfig,
  DeploymentConfig | not_exported = contracts.DeploymentConfig,
  WorkspaceDeclaration | not_exported = contracts.WorkspaceDeclaration,
  Changelog | not_exported = contracts.Changelog,
  Workspace | not_exported = contracts.Workspace,

  # Re-export questionnaire contracts (not_exported, for type checking only)
  Expression | not_exported = contracts.Expression,
  ValidationRule | not_exported = contracts.ValidationRule,
  Question | not_exported = contracts.Question,
  DecisionNode | not_exported = contracts.DecisionNode,
  DecisionTree | not_exported = contracts.DecisionTree,
  QuestionnaireMetadata | not_exported = contracts.QuestionnaireMetadata,
  Questionnaire | not_exported = contracts.Questionnaire,
  Answer | not_exported = contracts.Answer,
  QuestionnaireResponse | not_exported = contracts.QuestionnaireResponse,

  # Re-export defaults (exportable data)
  default_gap_report = defaults.default_gap_report,
  default_merge_result = defaults.default_merge_result,
  default_deployment = defaults.default_deployment,
  default_validation = defaults.default_validation,
  default_changelog = defaults.default_changelog,
}
