let s = import "../schemas/manifest.ncl" in
let c = import "content.ncl" in

{
  make_manifest           = fun data => s.ProjectManifest    & data,
  make_layer              = fun data => s.Layer              & data,
  make_op_mode            = fun data => s.OperationalMode    & data,
  make_consumption_mode   = fun data => s.ConsumptionMode    & data,
  make_publication_service = fun data => s.PublicationService & data,
  make_tool               = fun data => s.ToolRequirement    & data,

  ProjectManifest    = s.ProjectManifest,
  Layer              = s.Layer,
  OperationalMode    = s.OperationalMode,
  ConsumptionMode    = s.ConsumptionMode,
  PublicationService = s.PublicationService,
  ToolRequirement    = s.ToolRequirement,
  JustfileConvention = s.JustfileConvention,
  ClaudeBaseline     = s.ClaudeBaseline,
  RepoKind           = s.RepoKind,
  ConsumerType       = s.ConsumerType,
  ArtifactKind       = s.ArtifactKind,
  AuditLevel         = s.AuditLevel,
  AuthMethod         = s.AuthMethod,
  ServiceScope       = s.ServiceScope,
  InstallMethod      = s.InstallMethod,
  JustfileSystem     = s.JustfileSystem,
  ContentAsset       = c.ContentAsset,
  ContentTemplate    = c.ContentTemplate,
  AssetKind          = c.AssetKind,
  TemplateKind       = c.TemplateKind,
  make_asset         = c.make_asset,
  make_template      = c.make_template,
  # Config surface builders
  ConfigKind         = s.ConfigKind,
  ConsumerKind       = s.ConsumerKind,
  ConfigConsumer     = s.ConfigConsumer,
  ConfigSection      = s.ConfigSection,
  ConfigSurface      = s.ConfigSurface,
  make_config_surface  = fun data => s.ConfigSurface  & data,
  make_config_section  = fun data => s.ConfigSection  & data,
  make_config_consumer = fun data => s.ConfigConsumer & data,
  # Capability / requirement / critical-dep builders
  EnvTarget         = s.EnvTarget,
  RequirementKind   = s.RequirementKind,
  Capability        = s.Capability,
  Requirement       = s.Requirement,
  CriticalDep       = s.CriticalDep,
  make_capability   = fun data => s.Capability   & data,
  make_requirement  = fun data => s.Requirement  & data,
  make_critical_dep = fun data => s.CriticalDep  & data,
}
