# Generator Declaration Contracts
# Workspace declaration schema contracts

{
  Metadata = {
    name | String,
    version | String,
    description | String | optional,
    author | String | optional,
    created_at | String | optional,
    updated_at | String | optional,
  },

  TechnologyDetection = {
    name | String,
    version | String | optional,
    confidence | Number,
    detected_from | optional,
  },

  TaskservRequirement = {
    name | String,
    version | String | optional,
    profile,
    required | Bool,
    confidence | Number,
    reason | String | optional,
  },

  ServerConfig = {
    name | String,
    provider | String,
    flavor | String | optional,
    region | String | optional,
    taskservs,
  },

  DeploymentConfig = {
    mode,
    servers,
    ha_enabled | Bool,
  },

  WorkspaceDeclaration = {
    metadata,
    detections,
    requirements,
    deployment,
    custom_config | optional,
  },

  ChangelogEntry = {
    version | String,
    timestamp | String,
    author | String | optional,
    changes,
    breaking_changes | optional,
  },

  Changelog = {
    entries,
  },

  Workspace = {
    declaration,
    changelog,
  },
}
