// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.

/**
 * Auto-generated by 'os i18n extract' for locale 'en'.
 * Edit translations in place; re-run extract (with --merge) to fill new gaps.
 * Do not hand-edit the structure — only the leaf string values.
 */

import type { TranslationData } from '@objectstack/spec/system';

export const enMetadataForms: NonNullable<TranslationData['metadataForms']> = {
  object: {
    label: "Object",
    sections: {
      basics: {
        label: "Basics",
        description: "Identity, labels, and taxonomy."
      },
      fields: {
        label: "Fields",
        description: "Define the data model — each row becomes a column in the database table."
      },
      capabilities: {
        label: "Capabilities",
        description: "System features and API exposure."
      },
      advanced: {
        label: "Advanced",
        description: "State machines, actions, and storage."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case unique identifier (immutable after creation)"
      },
      label: {
        label: "Label",
        helpText: "Singular display name (e.g. \"Account\")"
      },
      pluralLabel: {
        label: "Plural Label",
        helpText: "Plural display name (e.g. \"Accounts\")"
      },
      icon: {
        label: "Icon",
        helpText: "Lucide icon name (e.g. \"building\", \"users\")"
      },
      description: {
        label: "Description",
        helpText: "Developer documentation"
      },
      tags: {
        label: "Tags",
        helpText: "Categorization tags (e.g. \"sales\", \"system\")"
      },
      active: {
        label: "Active",
        helpText: "Is the object active and usable"
      },
      isSystem: {
        label: "Is System",
        helpText: "System object (protected from deletion)"
      },
      abstract: {
        label: "Abstract",
        helpText: "Abstract base (cannot be instantiated)"
      },
      fields: {
        label: "Fields",
        helpText: "Add the columns this object will store"
      },
      "fields.label": {
        label: "Label",
        helpText: "Display label"
      },
      "fields.type": {
        label: "Type",
        helpText: "Field type"
      },
      "fields.description": {
        label: "Description",
        helpText: "Developer documentation for this column"
      },
      "fields.required": {
        label: "Required",
        helpText: "Must be set on every record"
      },
      "fields.unique": {
        label: "Unique",
        helpText: "Disallow duplicate values"
      },
      "fields.indexed": {
        label: "Indexed",
        helpText: "Create a database index for faster querying"
      },
      "fields.readonly": {
        label: "Readonly",
        helpText: "Visible but never user-editable"
      },
      "fields.immutable": {
        label: "Immutable",
        helpText: "Editable on create, locked thereafter"
      },
      "fields.hidden": {
        label: "Hidden",
        helpText: "Hidden from default UI"
      },
      "fields.searchable": {
        label: "Searchable",
        helpText: "Include in full-text search"
      },
      "fields.sortable": {
        label: "Sortable",
        helpText: "Allow sorting on this column"
      },
      "fields.filterable": {
        label: "Filterable",
        helpText: "Allow filtering on this column"
      },
      "fields.defaultValue": {
        label: "Default Value",
        helpText: "Default value for new records (JSON literal)"
      },
      "fields.placeholder": {
        label: "Placeholder",
        helpText: "Placeholder hint"
      },
      "fields.maxLength": {
        label: "Max Length",
        helpText: "Max characters"
      },
      "fields.minLength": {
        label: "Min Length",
        helpText: "Min characters"
      },
      "fields.min": {
        label: "Min",
        helpText: "Minimum value"
      },
      "fields.max": {
        label: "Max",
        helpText: "Maximum value"
      },
      "fields.precision": {
        label: "Precision",
        helpText: "Total digits"
      },
      "fields.scale": {
        label: "Scale",
        helpText: "Decimal places"
      },
      "fields.options": {
        label: "Options",
        helpText: "Available choices"
      },
      "fields.options.label": {
        label: "Label"
      },
      "fields.options.value": {
        label: "Value"
      },
      "fields.options.color": {
        label: "Color"
      },
      "fields.options.icon": {
        label: "Icon",
        helpText: "Lucide icon name"
      },
      "fields.options.description": {
        label: "Description"
      },
      "fields.reference": {
        label: "Reference",
        helpText: "Target object (for lookup/master_detail)"
      },
      "fields.referenceFilter": {
        label: "Reference Filter",
        helpText: "CEL filter applied to the picker"
      },
      "fields.cascadeDelete": {
        label: "Cascade Delete",
        helpText: "Delete children when parent is deleted"
      },
      "fields.multiple": {
        label: "Multiple",
        helpText: "Allow selecting multiple records"
      },
      "fields.formula": {
        label: "Formula",
        helpText: "CEL formula expression"
      },
      "fields.returnType": {
        label: "Return Type",
        helpText: "Result type for formulas"
      },
      "fields.summaryType": {
        label: "Summary Type",
        helpText: "Aggregation"
      },
      "fields.summaryField": {
        label: "Summary Field",
        helpText: "Field on child object to aggregate"
      },
      "fields.displayFormat": {
        label: "Display Format",
        helpText: "e.g. \"INV-{0000}\""
      },
      "fields.startingNumber": {
        label: "Starting Number",
        helpText: "Starting sequence value"
      },
      "fields.language": {
        label: "Language",
        helpText: "Editor language (e.g. sql, javascript)"
      },
      "fields.validation": {
        label: "Validation",
        helpText: "CEL predicate — must evaluate true"
      },
      "fields.errorMessage": {
        label: "Error Message",
        helpText: "Shown when validation fails"
      },
      "fields.audit": {
        label: "Audit",
        helpText: "Audit changes to this field"
      },
      "fields.trackHistory": {
        label: "Track History",
        helpText: "Keep change history"
      },
      "fields.pii": {
        label: "Pii",
        helpText: "Personally identifiable information"
      },
      "fields.encrypted": {
        label: "Encrypted",
        helpText: "Encrypt at rest"
      },
      capabilities: {
        label: "Capabilities",
        helpText: "Enable/disable system features"
      },
      "capabilities.trackHistory": {
        label: "Track History"
      },
      "capabilities.searchable": {
        label: "Searchable"
      },
      "capabilities.apiEnabled": {
        label: "Api Enabled"
      },
      "capabilities.files": {
        label: "Files"
      },
      "capabilities.feeds": {
        label: "Feeds"
      },
      "capabilities.activities": {
        label: "Activities"
      },
      "capabilities.trash": {
        label: "Trash"
      },
      "capabilities.mru": {
        label: "Mru"
      },
      "capabilities.clone": {
        label: "Clone"
      },
      datasource: {
        label: "Datasource",
        helpText: "Target datasource ID (default: \"default\")"
      }
    }
  },
  field: {
    label: "Field",
    sections: {
      basics: {
        label: "Basics",
        description: "Core field identity and constraints."
      },
      configuration: {
        label: "Configuration",
        description: "Field-type specific settings (visible blocks depend on the chosen type)."
      },
      formula: {
        label: "Formula & Computed",
        description: "Calculated values and roll-up summaries."
      },
      advanced: {
        label: "Advanced",
        description: "Database, UI, audit, and security settings."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case, immutable after creation)"
      },
      label: {
        label: "Label",
        helpText: "Display name for users"
      },
      type: {
        label: "Type",
        helpText: "Data type of this field"
      },
      group: {
        label: "Group",
        helpText: "Group name for form layout"
      },
      description: {
        label: "Description",
        helpText: "Help text shown to users"
      },
      required: {
        label: "Required",
        helpText: "User must provide a value"
      },
      unique: {
        label: "Unique",
        helpText: "No two records can have the same value"
      },
      multiple: {
        label: "Multiple",
        helpText: "Allow multiple values (for select/lookup)"
      },
      defaultValue: {
        label: "Default Value",
        helpText: "Default value for new records"
      },
      minLength: {
        label: "Min Length",
        helpText: "Minimum character length"
      },
      maxLength: {
        label: "Max Length",
        helpText: "Maximum character length"
      },
      min: {
        label: "Min",
        helpText: "Minimum value"
      },
      max: {
        label: "Max",
        helpText: "Maximum value"
      },
      precision: {
        label: "Precision",
        helpText: "Decimal places (e.g., 2 for $10.50)"
      },
      scale: {
        label: "Scale",
        helpText: "Number of decimal digits"
      },
      options: {
        label: "Options",
        helpText: "Available options (label/value pairs)"
      },
      reference: {
        label: "Reference",
        helpText: "Referenced object name"
      },
      referenceFilters: {
        label: "Reference Filters",
        helpText: "Filter expressions (e.g., \"active = true\")"
      },
      deleteBehavior: {
        label: "Delete Behavior",
        helpText: "What happens when referenced record is deleted"
      },
      expression: {
        label: "Expression",
        helpText: "CEL expression to calculate this field (makes it read-only)"
      },
      summaryOperations: {
        label: "Summary Operations",
        helpText: "Roll-up summary configuration (for parent-child relationships)"
      },
      cached: {
        label: "Cached",
        helpText: "Caching configuration for computed fields"
      },
      columnName: {
        label: "Column Name",
        helpText: "Physical column name in database (defaults to field name)"
      },
      index: {
        label: "Index",
        helpText: "Create database index for faster queries"
      },
      externalId: {
        label: "External Id",
        helpText: "Mark as external ID for upsert operations"
      },
      readonly: {
        label: "Readonly",
        helpText: "Field is read-only in forms"
      },
      hidden: {
        label: "Hidden",
        helpText: "Hide field from default UI views"
      },
      searchable: {
        label: "Searchable",
        helpText: "Include in global search results"
      },
      sortable: {
        label: "Sortable",
        helpText: "Allow sorting lists by this field"
      },
      auditTrail: {
        label: "Audit Trail",
        helpText: "Track detailed changes with user and timestamp"
      },
      trackFeedHistory: {
        label: "Track Feed History",
        helpText: "Show changes in activity feed"
      },
      encryptionConfig: {
        label: "Encryption Config",
        helpText: "Field-level encryption (GDPR/HIPAA/PCI-DSS)"
      },
      maskingRule: {
        label: "Masking Rule",
        helpText: "Data masking rules for PII protection"
      }
    }
  },
  trigger: {
    label: "Trigger"
  },
  validation: {
    label: "Validation Rule"
  },
  hook: {
    label: "Hook",
    sections: {
      identity: {
        label: "Identity",
        description: "What this hook is and when it fires."
      },
      body: {
        label: "Body",
        description: "Inline expression or sandboxed JavaScript executed when the hook fires."
      },
      legacy_handler: {
        label: "Legacy handler",
        description: "Function name reference — deprecated in favour of body."
      },
      execution: {
        label: "Execution"
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case identifier (immutable after creation)"
      },
      label: {
        label: "Label"
      },
      description: {
        label: "Description"
      },
      object: {
        label: "Object",
        helpText: "Target object name (or \"*\" for global)"
      },
      events: {
        label: "Events",
        helpText: "Lifecycle events (e.g. beforeInsert, afterUpdate)"
      },
      priority: {
        label: "Priority",
        helpText: "Lower numbers run first"
      },
      body: {
        label: "Body",
        helpText: "Either an L1 expression or an L2 sandboxed JS body"
      },
      "body.language": {
        label: "Language",
        helpText: "expression = pure formula; js = sandboxed JavaScript"
      },
      "body.source": {
        label: "Source",
        helpText: "Function body source — no top-level imports"
      },
      "body.capabilities": {
        label: "Capabilities",
        helpText: "Allowed ctx APIs (api.read, api.write, crypto.uuid, log, …)"
      },
      "body.timeoutMs": {
        label: "Timeout Ms",
        helpText: "Per-invocation timeout (ms)"
      },
      handler: {
        label: "Handler",
        helpText: "Handler function name (deprecated — prefer `body`)"
      },
      async: {
        label: "Async",
        helpText: "Run in background, do not block the transaction"
      },
      onError: {
        label: "On Error"
      },
      condition: {
        label: "Condition",
        helpText: "Optional formula — skip the hook when this evaluates to false"
      }
    }
  },
  view: {
    label: "View",
    sections: {
      basics: {
        label: "Basics",
        description: "Identity and primary surface."
      },
      columns_filters: {
        label: "Columns & filters",
        description: "What rows show and how users filter them."
      },
      table_options: {
        label: "Table options",
        description: "Grid-only display options."
      },
      kanban: {
        label: "Kanban",
        description: "Kanban-specific board configuration."
      },
      calendar: {
        label: "Calendar",
        description: "Calendar-specific configuration."
      },
      gantt: {
        label: "Gantt",
        description: "Gantt-specific configuration."
      },
      gallery: {
        label: "Gallery",
        description: "Gallery-specific configuration."
      },
      timeline: {
        label: "Timeline",
        description: "Timeline-specific configuration."
      },
      chart: {
        label: "Chart",
        description: "Chart-specific configuration."
      },
      navigation_sharing: {
        label: "Navigation & sharing",
        description: "Where this view appears and who can see it."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case, unique per environment"
      },
      label: {
        label: "Label"
      },
      description: {
        label: "Description"
      },
      type: {
        label: "Type",
        helpText: "Primary view surface"
      },
      data: {
        label: "Data",
        helpText: "Data source — e.g. {\"provider\":\"object\",\"object\":\"task\"}"
      },
      columns: {
        label: "Columns",
        helpText: "Columns to display (field names from selected object)"
      },
      filter: {
        label: "Filter",
        helpText: "Filter conditions"
      },
      sort: {
        label: "Sort",
        helpText: "Default sort order"
      },
      searchableFields: {
        label: "Searchable Fields",
        helpText: "Field names available for quick search"
      },
      filterableFields: {
        label: "Filterable Fields",
        helpText: "Field names available for filtering"
      },
      resizable: {
        label: "Resizable"
      },
      striped: {
        label: "Striped"
      },
      bordered: {
        label: "Bordered"
      },
      compactToolbar: {
        label: "Compact Toolbar"
      },
      rowHeight: {
        label: "Row Height"
      },
      selection: {
        label: "Selection"
      },
      pagination: {
        label: "Pagination"
      },
      kanban: {
        label: "Kanban"
      },
      calendar: {
        label: "Calendar"
      },
      gantt: {
        label: "Gantt"
      },
      gallery: {
        label: "Gallery"
      },
      timeline: {
        label: "Timeline"
      },
      chart: {
        label: "Chart"
      },
      navigation: {
        label: "Navigation"
      },
      sharing: {
        label: "Sharing"
      }
    }
  },
  page: {
    label: "Page",
    sections: {
      basics: {
        label: "Basics",
        description: "Page identity and template."
      },
      data_context: {
        label: "Data Context",
        description: "Record binding and page-local state."
      },
      layout: {
        label: "Layout",
        description: "Page regions and components placed within them."
      },
      advanced: {
        label: "Advanced",
        description: "Activation, audience, and accessibility."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Page title shown to users"
      },
      icon: {
        label: "Icon",
        helpText: "Icon for navigation menu"
      },
      type: {
        label: "Type",
        helpText: "Page type (record, home, app, dashboard, etc.)"
      },
      template: {
        label: "Template",
        helpText: "Layout template (e.g., \"header-sidebar-main\")"
      },
      description: {
        label: "Description",
        helpText: "Page description for navigation"
      },
      object: {
        label: "Object",
        helpText: "Bound object (for Record pages)"
      },
      variables: {
        label: "Variables",
        helpText: "Local page state variables"
      },
      regions: {
        label: "Regions",
        helpText: "Layout regions (header, main, sidebar, footer) with components"
      },
      isDefault: {
        label: "Is Default",
        helpText: "Set as default page for this page type"
      },
      kind: {
        label: "Kind",
        helpText: "Page override mode: full or slotted (for record pages)"
      },
      assignedProfiles: {
        label: "Assigned Profiles",
        helpText: "Profiles that can access this page"
      },
      aria: {
        label: "Aria",
        helpText: "Accessibility attributes (ARIA labels, roles)"
      }
    }
  },
  dashboard: {
    label: "Dashboard",
    sections: {
      basics: {
        label: "Basics",
        description: "Dashboard identity and description."
      },
      layout: {
        label: "Layout",
        description: "Grid sizing and refresh cadence."
      },
      widgets: {
        label: "Widgets",
        description: "Cards and charts placed on the grid."
      },
      filters: {
        label: "Filters",
        description: "Default and global filters applied across widgets."
      },
      advanced: {
        label: "Advanced",
        description: "Accessibility and performance tuning."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case unique identifier"
      },
      label: {
        label: "Label",
        helpText: "Display name"
      },
      description: {
        label: "Description"
      },
      columns: {
        label: "Columns",
        helpText: "Grid columns (default 12)"
      },
      gap: {
        label: "Gap",
        helpText: "Grid gap (Tailwind units)"
      },
      refreshInterval: {
        label: "Refresh Interval",
        helpText: "Auto-refresh (seconds)"
      },
      header: {
        label: "Header",
        helpText: "Dashboard header config (title, subtitle, actions)"
      },
      widgets: {
        label: "Widgets",
        helpText: "Dashboard widgets with position and sizing"
      },
      dateRange: {
        label: "Date Range",
        helpText: "Default date range selector"
      },
      globalFilters: {
        label: "Global Filters",
        helpText: "Filters applied to all widgets"
      },
      aria: {
        label: "Aria",
        helpText: "Accessibility labels"
      },
      performance: {
        label: "Performance",
        helpText: "Caching and optimization config"
      }
    }
  },
  app: {
    label: "Application",
    sections: {
      basics: {
        label: "Basics",
        description: "App identity and activation."
      },
      navigation: {
        label: "Navigation",
        description: "Sidebar items and area grouping."
      },
      content: {
        label: "Content",
        description: "Objects and APIs this app uses."
      },
      branding: {
        label: "Branding",
        description: "Theme colors and logo."
      },
      access_and_sharing: {
        label: "Access & sharing",
        description: "Who can access this app and how it can be embedded."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case, unique"
      },
      label: {
        label: "Label"
      },
      description: {
        label: "Description"
      },
      version: {
        label: "Version"
      },
      icon: {
        label: "Icon",
        helpText: "Lucide icon name (e.g. \"users\", \"briefcase\")"
      },
      active: {
        label: "Active"
      },
      isDefault: {
        label: "Is Default",
        helpText: "Make this the default app for new users"
      },
      navigation: {
        label: "Navigation",
        helpText: "Nav tree — recursive structure"
      },
      areas: {
        label: "Areas",
        helpText: "Group items into collapsible areas"
      },
      homePageId: {
        label: "Home Page Id",
        helpText: "Landing page when app opens"
      },
      mobileNavigation: {
        label: "Mobile Navigation",
        helpText: "Bottom tab bar config for mobile"
      },
      objects: {
        label: "Objects",
        helpText: "Object names this app exposes"
      },
      apis: {
        label: "Apis",
        helpText: "API endpoint definitions"
      },
      defaultAgent: {
        label: "Default Agent",
        helpText: "AI agent for the ambient assistant button"
      },
      branding: {
        label: "Branding",
        helpText: "Primary/secondary colors, logo, theme"
      },
      requiredPermissions: {
        label: "Required Permissions",
        helpText: "Permissions needed to access this app"
      },
      sharing: {
        label: "Sharing",
        helpText: "Public/internal/restricted access control"
      },
      embed: {
        label: "Embed",
        helpText: "iFrame embed configuration"
      },
      aria: {
        label: "Aria",
        helpText: "Accessibility labels"
      }
    }
  },
  action: {
    label: "Action",
    sections: {
      basics: {
        label: "Basics",
        description: "Action identity and presentation."
      },
      behavior: {
        label: "Behavior",
        description: "Configure what happens when the action is triggered."
      },
      placement: {
        label: "Placement",
        description: "Where and when the action button appears."
      },
      advanced: {
        label: "Advanced",
        description: "Bulk operations, AI exposure, and API request shape."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Button text shown to users"
      },
      objectName: {
        label: "Object Name",
        helpText: "Object this action belongs to (optional)"
      },
      icon: {
        label: "Icon",
        helpText: "Lucide icon name (e.g., \"check\", \"x-circle\")"
      },
      type: {
        label: "Type",
        helpText: "What happens when clicked"
      },
      variant: {
        label: "Variant",
        helpText: "Button style (primary=blue, danger=red, ghost=transparent)"
      },
      target: {
        label: "Target",
        helpText: "URL, flow name, or API endpoint to call"
      },
      method: {
        label: "Method",
        helpText: "HTTP method (GET, POST, PUT, DELETE)"
      },
      body: {
        label: "Body",
        helpText: "JavaScript code to execute"
      },
      params: {
        label: "Params",
        helpText: "User input parameters (show form before executing)"
      },
      confirmText: {
        label: "Confirm Text",
        helpText: "Confirmation message (e.g., \"Are you sure?\")"
      },
      successMessage: {
        label: "Success Message",
        helpText: "Success message after completion"
      },
      refreshAfter: {
        label: "Refresh After",
        helpText: "Refresh the list/page after action completes"
      },
      locations: {
        label: "Locations",
        helpText: "Where to show this action (toolbar, row menu, etc.)"
      },
      component: {
        label: "Component",
        helpText: "How to render (button, icon, menu item)"
      },
      visible: {
        label: "Visible",
        helpText: "CEL expression: show only when condition is true"
      },
      disabled: {
        label: "Disabled",
        helpText: "CEL expression: disable when condition is true"
      },
      shortcut: {
        label: "Shortcut",
        helpText: "Keyboard shortcut (e.g., \"Ctrl+S\", \"Cmd+Enter\")"
      },
      bulkEnabled: {
        label: "Bulk Enabled",
        helpText: "Allow applying to multiple selected records"
      },
      aiExposed: {
        label: "Ai Exposed",
        helpText: "Allow AI agents to call this action"
      },
      recordIdParam: {
        label: "Record Id Param",
        helpText: "Body parameter name for record ID"
      },
      recordIdField: {
        label: "Record Id Field",
        helpText: "Field to use as record ID (default: \"id\")"
      },
      bodyShape: {
        label: "Body Shape",
        helpText: "Request body structure (flat or nested)"
      }
    }
  },
  report: {
    label: "Report",
    sections: {
      basics: {
        label: "Basics",
        description: "Identity and data source."
      },
      columns: {
        label: "Columns",
        description: "Columns shown in the report output."
      },
      groupings: {
        label: "Groupings",
        description: "How rows (and columns, for matrix reports) are grouped."
      },
      joined_blocks: {
        label: "Joined blocks",
        description: "Additional blocks joined into a single report (joined reports only)."
      },
      filter_and_chart: {
        label: "Filter & chart",
        description: "Report-level filters and chart presentation."
      },
      advanced: {
        label: "Advanced",
        description: "Accessibility and performance tuning."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case unique identifier"
      },
      label: {
        label: "Label"
      },
      description: {
        label: "Description"
      },
      objectName: {
        label: "Object Name",
        helpText: "Data source object"
      },
      type: {
        label: "Type",
        helpText: "Report type: tabular/summary/matrix/joined"
      },
      columns: {
        label: "Columns",
        helpText: "Columns to display in the report"
      },
      groupingsDown: {
        label: "Groupings Down",
        helpText: "Row grouping levels"
      },
      groupingsAcross: {
        label: "Groupings Across",
        helpText: "Column grouping levels (matrix only)"
      },
      blocks: {
        label: "Blocks",
        helpText: "Join multiple objects (joined report only)"
      },
      filter: {
        label: "Filter",
        helpText: "Report-level filters"
      },
      chart: {
        label: "Chart",
        helpText: "Chart config (type, legend, colors)"
      },
      aria: {
        label: "Aria",
        helpText: "Accessibility labels"
      },
      performance: {
        label: "Performance",
        helpText: "Caching and optimization"
      }
    }
  },
  flow: {
    label: "Flow",
    sections: {
      basics: {
        label: "Basics",
        description: "Flow identity and how it starts."
      },
      canvas: {
        label: "Canvas",
        description: "Nodes, edges, and flow variables — consider the visual designer for complex flows."
      },
      execution: {
        label: "Execution",
        description: "Deployment status, identity, and error handling."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display name for users"
      },
      type: {
        label: "Type",
        helpText: "How the flow starts (autolaunched, record_change, schedule, screen, api)"
      },
      template: {
        label: "Template",
        helpText: "Is this a reusable subflow (can be called from other flows)"
      },
      description: {
        label: "Description",
        helpText: "What this flow does"
      },
      nodes: {
        label: "Nodes",
        helpText: "⚠️ Consider using Flow Designer visual editor instead of JSON"
      },
      edges: {
        label: "Edges",
        helpText: "Connections between nodes — use Flow Designer for easier editing"
      },
      variables: {
        label: "Variables",
        helpText: "Flow variables (inputs/outputs)"
      },
      status: {
        label: "Status",
        helpText: "Deployment status: draft → active → obsolete"
      },
      version: {
        label: "Version",
        helpText: "Version number (auto-incremented)"
      },
      runAs: {
        label: "Run As",
        helpText: "Execute as system (admin) or user (current user permissions)"
      },
      errorHandling: {
        label: "Error Handling",
        helpText: "What to do when a node fails (fail, retry, continue)"
      }
    }
  },
  job: {
    label: "Background Job"
  },
  datasource: {
    label: "Datasource"
  },
  external_catalog: {
    label: "External Catalog"
  },
  translation: {
    label: "Translation"
  },
  router: {
    label: "Router"
  },
  function: {
    label: "Function"
  },
  service: {
    label: "Service"
  },
  email_template: {
    label: "Email Template",
    sections: {
      identity: {
        label: "Identity",
        description: "Identifier and content type. The id is referenced by sendTemplate({ template: id, ... })."
      },
      subject: {
        label: "Subject",
        description: "Subject line. Supports {{var.path}} interpolation."
      },
      html_body: {
        label: "HTML body",
        description: "Rich HTML body. Most clients strip <head>, so use inline styles."
      },
      plain_text_body: {
        label: "Plain-text body",
        description: "Optional plain-text alternative. When omitted, the service strips tags from the HTML body to derive one. Providing one improves spam scoring."
      },
      variables: {
        label: "Variables",
        description: "Declared variables. Rendered as hints in Studio and validated by sendTemplate() when required."
      },
      delivery_overrides: {
        label: "Delivery overrides",
        description: "Optional per-template overrides for From / Reply-To."
      },
      status: {
        label: "Status"
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Dotted snake_case (e.g. auth.password_reset, crm.welcome)"
      },
      label: {
        label: "Label"
      },
      category: {
        label: "Category"
      },
      locale: {
        label: "Locale",
        helpText: "BCP-47 tag — e.g. en-US, zh-CN"
      },
      description: {
        label: "Description"
      },
      subject: {
        label: "Subject"
      },
      bodyHtml: {
        label: "Body Html"
      },
      bodyText: {
        label: "Body Text"
      },
      variables: {
        label: "Variables",
        helpText: "List of variable names referenced in subject/body"
      },
      fromOverride: {
        label: "From Override",
        helpText: "{ \"name\": \"Acme Sales\", \"address\": \"sales@acme.com\" }"
      },
      replyTo: {
        label: "Reply To",
        helpText: "Reply-To email address"
      },
      active: {
        label: "Active",
        helpText: "When unchecked, sendTemplate() returns TEMPLATE_INACTIVE."
      },
      isSystem: {
        label: "Is System",
        helpText: "Built-in template; tenants may override but should not delete."
      }
    }
  },
  permission: {
    label: "Permission Set",
    sections: {
      identity: {
        label: "Identity",
        description: "Permission Sets stack on top of a Profile to grant additional access. Profiles are the base set assigned 1:1 to each user."
      },
      system_permissions: {
        label: "System Permissions",
        description: "High-level capabilities not tied to a specific object — e.g. manage_users, view_audit_logs."
      },
      object_and_field_permissions: {
        label: "Object & Field Permissions",
        description: "Per-object CRUD + per-field FLS. Edit via the matrix editor or paste JSON here."
      },
      tab_and_row_level_security: {
        label: "Tab & Row-Level Security",
        description: "Tab visibility, RLS policies, and custom context variables for predicate evaluation."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Machine name (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display label for admins"
      },
      isProfile: {
        label: "Is Profile",
        helpText: "Profile = base set assigned to users. Permission Set = additive grant."
      },
      systemPermissions: {
        label: "System Permissions",
        helpText: "List of system capability keys"
      },
      objects: {
        label: "Objects",
        helpText: "{ \"account\": { allowRead: true, allowEdit: true, ... } }"
      },
      fields: {
        label: "Fields",
        helpText: "{ \"account.amount\": { readable: true, editable: false } }"
      },
      tabPermissions: {
        label: "Tab Permissions",
        helpText: "{ \"app_crm\": \"visible\", \"app_admin\": \"hidden\" }"
      },
      rowLevelSecurity: {
        label: "Row Level Security",
        helpText: "Array of RLS policies (see rls.zod.ts)"
      },
      contextVariables: {
        label: "Context Variables",
        helpText: "Custom variables referenced in RLS predicates"
      }
    }
  },
  profile: {
    label: "Profile",
    sections: {
      identity: {
        label: "Identity",
        description: "Permission Sets stack on top of a Profile to grant additional access. Profiles are the base set assigned 1:1 to each user."
      },
      system_permissions: {
        label: "System Permissions",
        description: "High-level capabilities not tied to a specific object — e.g. manage_users, view_audit_logs."
      },
      object_and_field_permissions: {
        label: "Object & Field Permissions",
        description: "Per-object CRUD + per-field FLS. Edit via the matrix editor or paste JSON here."
      },
      tab_and_row_level_security: {
        label: "Tab & Row-Level Security",
        description: "Tab visibility, RLS policies, and custom context variables for predicate evaluation."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Machine name (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display label for admins"
      },
      isProfile: {
        label: "Is Profile",
        helpText: "Profile = base set assigned to users. Permission Set = additive grant."
      },
      systemPermissions: {
        label: "System Permissions",
        helpText: "List of system capability keys"
      },
      objects: {
        label: "Objects",
        helpText: "{ \"account\": { allowRead: true, allowEdit: true, ... } }"
      },
      fields: {
        label: "Fields",
        helpText: "{ \"account.amount\": { readable: true, editable: false } }"
      },
      tabPermissions: {
        label: "Tab Permissions",
        helpText: "{ \"app_crm\": \"visible\", \"app_admin\": \"hidden\" }"
      },
      rowLevelSecurity: {
        label: "Row Level Security",
        helpText: "Array of RLS policies (see rls.zod.ts)"
      },
      contextVariables: {
        label: "Context Variables",
        helpText: "Custom variables referenced in RLS predicates"
      }
    }
  },
  role: {
    label: "Role",
    sections: {
      role: {
        label: "Role",
        description: "Roles compose a hierarchy used for record sharing (sales VP → sales mgr → sales rep). Permissions themselves live on Permission Sets and Profiles."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "snake_case"
      },
      label: {
        label: "Label"
      },
      parent: {
        label: "Parent",
        helpText: "Parent role machine name (Reports To)"
      },
      description: {
        label: "Description"
      }
    }
  },
  agent: {
    label: "AI Agent",
    sections: {
      identity: {
        label: "Identity",
        description: "How users see and reference this agent."
      },
      ai_configuration: {
        label: "AI Configuration",
        description: "Model selection, instructions, planning, and memory."
      },
      capabilities: {
        label: "Capabilities",
        description: "Skills, tools, and knowledge sources the agent can use."
      },
      access: {
        label: "Access & Security",
        description: "Who can use this agent and what safeguards apply."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display name (e.g., \"Sales Assistant\")"
      },
      role: {
        label: "Role",
        helpText: "Agent persona (e.g., \"Customer Support Specialist\")"
      },
      avatar: {
        label: "Avatar",
        helpText: "Avatar image URL"
      },
      active: {
        label: "Active",
        helpText: "Enable/disable this agent"
      },
      instructions: {
        label: "Instructions",
        helpText: "System prompt — tell the agent how to behave and what it can do"
      },
      model: {
        label: "Model",
        helpText: "AI model configuration (provider, model name, temperature, etc.)"
      },
      planning: {
        label: "Planning",
        helpText: "Autonomous reasoning configuration (strategy, max iterations, replan)"
      },
      memory: {
        label: "Memory",
        helpText: "Memory management (short-term, long-term, reflection)"
      },
      lifecycle: {
        label: "Lifecycle",
        helpText: "State machine defining conversation flow"
      },
      skills: {
        label: "Skills",
        helpText: "Skill names (Agent→Skill→Tool architecture)"
      },
      tools: {
        label: "Tools",
        helpText: "Direct tool references (legacy mode)"
      },
      knowledge: {
        label: "Knowledge",
        helpText: "RAG knowledge access configuration"
      },
      visibility: {
        label: "Visibility",
        helpText: "Scope: global, organization, or private"
      },
      access: {
        label: "Access",
        helpText: "User IDs or role names who can chat with this agent"
      },
      permissions: {
        label: "Permissions",
        helpText: "Required permissions to use this agent"
      },
      tenantId: {
        label: "Tenant Id",
        helpText: "Restrict to specific organization ID"
      },
      guardrails: {
        label: "Guardrails",
        helpText: "Safety rules and content policies"
      }
    }
  },
  tool: {
    label: "AI Tool",
    sections: {
      basics: {
        label: "Basics",
        description: "Tool identity and AI-facing description."
      },
      schemas: {
        label: "Schemas",
        description: "Inputs the tool accepts and the shape of its output."
      },
      access_and_safety: {
        label: "Access & safety",
        description: "Permissions and confirmation requirements."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display name for Studio UI"
      },
      description: {
        label: "Description",
        helpText: "Tell AI when to use this tool — be specific!"
      },
      category: {
        label: "Category",
        helpText: "Tool category (data, action, flow, integration, etc.)"
      },
      objectName: {
        label: "Object Name",
        helpText: "Related object (if this tool operates on a specific object)"
      },
      active: {
        label: "Active",
        helpText: "Enable/disable this tool"
      },
      builtIn: {
        label: "Built In",
        helpText: "Platform built-in tool (vs user-defined)"
      },
      parameters: {
        label: "Parameters",
        helpText: "Input parameters — define properties like: {name: {type: \"string\", description: \"...\"}}"
      },
      outputSchema: {
        label: "Output Schema",
        helpText: "Output schema for validation (optional)"
      },
      requiresConfirmation: {
        label: "Requires Confirmation",
        helpText: "Ask user to approve before executing (for destructive actions)"
      },
      permissions: {
        label: "Permissions",
        helpText: "Required permissions to use this tool"
      }
    }
  },
  skill: {
    label: "AI Skill",
    sections: {
      basics: {
        label: "Basics",
        description: "Skill identity and human-readable description."
      },
      ai_instructions: {
        label: "AI Instructions",
        description: "How the agent should reason with this skill."
      },
      triggers: {
        label: "Triggers",
        description: "When this skill should activate."
      },
      access: {
        label: "Access",
        description: "Required permissions to use this skill."
      }
    },
    fields: {
      name: {
        label: "Name",
        helpText: "Unique identifier (snake_case)"
      },
      label: {
        label: "Label",
        helpText: "Display name (e.g., \"Case Management\")"
      },
      description: {
        label: "Description",
        helpText: "What this skill does"
      },
      active: {
        label: "Active",
        helpText: "Enable/disable this skill"
      },
      instructions: {
        label: "Instructions",
        helpText: "Instructions for AI — tell it how to use these tools together"
      },
      tools: {
        label: "Tools",
        helpText: "Tool names (supports wildcard: action_*)"
      },
      triggerPhrases: {
        label: "Trigger Phrases",
        helpText: "Natural language phrases that activate this skill"
      },
      triggerConditions: {
        label: "Trigger Conditions",
        helpText: "Programmatic conditions (e.g., objectName == \"case\")"
      },
      permissions: {
        label: "Permissions",
        helpText: "Required permissions to use this skill"
      }
    }
  }
};
