> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getoneprofile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reorder table columns

> Reorder a table's columns. The request must contain every column of the table exactly once. Cosmetic — no version bumps and no recompute run.



## OpenAPI

````yaml /openapi.json post /tables/{table_id}/columns/reorder/
openapi: 3.1.0
info:
  contact:
    email: support@getoneprofile.ai
    name: Oneprofile Support
  description: >-
    REST API reference for Oneprofile, the GTM data layer for your CRM. Manage
    tables, enrichments, and integrations. Authenticate with an API key to get
    started.
  termsOfService: https://www.getoneprofile.ai/terms
  title: API Reference | Oneprofile
  version: '0.0'
servers:
  - url: https://api.getoneprofile.ai
security: []
tags:
  - description: Sender profiles, connected mailboxes, tags, and the Google connect flow.
    name: senders
  - description: The workspace do-not-contact list, enforced before every send.
    name: suppression
  - description: 'Sequence authoring: the graph, the table-backed audience, previews.'
    name: sequences
  - description: >-
      The LinkedIn channel: connecting an account to a sender, its safety limits
      and history, and the protocol the browser extension speaks.
    name: linkedin
  - description: 'The unified outreach inbox: threads, replies, labels, events.'
    name: inbox
  - description: 'The AI reply layer: workspace settings, drafts, and approval.'
    name: inbox-ai
  - description: Notification rules, per-user preferences, and the Slack connection.
    name: notifications
  - description: Endpoints for seeing all available integration types.
    name: integration-types
  - description: Endpoints for creating and managing integrations.
    name: integrations
  - description: Endpoints for the generic OAuth install/claim app-listings engine.
    name: app-listings
  - description: Endpoints for creating and managing API keys.
    name: apikey
  - description: Endpoints for managing billing and subscription information.
    name: billing
  - description: Endpoints for creating and managing tables.
    name: tables
  - description: Endpoints for table columns, formula previews, and on-demand column runs.
    name: table-columns
  - description: Endpoints for table rows and manual cell edits.
    name: table-rows
  - description: Endpoints for observing and cancelling table recompute runs.
    name: table-runs
  - description: >-
      Endpoints for org-shared per-column display preferences: hidden, pinned,
      width, and colour tint.
    name: table-ui-prefs
  - description: >-
      Endpoints for the org-shared names given to the column tint palette: what
      this organisation calls each colour. Org-level, not per-table.
    name: table-column-color-labels
  - description: >-
      Endpoints for the enrichment action catalog, model list, presets, draft
      generation, and saved agents.
    name: table-enrichments
  - description: >-
      Endpoints for teaching a saved agent from example rows: training sessions,
      per-row feedback, and the proposed prompt to approve.
    name: agent-training
  - description: >-
      The durable audit trail of a table's enrichment actions: configured,
      edited, run, cancelled, and settled cost.
    name: table-enrichment-audit-logs
  - description: Endpoints for saving and applying column templates.
    name: table-templates
  - description: Server-sent change feed for a table's grid.
    name: table-events
  - description: 'Endpoints for org-shared saved table views: sort, filters, hidden columns.'
    name: table-views
  - description: >-
      The per-table AI Assistant: named conversations, the column suggestions a
      build turn produces, and the questions an analyze turn answers.
    name: table-assistant
  - description: >-
      Endpoints for PER-USER table preferences: favourites and recently opened.
      Unlike the rest of the table surface these are personal, so two members of
      one organisation legitimately see different answers.
    name: table-user-prefs
  - description: >-
      Endpoints for building a table from an uploaded CSV: upload and preview
      the inferred columns, commit the reviewed mapping, then poll the row load.
    name: table-imports
  - description: Endpoint for downloading a table's rows as CSV.
    name: table-export
  - description: >-
      Endpoints for the integration a table imports from: attach and preview it,
      promote imported fields into columns, and run the import on demand.
    name: table-sources
  - description: >-
      Endpoints for a table's recurring import cadence: set it, pause it, and
      read the next fire times.
    name: table-schedules
  - description: >-
      Endpoints for pushing a table's rows out to a connected integration: list
      writable destinations, derive their write capabilities, and map export
      columns.
    name: table-writeback
  - description: >-
      Endpoints backing a lookup column's setup: the connections whose records a
      column could read, and the identity fields one record type can be looked
      up by.
    name: table-integration-lookup
  - description: >-
      Endpoints for sourcing leads from the lead database: count and preview
      matches, land them in a table, and keep saved searches.
    name: find-leads
  - description: >-
      Endpoints for discovering a domain's subdomains from public certificate
      logs and landing the results in a table.
    name: find-subdomains
  - description: Endpoints for the credit balance meter and usage reporting.
    name: credits
  - description: >-
      Endpoints for the workspace referral program: the shareable link, the
      friends who joined through it, and claiming a code after signup.
    name: referral
  - description: >-
      Endpoints for the design partner program's customer surface: whether this
      workspace is a design partner, the badges its feedback has earned, and
      sending and reading that feedback.
    name: design-partner
  - description: >-
      Endpoints for the org-level AI business context — company description,
      ideal customer profile, buyer personas and interest signals — plus
      domain-based generation.
    name: ai-context
paths:
  /tables/{table_id}/columns/reorder/:
    post:
      tags:
        - table-columns
      summary: Reorder table columns
      description: >-
        Reorder a table's columns. The request must contain every column of the
        table exactly once. Cosmetic — no version bumps and no recompute run.
      operationId: reorder_table_columns
      parameters:
        - in: path
          name: table_id
          required: true
          schema:
            format: uuid
            title: Table Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableColumnReorderRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableColumnListResponseSchema'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Table not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Invalid request made to the API.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Internal server error.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Bad gateway error.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
        - HTTPBearer: []
        - APIKeyHeader: []
components:
  schemas:
    TableColumnReorderRequestSchema:
      description: Request body for reordering a table's columns (full permutation).
      properties:
        column_ids:
          description: Every column of the table exactly once, in the new display order.
          items:
            format: uuid
            type: string
          maxItems: 100
          minItems: 1
          title: Column Ids
          type: array
      required:
        - column_ids
      title: TableColumnReorderRequestSchema
      type: object
    TableColumnListResponseSchema:
      description: A table's columns in position order (non-paginated by design).
      properties:
        columns:
          items:
            $ref: '#/components/schemas/TableColumnWithUIPrefsSchema'
          title: Columns
          type: array
        groups:
          description: The table's column groups, membership resolved in position order.
          items:
            $ref: '#/components/schemas/TableColumnGroupReadSchema'
          title: Groups
          type: array
        total_count:
          title: Total Count
          type: integer
      required:
        - columns
        - total_count
      title: TableColumnListResponseSchema
      type: object
    UnauthorizedResponse:
      properties:
        detail:
          description: The detail of why the request is unauthorized.
          title: Detail
          type: string
      required:
        - detail
      title: UnauthorizedResponse
      type: object
    ForbiddenResponse:
      properties:
        detail:
          description: The detail of why the request is forbidden.
          title: Detail
          type: string
      required:
        - detail
      title: ForbiddenResponse
      type: object
    NotFoundResponse:
      properties:
        detail:
          description: The detail of why the resource was not found.
          title: Detail
          type: string
      required:
        - detail
      title: NotFoundResponse
      type: object
    UnprocessableEntityResponse:
      properties:
        detail:
          description: >-
            The detail of the error. This is the error message to show to the
            user. You should also use the issues field to show more detailed
            error messages per field. Use this field for a single liner error
            message.
          title: Detail
          type: string
        issues:
          description: >-
            The issues that caused the error. There can be multiple issues. Each
            issue is a user-facing error message.
          items:
            $ref: '#/components/schemas/UnprocessableEntityIssue'
          title: Issues
          type: array
      required:
        - detail
        - issues
      title: UnprocessableEntityResponse
      type: object
    ServerErrorResponse:
      properties:
        detail:
          description: The detail of why the server returned an error.
          title: Detail
          type: string
      required:
        - detail
      title: ServerErrorResponse
      type: object
    TableColumnWithUIPrefsSchema:
      description: >-
        A column plus its org-shared display preferences.


        Only the list payloads carry preferences: they are the ones the grid
        renders

        from. Create and update responses stay on the bare read schema rather
        than

        advertising a preferences object they did not fetch.
      properties:
        auto_run:
          default: true
          description: >-
            Whether data changes recompute this column by themselves; explicit
            runs ignore it.
          title: Auto Run
          type: boolean
        column_type:
          $ref: '#/components/schemas/TableColumnType'
          description: The semantic type; what the cell renders and validates as.
        created_at:
          format: date-time
          title: Created At
          type: string
        data_type:
          $ref: '#/components/schemas/PropertyType'
          description: >-
            The storage type `column_type` resolves to, and so which typed value
            slot the cells live in. Derived, never chosen.
        definition:
          $ref: '#/components/schemas/TableColumnDefinition-Output'
          description: The stored definition, verbatim.
        definition_version:
          description: Bumped on definition changes; cosmetic edits leave it untouched.
          title: Definition Version
          type: integer
        depends_on_column_ids:
          description: Direct chain inputs; empty for manual columns.
          items:
            format: uuid
            type: string
          title: Depends On Column Ids
          type: array
        description:
          anyOf:
            - type: string
            - type: 'null'
          description: Author-written note on what the column holds; null when unset.
          title: Description
        display_name:
          title: Display Name
          type: string
        group_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: >-
            The column group this column belongs to, or null. Groups are
            user-managed entities delivered on the column list's `groups`; this
            field is the membership edge, and the members' order is simply the
            columns' position order.
          title: Group Id
        id:
          format: uuid
          title: Id
          type: string
        is_group_output:
          description: >-
            Whether this member stays visible while its group is collapsed.
            Meaningful only while `group_id` is set. Every group keeps at least
            one output.
          title: Is Group Output
          type: boolean
        kind:
          $ref: '#/components/schemas/TableColumnKind'
        pending_recompute:
          default: false
          description: >-
            The definition has changed since these cells were last computed, so
            they are stale. Set by a save made with `suppress_run`, cleared when
            the column next finishes a run.
          title: Pending Recompute
          type: boolean
        position:
          title: Position
          type: integer
        refresh_interval_hours:
          default: 0
          description: Self re-run cadence in hours; 0 is off.
          title: Refresh Interval Hours
          type: integer
        run_condition:
          anyOf:
            - $ref: '#/components/schemas/TableColumnDefinition-Output'
            - type: 'null'
          description: The per-row gate, verbatim; null runs every row.
        run_delay_seconds:
          default: 0
          description: Pre-run wait in seconds; 0 runs immediately.
          title: Run Delay Seconds
          type: integer
        supported_filter_operators:
          description: >-
            Every filter operator this column admits, in display order. The
            server owns the list so a picker cannot offer a pairing the rows
            query will reject: value operators follow the storage slot, and a
            computed column additionally admits the execution-state family (has
            an error, has results, has not run, is stale, ...), which reads run
            metadata a manual column never writes.
          items:
            $ref: '#/components/schemas/TableFilterOperator'
          title: Supported Filter Operators
          type: array
        table_id:
          format: uuid
          title: Table Id
          type: string
        type_options:
          anyOf:
            - $ref: '#/components/schemas/TableColumnTypeOptions-Output'
            - type: 'null'
          description: Per-type options; null means the type's defaults.
        ui_prefs:
          $ref: '#/components/schemas/TableColumnUIPrefsSchema'
          description: >-
            How the column is displayed; all-defaults when nothing is
            customised.
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - table_id
        - display_name
        - description
        - definition
        - kind
        - column_type
        - type_options
        - data_type
        - depends_on_column_ids
        - group_id
        - is_group_output
        - supported_filter_operators
        - definition_version
        - position
        - created_at
        - updated_at
        - ui_prefs
      title: TableColumnWithUIPrefsSchema
      type: object
    TableColumnGroupReadSchema:
      description: A user-managed column group, membership resolved in position order.
      properties:
        collapsed:
          description: >-
            Whether the grid folds the group down to its output members. Purely
            presentational: folded members' cells are still fetched, so
            expanding costs nothing.
          title: Collapsed
          type: boolean
        created_at:
          format: date-time
          title: Created At
          type: string
        id:
          format: uuid
          title: Id
          type: string
        members:
          description: The member columns in position order, with their output flags.
          items:
            $ref: '#/components/schemas/TableColumnGroupMemberSchema'
          title: Members
          type: array
        name:
          anyOf:
            - type: string
            - type: 'null'
          description: The group's name; null renders the client default label.
          title: Name
        table_id:
          format: uuid
          title: Table Id
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - table_id
        - name
        - collapsed
        - members
        - created_at
        - updated_at
      title: TableColumnGroupReadSchema
      type: object
    UnprocessableEntityIssue:
      properties:
        input:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - items: {}
              type: array
            - additionalProperties: true
              type: object
          description: The user's input that caused the error.
          title: Input
        loc:
          description: >-
            The location of the error. Always contains 1 or 2 elements. The
            first element is the type of location (e.g. 'body', 'query', 'path',
            'header'). The second element is the name of the field that caused
            the error. If the error is not related to a specific field, the
            second element is not present.
          items:
            type: string
          title: Loc
          type: array
        msg:
          description: The message of the error. The error message to show to the user.
          title: Msg
          type: string
        type:
          description: >-
            The type of the error. Useful for frontend code to handle different
            types of errors.
          title: Type
          type: string
      required:
        - loc
        - msg
        - type
        - input
      title: UnprocessableEntityIssue
      type: object
    TableColumnType:
      description: >-
        The type a user picks for a table column.


        Ordered as the picker shows them, which is also the order the groups
        below

        run in: text-ish, then numeric, then choice, then structured.
      enum:
        - text
        - paragraph
        - url
        - email
        - image_url
        - person
        - select
        - number
        - decimal
        - currency
        - checkbox
        - date
        - multi_select
        - list
        - object
      title: TableColumnType
      type: string
    PropertyType:
      description: Type of a property. Used while creating/updating/deleting properties.
      enum:
        - string
        - integer
        - float
        - boolean
        - datetime
        - date
        - list
        - dict
      title: PropertyType
      type: string
    TableColumnDefinition-Output:
      description: >-
        Discriminated union of column definitions.


        A ``RootModel`` is required because ``PydanticJSON`` needs a
        ``BaseModel``

        subclass to (de)serialize the stored JSON. Consumers always access the

        concrete member via ``.root``.
      discriminator:
        mapping:
          enrichment:
            $ref: '#/components/schemas/EnrichmentColumnDefinition-Output'
          export:
            $ref: '#/components/schemas/ExportColumnDefinition-Output'
          formula:
            $ref: '#/components/schemas/FormulaColumnDefinition-Output'
          manual:
            $ref: '#/components/schemas/ManualColumnDefinition'
          sequence:
            $ref: '#/components/schemas/SequenceColumnDefinition'
          source:
            $ref: '#/components/schemas/SourceColumnDefinition'
        propertyName: kind
      oneOf:
        - $ref: '#/components/schemas/ManualColumnDefinition'
        - $ref: '#/components/schemas/FormulaColumnDefinition-Output'
        - $ref: '#/components/schemas/EnrichmentColumnDefinition-Output'
        - $ref: '#/components/schemas/SourceColumnDefinition'
        - $ref: '#/components/schemas/ExportColumnDefinition-Output'
        - $ref: '#/components/schemas/SequenceColumnDefinition'
      title: TableColumnDefinition
    TableColumnKind:
      description: >-
        Kind of a table column.


        ``MANUAL`` cells are user-editable; ``FORMULA`` cells are a pure
        computed

        chain over other columns; ``ENRICHMENT`` cells are produced by an
        external

        action (an AI model, a research agent) run once per row. Formula and

        enrichment cells are both computed — read-only in the grid — but only

        enrichment work leaves the process and costs credits.


        ``SOURCE`` cells hold one imported record verbatim, written only by the

        table's import source. Like ``MANUAL`` it is an externally-written leaf

        rather than a computed node — it joins no run plan and derives from no

        other column — but unlike ``MANUAL`` nobody may edit or retype it: the

        whole point is that a refresh can overwrite it wholesale, and every

        ``get_path`` column promoted off it reads paths that only survive while

        its shape does.


        ``EXPORT`` cells hold the RECEIPT of pushing the row to a connected

        destination — status, the destination record id, when it happened —
        never

        the row's own data. The mirror image of ``SOURCE``: where a source
        column

        is an externally-written leaf, an export column is an externally-READ

        leaf. It joins the run plan like a computed column (its mappings are

        dependencies, so a changed input re-pushes) but nothing may depend on it

        in turn, nobody may edit it (a hand-edited receipt would silently pin
        the

        row out of future pushes), and re-running it means "push again", not

        "re-answer".


        ``SEQUENCE`` cells hold a contact's live status in an email sequence,

        written by the outreach send engine and nobody else: an
        externally-written

        leaf — no run plan, no dependencies, no user edits, no retyping — and,

        like ``EXPORT`` receipts, nothing may reference it in a formula: the

        status only exists to be looked at, never derived from. The column is

        created by the sequence that targets the table, not from the add-column

        catalog.
      enum:
        - manual
        - formula
        - enrichment
        - source
        - export
        - sequence
      title: TableColumnKind
      type: string
    TableFilterOperator:
      description: >-
        A row filter predicate.


        Which operators are legal depends on the column's data type; the service

        validates the pairing and rejects a mismatch, so an operator here is a

        vocabulary entry rather than a promise it applies everywhere.


        Two families live here. The VALUE operators ask about what a cell holds
        and

        are keyed off the column's storage slot. The STATE operators ask about
        what

        the last run DID to the cell — errored, skipped, never ran, went stale —
        and

        are keyed off the column's kind instead: they read the compute metadata
        that

        only a computed column ever writes, and mean nothing on a hand-typed
        one.
      enum:
        - eq
        - neq
        - gt
        - gte
        - lt
        - lte
        - contains
        - not_contains
        - contains_any_of
        - not_contains_any_of
        - starts_with
        - is_true
        - is_false
        - is_empty
        - is_not_empty
        - has_error
        - has_no_error
        - has_results
        - has_no_results
        - has_not_run
        - is_stale
        - is_not_stale
        - run_condition_not_met
        - run_stopped
      title: TableFilterOperator
      type: string
    TableColumnTypeOptions-Output:
      description: >-
        Discriminated union of per-type column options.


        Mirrors ``TableColumnDefinition``: a ``RootModel`` because
        ``PydanticJSON``

        needs a ``BaseModel`` subclass to (de)serialize the stored JSON,
        discriminated

        on the field that names the member. Consumers reach the concrete member

        through ``.root``.


        Types absent from the union simply have no options — the stored column
        is

        NULL, meaning "whatever the defaults are now". Defaults are never
        written

        into rows.
      discriminator:
        mapping:
          currency:
            $ref: '#/components/schemas/CurrencyOptions'
          decimal:
            $ref: '#/components/schemas/DecimalOptions'
          multi_select:
            $ref: '#/components/schemas/MultiSelectOptions'
          select:
            $ref: '#/components/schemas/SelectOptions'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/SelectOptions'
        - $ref: '#/components/schemas/MultiSelectOptions'
        - $ref: '#/components/schemas/CurrencyOptions'
        - $ref: '#/components/schemas/DecimalOptions'
      title: TableColumnTypeOptions
    TableColumnUIPrefsSchema:
      description: >-
        How one column is displayed, shared by everyone in the organisation.


        Always present on a column, whether or not anything has been customised
        —

        a column nobody has touched reports the defaults rather than null.
      properties:
        color:
          anyOf:
            - $ref: '#/components/schemas/TableColumnUIColor'
            - type: 'null'
          description: >-
            Semantic palette token the client maps per theme; null means
            untinted.
        hidden:
          description: Whether the grid omits the column; its cell values are untouched.
          title: Hidden
          type: boolean
        pinned:
          description: >-
            Whether the column is frozen to the left edge through horizontal
            scroll.
          title: Pinned
          type: boolean
        width:
          anyOf:
            - type: integer
            - type: 'null'
          description: Rendered width in pixels; null means the client default.
          title: Width
      required:
        - hidden
        - pinned
        - width
        - color
      title: TableColumnUIPrefsSchema
      type: object
    TableColumnGroupMemberSchema:
      description: One group member with its output flag, in the group's display order.
      properties:
        column_id:
          format: uuid
          title: Column Id
          type: string
        is_output:
          description: Whether this member stays visible while the group is collapsed.
          title: Is Output
          type: boolean
      required:
        - column_id
        - is_output
      title: TableColumnGroupMemberSchema
      type: object
    EnrichmentColumnDefinition-Output:
      description: >-
        Definition of an enrichment column: an external action run once per row.


        The action is named by its registry key; everything the action needs to
        run

        (its prompt, model, output shape, settings) grows on this member rather

        than on the column row, so the definition-version snapshot covers all of

        it.
      properties:
        action_key:
          description: The enrichment action's registry key; validated against the catalog.
          maxLength: 100
          minLength: 1
          title: Action Key
          type: string
        action_settings:
          anyOf:
            - discriminator:
                mapping:
                  agent:
                    $ref: '#/components/schemas/AgentSettings'
                  builtin:
                    $ref: '#/components/schemas/BuiltinAgentSettings'
                  dev_echo:
                    $ref: '#/components/schemas/DevEchoSettings'
                  dev_flaky:
                    $ref: '#/components/schemas/DevFlakySettings'
                  enrichment:
                    $ref: '#/components/schemas/EnrichmentSettings'
                  http_api:
                    $ref: '#/components/schemas/HttpApiSettings'
                  http_api_jwt:
                    $ref: '#/components/schemas/HttpApiJwtSettings'
                  integration_lookup:
                    $ref: '#/components/schemas/IntegrationLookupSettings'
                  lookup:
                    $ref: '#/components/schemas/LookupSettings'
                  outreach_activity:
                    $ref: '#/components/schemas/OutreachActivitySettings'
                  provider:
                    $ref: '#/components/schemas/ProviderSettings'
                  rep_data:
                    $ref: '#/components/schemas/RepDataSettings'
                  send_to_table:
                    $ref: '#/components/schemas/SendToTableSettings'
                  use_ai:
                    $ref: '#/components/schemas/UseAISettings'
                propertyName: kind
              oneOf:
                - $ref: '#/components/schemas/UseAISettings'
                - $ref: '#/components/schemas/BuiltinAgentSettings'
                - $ref: '#/components/schemas/AgentSettings'
                - $ref: '#/components/schemas/DevEchoSettings'
                - $ref: '#/components/schemas/DevFlakySettings'
                - $ref: '#/components/schemas/EnrichmentSettings'
                - $ref: '#/components/schemas/ProviderSettings'
                - $ref: '#/components/schemas/HttpApiSettings'
                - $ref: '#/components/schemas/HttpApiJwtSettings'
                - $ref: '#/components/schemas/LookupSettings'
                - $ref: '#/components/schemas/IntegrationLookupSettings'
                - $ref: '#/components/schemas/SendToTableSettings'
                - $ref: '#/components/schemas/RepDataSettings'
                - $ref: '#/components/schemas/OutreachActivitySettings'
            - type: 'null'
          description: >-
            Action-specific configuration; its kind must match the action key.
            None uses the action's defaults.
          title: Action Settings
        kind:
          const: enrichment
          default: enrichment
          title: Kind
          type: string
        model_key:
          anyOf:
            - maxLength: 100
              type: string
            - type: 'null'
          description: >-
            The user-facing model catalog key this column runs on; None uses the
            action's default model.
          title: Model Key
        output:
          description: >-
            The declared result shape: named typed fields, or a raw strict-mode
            JSON schema in the advanced mode. The column's own type derives from
            it — the single field's type, or a structured object for multi-field
            outputs.
          discriminator:
            mapping:
              fields:
                $ref: '#/components/schemas/EnrichmentOutputFields-Output'
              json_schema:
                $ref: '#/components/schemas/EnrichmentOutputRawSchema'
            propertyName: mode
          oneOf:
            - $ref: '#/components/schemas/EnrichmentOutputFields-Output'
            - $ref: '#/components/schemas/EnrichmentOutputRawSchema'
          title: Output
        prompt:
          $ref: '#/components/schemas/EnrichmentPromptTemplate'
          description: >-
            The persisted instructions: ordered text and column-reference
            segments, references stored by column identity so renames never
            break a prompt.
      required:
        - action_key
      title: EnrichmentColumnDefinition
      type: object
    ExportColumnDefinition-Output:
      description: >-
        Definition of an export column: one row pushed to a connected
        destination.


        The cell holds the RECEIPT of that push — status, the destination record

        id, when it happened — never the row's own data (see

        ``TableColumnKind.EXPORT``). The destination integration is named by id

        plus a denormalized ``integration_type``, for the same reason

        ``table_import_integration`` denormalizes it: rendering a column must
        not need a join

        into the integration stratum.
      properties:
        action:
          $ref: '#/components/schemas/ExportWriteAction'
          default: upsert
        batched:
          default: false
          description: >-
            Write rows in destination-sized batches instead of one at a time.
            Faster, at a cost: the destination reports batch-level results, so
            receipts say 'pushed' rather than created-versus-updated, and a
            burst of writes can overwhelm automations attached to the
            destination. Off by default for that reason.
          title: Batched
          type: boolean
        fields:
          description: The destination properties written, in mapping order.
          items:
            $ref: '#/components/schemas/ExportFieldMapping-Output'
          maxItems: 200
          minItems: 1
          title: Fields
          type: array
        identity:
          description: >-
            The destination fields the row may be identified by — the match key
            that decides create-versus-update, required for every action. More
            than one is an ordered FALLBACK, not a composite key: the first
            entry that renders a non-empty value for a row is the one that row
            is matched on, and the rest are not consulted. Order them most to
            least trustworthy ('match on work email, failing that personal
            email'). Matching on two fields at once is not offered because the
            destination contract takes a single identity field.
          items:
            $ref: '#/components/schemas/ExportIdentityMapping-Output'
          maxItems: 4
          title: Identity
          type: array
        integration_id:
          description: The connected DESTINATION integration this column writes to.
          format: uuid
          title: Integration Id
          type: string
        integration_type:
          description: Provider slug, denormalized so display needs no cross-stratum join.
          maxLength: 100
          minLength: 1
          title: Integration Type
          type: string
        kind:
          const: export
          default: export
          title: Kind
          type: string
        only_on_change:
          default: true
          description: >-
            Skip a row whose outgoing payload is identical to the one last
            successfully written. The row-level idempotency knob; off, every run
            re-writes every row.
          title: Only On Change
          type: boolean
        record_type:
          description: >-
            Which destination object to write — 'contacts', 'deals', a custom
            type.
          maxLength: 255
          minLength: 1
          title: Record Type
          type: string
        remove_blanks:
          default: true
          description: >-
            Drop fields whose rendered value is empty from the outgoing payload
            rather than sending a blank. Off, a blank clears the destination
            value — a deliberate act, not a default.
          title: Remove Blanks
          type: boolean
        retry:
          $ref: '#/components/schemas/ExportRetryPolicy'
          description: Retry, timeout and rate-limit behaviour for this column's writes.
        typecast:
          default: true
          description: >-
            Coerce each rendered value into the destination property's declared
            type before writing. Off, values are sent verbatim and the
            destination's own coercion applies.
          title: Typecast
          type: boolean
        update_mode:
          default: patch
          description: >-
            replace overwrites the whole record, patch touches only the mapped
            fields, set_once writes only where the destination is empty.
            Degrades to patch at run time when the destination does not declare
            replace — the same fallback the sync export makes.
          enum:
            - replace
            - patch
            - set_once
          title: Update Mode
          type: string
      required:
        - integration_id
        - integration_type
        - record_type
        - fields
      title: ExportColumnDefinition
      type: object
    FormulaColumnDefinition-Output:
      description: >-
        Definition of a formula column: a pure-function chain over other
        columns.
      properties:
        chain:
          discriminator:
            mapping:
              arithmetic:
                $ref: '#/components/schemas/TableArithmetic-Output'
              change_case:
                $ref: '#/components/schemas/TableChangeCase-Output'
              clamp:
                $ref: '#/components/schemas/TableClamp-Output'
              coalesce:
                $ref: '#/components/schemas/TableCoalesce-Output'
              company_domain:
                $ref: '#/components/schemas/TableCompanyDomain-Output'
              concatenate:
                $ref: '#/components/schemas/TableConcatenate-Output'
              conditions:
                $ref: '#/components/schemas/TableConditions-Output'
              copy:
                $ref: '#/components/schemas/TableCopy-Output'
              date_arithmetic:
                $ref: '#/components/schemas/TableDateArithmetic-Output'
              date_diff:
                $ref: '#/components/schemas/TableDateDiff-Output'
              date_extract:
                $ref: '#/components/schemas/TableDateExtract-Output'
              date_format:
                $ref: '#/components/schemas/TableDateFormat-Output'
              detect_language:
                $ref: '#/components/schemas/TableDetectLanguage-Output'
              email_permutations:
                $ref: '#/components/schemas/TableEmailPermutations-Output'
              format:
                $ref: '#/components/schemas/TableFormat-Output'
              get_path:
                $ref: '#/components/schemas/TableGetPath-Output'
              hash:
                $ref: '#/components/schemas/TableHash-Output'
              if_then_else:
                $ref: '#/components/schemas/TableIfThenElse-Output'
              keywords:
                $ref: '#/components/schemas/TableKeywords-Output'
              list_count:
                $ref: '#/components/schemas/TableListCount-Output'
              list_filter:
                $ref: '#/components/schemas/TableListFilter-Output'
              list_first:
                $ref: '#/components/schemas/TableListFirst-Output'
              list_intersect:
                $ref: '#/components/schemas/TableListIntersect-Output'
              list_join:
                $ref: '#/components/schemas/TableListJoin-Output'
              list_last:
                $ref: '#/components/schemas/TableListLast-Output'
              list_nth:
                $ref: '#/components/schemas/TableListNth-Output'
              list_pluck:
                $ref: '#/components/schemas/TableListPluck-Output'
              list_sort:
                $ref: '#/components/schemas/TableListSort-Output'
              list_split:
                $ref: '#/components/schemas/TableListSplit-Output'
              list_unique:
                $ref: '#/components/schemas/TableListUnique-Output'
              phone_e164:
                $ref: '#/components/schemas/TablePhoneE164-Output'
              regex_extract:
                $ref: '#/components/schemas/TableRegexExtract-Output'
              regex_replace:
                $ref: '#/components/schemas/TableRegexReplace-Output'
              replace:
                $ref: '#/components/schemas/TableReplace-Output'
              round:
                $ref: '#/components/schemas/TableRound-Output'
              round_robin:
                $ref: '#/components/schemas/TableRoundRobin-Output'
              score_words:
                $ref: '#/components/schemas/TableScoreWords-Output'
              text_similarity:
                $ref: '#/components/schemas/TableTextSimilarity-Output'
              to_bool:
                $ref: '#/components/schemas/TableToBool-Output'
              to_date:
                $ref: '#/components/schemas/TableToDate-Output'
              to_float:
                $ref: '#/components/schemas/TableToFloat-Output'
              to_int:
                $ref: '#/components/schemas/TableToInt-Output'
              to_string:
                $ref: '#/components/schemas/TableToString-Output'
              trim:
                $ref: '#/components/schemas/TableTrim-Output'
              uri_encode:
                $ref: '#/components/schemas/TableUriEncode-Output'
              url_domain:
                $ref: '#/components/schemas/TableUrlDomain-Output'
              url_valid:
                $ref: '#/components/schemas/TableUrlValid-Output'
              utm_parse:
                $ref: '#/components/schemas/TableUtmParse-Output'
              value_mapping:
                $ref: '#/components/schemas/TableValueMapping-Output'
              weighted_round_robin:
                $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            propertyName: function
          oneOf:
            - $ref: '#/components/schemas/TableCopy-Output'
            - $ref: '#/components/schemas/TableChangeCase-Output'
            - $ref: '#/components/schemas/TableTrim-Output'
            - $ref: '#/components/schemas/TableReplace-Output'
            - $ref: '#/components/schemas/TableRegexExtract-Output'
            - $ref: '#/components/schemas/TableRegexReplace-Output'
            - $ref: '#/components/schemas/TableConcatenate-Output'
            - $ref: '#/components/schemas/TableArithmetic-Output'
            - $ref: '#/components/schemas/TableRound-Output'
            - $ref: '#/components/schemas/TableClamp-Output'
            - $ref: '#/components/schemas/TableDateFormat-Output'
            - $ref: '#/components/schemas/TableDateExtract-Output'
            - $ref: '#/components/schemas/TableDateArithmetic-Output'
            - $ref: '#/components/schemas/TableListFirst-Output'
            - $ref: '#/components/schemas/TableListLast-Output'
            - $ref: '#/components/schemas/TableListNth-Output'
            - $ref: '#/components/schemas/TableListJoin-Output'
            - $ref: '#/components/schemas/TableListCount-Output'
            - $ref: '#/components/schemas/TableListPluck-Output'
            - $ref: '#/components/schemas/TableListUnique-Output'
            - $ref: '#/components/schemas/TableListSplit-Output'
            - $ref: '#/components/schemas/TableCoalesce-Output'
            - $ref: '#/components/schemas/TableIfThenElse-Output'
            - $ref: '#/components/schemas/TableConditions-Output'
            - $ref: '#/components/schemas/TableValueMapping-Output'
            - $ref: '#/components/schemas/TableToString-Output'
            - $ref: '#/components/schemas/TableToInt-Output'
            - $ref: '#/components/schemas/TableToFloat-Output'
            - $ref: '#/components/schemas/TableToBool-Output'
            - $ref: '#/components/schemas/TableToDate-Output'
            - $ref: '#/components/schemas/TablePhoneE164-Output'
            - $ref: '#/components/schemas/TableUtmParse-Output'
            - $ref: '#/components/schemas/TableUrlDomain-Output'
            - $ref: '#/components/schemas/TableCompanyDomain-Output'
            - $ref: '#/components/schemas/TableGetPath-Output'
            - $ref: '#/components/schemas/TableFormat-Output'
            - $ref: '#/components/schemas/TableDateDiff-Output'
            - $ref: '#/components/schemas/TableKeywords-Output'
            - $ref: '#/components/schemas/TableListFilter-Output'
            - $ref: '#/components/schemas/TableListSort-Output'
            - $ref: '#/components/schemas/TableListIntersect-Output'
            - $ref: '#/components/schemas/TableTextSimilarity-Output'
            - $ref: '#/components/schemas/TableDetectLanguage-Output'
            - $ref: '#/components/schemas/TableScoreWords-Output'
            - $ref: '#/components/schemas/TableHash-Output'
            - $ref: '#/components/schemas/TableUriEncode-Output'
            - $ref: '#/components/schemas/TableUrlValid-Output'
            - $ref: '#/components/schemas/TableEmailPermutations-Output'
            - $ref: '#/components/schemas/TableRoundRobin-Output'
            - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
          title: Chain
        kind:
          const: formula
          default: formula
          title: Kind
          type: string
      required:
        - chain
      title: FormulaColumnDefinition
      type: object
    ManualColumnDefinition:
      description: 'Definition of a manual column: typed, user-editable cells.'
      properties:
        default_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Default Value
        kind:
          const: manual
          default: manual
          title: Kind
          type: string
      title: ManualColumnDefinition
      type: object
    SequenceColumnDefinition:
      description: >-
        Definition of a sequence-status column: one contact's live cadence
        state.


        The referenced sequence is denormalized by id only; rendering needs
        nothing

        beyond the cell's own text, and the outreach stratum owns the write path

        (see ``TableColumnKind.SEQUENCE``).
      properties:
        kind:
          const: sequence
          default: sequence
          title: Kind
          type: string
        sequence_id:
          description: The sequence whose enrolment status this column mirrors.
          format: uuid
          title: Sequence Id
          type: string
      required:
        - sequence_id
      title: SequenceColumnDefinition
      type: object
    SourceColumnDefinition:
      description: >-
        Definition of a source column: one imported record, held verbatim.


        Carries no configuration of its own. What to import, from where, and how

        often lives on the table's ``table_import_integration`` row, which
        points back here

        through ``object_column_id``; duplicating any of it on the column would

        only create somewhere for the two to disagree.
      properties:
        kind:
          const: source
          default: source
          title: Kind
          type: string
      title: SourceColumnDefinition
      type: object
    CurrencyOptions:
      description: Options for a currency column.
      properties:
        currency_code:
          default: USD
          description: >-
            ISO-4217 code. Per column, not per cell — a column is denominated
            once.
          maxLength: 3
          minLength: 3
          title: Currency Code
          type: string
        precision:
          default: 2
          maximum: 10
          minimum: 0
          title: Precision
          type: integer
        type:
          const: currency
          default: currency
          title: Type
          type: string
      title: CurrencyOptions
      type: object
    DecimalOptions:
      description: Options for a decimal column.
      properties:
        precision:
          default: 2
          maximum: 10
          minimum: 0
          title: Precision
          type: integer
        type:
          const: decimal
          default: decimal
          title: Type
          type: string
      title: DecimalOptions
      type: object
    MultiSelectOptions:
      description: Options for a multi-select column.
      properties:
        choices:
          items:
            $ref: '#/components/schemas/SelectChoice'
          title: Choices
          type: array
        type:
          const: multi_select
          default: multi_select
          title: Type
          type: string
      title: MultiSelectOptions
      type: object
    SelectOptions:
      description: Options for a single-select column.
      properties:
        choices:
          items:
            $ref: '#/components/schemas/SelectChoice'
          title: Choices
          type: array
        type:
          const: select
          default: select
          title: Type
          type: string
      title: SelectOptions
      type: object
    TableColumnUIColor:
      description: >-
        Semantic column tint token.


        Stored as a token rather than a hex value because the grid renders in
        both a

        light and a dark theme — a single stored colour is only legible in one
        of

        them. The client maps each token to a per-mode value.


        Deliberately excludes teal: the brand primary is used for range
        selection and

        the anchor outline, so a teal column would read as permanently selected.
      enum:
        - gray
        - red
        - orange
        - amber
        - green
        - blue
        - purple
        - pink
      title: TableColumnUIColor
      type: string
    AgentSettings:
      description: >-
        Settings for the Agent web-research action.


        ``starting_url_column_id`` binds a column whose per-row value seeds the

        research (stored by identity, like prompt references, so renames are
        safe

        and deletes are detectable). ``stay_on_domain`` confines every tool that

        targets a site to that URL's domain and therefore requires a starting
        URL

        to scope to.


        The two tool toggles are split by what a tool RETURNS, not by how many

        calls it makes: ``allow_search`` governs discovery (web search and site

        mapping, which return URLs and snippets), ``allow_fetch`` governs
        content

        reads (scraping one page and crawling several).


        ``use_row_context`` defaults ON, and a column stored before the field

        existed decodes to that same default: an investigation whose subject is

        named in a column the prompt never mentions is the ordinary case, not
        the

        exception.
      properties:
        allow_fetch:
          default: true
          description: 'Tool toggle: whether the agent may scrape pages and crawl sites.'
          title: Allow Fetch
          type: boolean
        allow_search:
          default: true
          description: 'Tool toggle: whether the agent may search the web and map sites.'
          title: Allow Search
          type: boolean
        context:
          anyOf:
            - maxLength: 4000
              type: string
            - type: 'null'
          title: Context
        effort:
          $ref: '#/components/schemas/AgentEffortLevel'
          default: standard
        kind:
          const: agent
          default: agent
          title: Kind
          type: string
        saved_agent_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: An org-level saved agent this column's settings derive from.
          title: Saved Agent Id
        starting_url_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: A column whose per-row value is the research's starting URL.
          title: Starting Url Column Id
        stay_on_domain:
          default: false
          description: >-
            Whether site-targeting tools are confined to the starting URL's
            domain.
          title: Stay On Domain
          type: boolean
        use_row_context:
          default: true
          description: >-
            Whether the rest of this row's columns are folded in as context, on
            top of whatever the prompt itself references.
          title: Use Row Context
          type: boolean
      title: AgentSettings
      type: object
    BuiltinAgentSettings:
      description: >-
        Settings for a built-in agent column: which columns supply which facts.


        The same contract an :class:`EnrichmentSettings` column carries, and for

        the same reason. A built-in agent is configured entirely server-side —

        prompt, model, reach and output shape all live on the agent row — so the

        ONE thing a column decides is where each declared input comes from.


        Those bound cells are also all the agent sees. Its predecessor folded in

        the whole row (optionally narrowed to a chosen subset), which made the

        same agent read a different question on every table, cost the most on
        the

        widest ones, and quietly answer from whatever cell happened to sit
        beside

        the one it wanted. Now an input reaches the prompt only by being
        declared

        and bound, keyed by the agent's CANONICAL name — ``domain``,

        ``full_name`` — so renaming a column changes nothing here.


        A stored binding whose declaration is gone is ignored rather than

        resurrecting a fact nobody asked for.
      properties:
        input_bindings:
          additionalProperties:
            format: uuid
            type: string
          description: Declared input name → the column that supplies it.
          maxProperties: 8
          title: Input Bindings
          type: object
        kind:
          const: builtin
          default: builtin
          title: Kind
          type: string
      title: BuiltinAgentSettings
      type: object
    DevEchoSettings:
      description: |-
        Settings for the development-only echo action.

        The delay is configurable so pipeline tests can run fast; the action's
        display name promises one second, which is the default.
      properties:
        delay_ms:
          default: 1000
          maximum: 60000
          minimum: 0
          title: Delay Ms
          type: integer
        kind:
          const: dev_echo
          default: dev_echo
          title: Kind
          type: string
      title: DevEchoSettings
      type: object
    DevFlakySettings:
      description: |-
        Settings for the development-only intermittent-failure action.

        Failures are deterministic PER ROW: whether a given row fails is a pure
        function of the seed and the row's identity, so a failing row fails
        identically on every run — which is what makes retry policy, partial
        failure and the errored re-run scope testable at all. Changing the seed
        changes WHICH rows fail.
      properties:
        error_class:
          $ref: '#/components/schemas/EnrichmentErrorClass'
          default: provider_error
          description: The error class every failing row reports.
        failure_rate:
          default: 0.5
          description: The fraction of rows that fail.
          maximum: 1
          minimum: 0
          title: Failure Rate
          type: number
        kind:
          const: dev_flaky
          default: dev_flaky
          title: Kind
          type: string
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          description: Varies which rows fail; None derives purely from row identity.
          title: Seed
      title: DevFlakySettings
      type: object
    EnrichmentSettings:
      description: >-
        Settings for a curated enrichment: which columns supply which facts.


        The whole configuration of an enrichment column, and deliberately tiny.

        Its predecessor stored the entire fallback chain here — an ordered list
        of

        vendor operations, each with its own input mapping, assembled by the

        customer in the editor. That made the supply chain part of the
        customer's

        data: visible in the API, editable by hand, and frozen at the moment
        they

        saved it, so improving a chain meant migrating every column that had

        copied it.


        Now the chain lives in the catalog and is resolved per run. A column

        stores only the outcome it wants (the action key) and where its inputs

        come from, keyed by CANONICAL name — ``full_name``, ``company_domain`` —

        never by whatever the vendor at the front of today's chain happens to
        call

        them. Adding a supplier, reordering the chain or renaming a vendor's
        field

        changes nothing here.
      properties:
        input_bindings:
          additionalProperties:
            format: uuid
            type: string
          description: Canonical input name → the column that supplies it.
          maxProperties: 10
          title: Input Bindings
          type: object
        kind:
          const: enrichment
          default: enrichment
          title: Kind
          type: string
      title: EnrichmentSettings
      type: object
    HttpApiSettings:
      description: >-
        Settings for the HTTP API action: one request per row, described here.


        The URL is the column's prompt, so it can carry ``{{column}}`` tokens
        the

        same way every other prompt does and gets the same picker. Everything a

        URL cannot express lives here.


        ``json_path`` is what turns a response into a CELL: an API answers with
        a

        document, and the column usually wants one value out of it. Dotted, with

        integer segments indexing arrays — ``data.0.email``. Left empty the
        whole

        decoded body lands in the cell.
      properties:
        body:
          default: ''
          description: >-
            Request body for POST/PUT/PATCH. Supports the same {{column}} tokens
            as the prompt.
          maxLength: 20000
          title: Body
          type: string
        headers:
          additionalProperties:
            type: string
          description: Sent with every row's request, e.g. an Authorization header.
          maxProperties: 20
          title: Headers
          type: object
        json_path:
          default: ''
          description: Dotted path to the value to keep, e.g. data.0.email.
          maxLength: 200
          title: Json Path
          type: string
        kind:
          const: http_api
          default: http_api
          title: Kind
          type: string
        method:
          default: GET
          enum:
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
          title: Method
          type: string
      title: HttpApiSettings
      type: object
    HttpApiJwtSettings:
      description: >-
        Settings for the JWT-authenticated HTTP API action.


        Same request as :class:`HttpApiSettings` with the one thing that cannot
        be

        hand-written in a header: a JWT minted per run from the caller's own

        secret, so the token in flight is short-lived instead of a permanent

        credential pasted into a header field.
      properties:
        body:
          default: ''
          maxLength: 20000
          title: Body
          type: string
        headers:
          additionalProperties:
            type: string
          maxProperties: 20
          title: Headers
          type: object
        json_path:
          default: ''
          maxLength: 200
          title: Json Path
          type: string
        jwt_claims:
          additionalProperties:
            type: string
          description: 'Claims to sign, e.g. {''iss'': ''oneprofile''}.'
          maxProperties: 20
          title: Jwt Claims
          type: object
        jwt_header:
          default: Authorization
          description: Which header carries the token.
          maxLength: 100
          title: Jwt Header
          type: string
        jwt_prefix:
          default: 'Bearer '
          description: Prefix in front of the token, e.g. 'Bearer '.
          maxLength: 20
          title: Jwt Prefix
          type: string
        jwt_secret:
          default: ''
          description: The shared secret the token is signed with (HS256).
          maxLength: 1000
          title: Jwt Secret
          type: string
        jwt_ttl_seconds:
          default: 300
          description: How long each minted token stays valid.
          maximum: 3600
          minimum: 30
          title: Jwt Ttl Seconds
          type: integer
        kind:
          const: http_api_jwt
          default: http_api_jwt
          title: Kind
          type: string
        method:
          default: GET
          enum:
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
          title: Method
          type: string
      title: HttpApiJwtSettings
      type: object
    IntegrationLookupSettings:
      description: >-
        Settings for the connected-integration record lookup: which record,
        where.


        The identity VALUE is not here — it arrives per row through the action's

        bound input column, like ``resolve_hostname``'s hostname. What a column

        fixes is the address: which of the org's connections to ask

        (``integration_id`` — an ID, not a name, because two connections to one

        system are two different destinations), which record type, and which of

        the SDK's declared identity fields the value keys on.


        All three are plain identifiers rather than integration-stratum types on

        purpose: this module sits in the table stratum, which may not import the

        integration domain, so the executor (which lives above both) resolves
        and

        validates them at run time. ``identity_field`` defaults empty so a

        half-configured draft can be saved; the executor skips such a column

        rather than guessing a key.
      properties:
        identity_field:
          default: ''
          description: The identity field the bound value keys on, e.g. 'id' or 'email'.
          maxLength: 255
          title: Identity Field
          type: string
        integration_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: The org's connection to read from.
          title: Integration Id
        kind:
          const: integration_lookup
          default: integration_lookup
          title: Kind
          type: string
        record_type:
          default: ''
          description: The record type to fetch, e.g. 'user' or 'organization'.
          maxLength: 255
          title: Record Type
          type: string
      title: IntegrationLookupSettings
      type: object
    LookupSettings:
      description: |-
        Settings for the cross-table lookup actions.

        Columns are named rather than identified: whoever configures this is
        reading the other table's headers, and a name that stops resolving is a
        message worth showing rather than a silently blank column.
      properties:
        kind:
          const: lookup
          default: lookup
          title: Kind
          type: string
        match_column:
          default: ''
          description: The column in that table whose value must equal this row's value.
          maxLength: 255
          title: Match Column
          type: string
        return_column:
          default: ''
          description: The column to bring back; empty returns the whole row.
          maxLength: 255
          title: Return Column
          type: string
        table_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: The other table this column reads.
          title: Table Id
      title: LookupSettings
      type: object
    OutreachActivitySettings:
      description: 'Settings for the outreach-activity action: which signal to return.'
      properties:
        field:
          default: summary
          enum:
            - summary
            - in_live_sequence
            - live_sequences
            - reply_threads
            - total_matching_threads
            - last_reply_at
            - bounced
          title: Field
          type: string
        kind:
          const: outreach_activity
          default: outreach_activity
          title: Kind
          type: string
      title: OutreachActivitySettings
      type: object
    ProviderSettings:
      description: >-
        Settings for an integration-provider enrichment action.


        A provider action's inputs are STRUCTURED — named fields the provider's

        operation declares (full name, company domain, …) — not a prompt. Each

        binding maps one declared input name to the column whose per-row value

        feeds it. Required inputs without a binding block the save;
        bound-but-empty

        required inputs skip the row at run time, before any provider call.
      properties:
        input_bindings:
          additionalProperties:
            format: uuid
            type: string
          description: Declared operation input name → source column id.
          maxProperties: 10
          minProperties: 1
          title: Input Bindings
          type: object
        kind:
          const: provider
          default: provider
          title: Kind
          type: string
      required:
        - input_bindings
      title: ProviderSettings
      type: object
    RepDataSettings:
      description: 'Settings for the rep-data action: which part of the identity to return.'
      properties:
        field:
          default: email_address
          enum:
            - email_address
            - display_name
            - first_name
            - last_name
            - signature
            - all
          title: Field
          type: string
        kind:
          const: rep_data
          default: rep_data
          title: Kind
          type: string
      title: RepDataSettings
      type: object
    SendToTableSettings:
      description: 'Settings for the send-to-table action: where the row goes.'
      properties:
        kind:
          const: send_to_table
          default: send_to_table
          title: Kind
          type: string
        table_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: The table each row is appended to.
          title: Table Id
        target_column:
          default: ''
          description: The column in that table this row's value is written to.
          maxLength: 255
          title: Target Column
          type: string
      title: SendToTableSettings
      type: object
    UseAISettings:
      description: >-
        Settings for the Use AI action, in both of its modes.


        ONE action covers both "answer from what the table already knows" and

        "go and find out", because from the author's seat they are the same

        request with a different reach — and splitting them made people pick the

        wrong one. ``web_research`` is that reach, and it is what selects the

        mode: off runs a single completion over the row, on runs the bounded

        research agent (search, map, scrape, cite).


        It defaults OFF. The cheap mode is the common one, a web run costs

        several times more per row, and a toggle that silently spends is the

        wrong default even when research is the better answer.


        ``context`` is "Provide context for task"; ``examples`` are the few-shot

        pairs that show the model what a good response looks like. Both are

        hard-capped so a pathological configuration cannot blow up the request
        or

        the cost.


        ``use_row_context`` defaults ON, and a column stored before the field

        existed decodes to that same default — deliberately, so an author who

        never thought to reference a column still gets a model that can see the

        row. Turning it off narrows the run back to what the prompt itself
        names.


        ``context_column_ids`` narrows ``use_row_context`` from the whole row to

        a chosen subset: None (the default, and what every column stored before

        the field existed decodes to) keeps every column — "Entire row" in the

        editor — while a list holds exactly the columns the author picked. It

        means nothing while ``use_row_context`` is off.


        The remaining fields only bite in web mode. They are held on this one

        model rather than a nested "agent settings" object so that flipping

        ``web_research`` never migrates a stored payload: a column that has been

        both ways keeps whatever research scope it was last given.
      properties:
        context:
          anyOf:
            - maxLength: 4000
              type: string
            - type: 'null'
          title: Context
        context_column_ids:
          anyOf:
            - items:
                format: uuid
                type: string
              type: array
            - type: 'null'
          description: >-
            The columns folded in when use_row_context is on; None means every
            column ("Entire row"). Stored by identity so renames are safe, but
            deliberately NOT a dependency: a listed column that is later deleted
            simply stops appearing in the context rather than blocking the
            delete or joining the recompute graph.
          title: Context Column Ids
        examples:
          items:
            $ref: '#/components/schemas/UseAIExample'
          maxItems: 5
          title: Examples
          type: array
        kind:
          const: use_ai
          default: use_ai
          title: Kind
          type: string
        saved_agent_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: >-
            Web research only: an org-level saved agent whose persona (effort,
            context) replaces this column's own.
          title: Saved Agent Id
        starting_url_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: >-
            Web research only: a column whose per-row value seeds the research.
            Stored by identity, so renames are safe.
          title: Starting Url Column Id
        stay_on_domain:
          default: false
          description: >-
            Web research only: confine every site-targeting tool to the starting
            URL's domain.
          title: Stay On Domain
          type: boolean
        use_business_context:
          default: false
          description: >-
            Whether the org's AI business context is folded into the run's
            standing context. Off by default and folded at run time — the org
            edits its context in one place and every column that opted in
            follows, with no stored copy to go stale.
          title: Use Business Context
          type: boolean
        use_row_context:
          default: true
          description: >-
            Whether the rest of this row's columns are folded in as context, on
            top of whatever the prompt itself references.
          title: Use Row Context
          type: boolean
        web_research:
          default: false
          description: >-
            Whether the model may research the web. On turns this column into a
            bounded research agent that searches, reads pages and cites its
            sources; off answers from the row and the model's own knowledge. Off
            by default: a web run costs several times more per row.
          title: Web Research
          type: boolean
      title: UseAISettings
      type: object
    EnrichmentOutputFields-Output:
      description: |-
        The fields-mode output shape: repeatable named typed fields.

        The default is Clay's: one text field named ``response``.
      properties:
        fields:
          items:
            $ref: '#/components/schemas/EnrichmentOutputField'
          maxItems: 20
          minItems: 1
          title: Fields
          type: array
        mode:
          const: fields
          default: fields
          title: Mode
          type: string
      title: EnrichmentOutputFields
      type: object
    EnrichmentOutputRawSchema:
      description: >-
        The advanced output shape: a raw strict-mode JSON schema, verbatim.


        Held to every strict-mode constraint at SAVE time by the service layer —

        the shape is stored exactly as authored, and validation failures name
        the

        exact violated rule rather than surfacing at run time.
      properties:
        json_schema:
          additionalProperties: true
          description: A strict-mode JSON schema with an object root.
          title: Json Schema
          type: object
        mode:
          const: json_schema
          default: json_schema
          title: Mode
          type: string
      required:
        - json_schema
      title: EnrichmentOutputRawSchema
      type: object
    EnrichmentPromptTemplate:
      description: >-
        The persisted prompt: an ordered mix of text and column references.


        Resolution to a per-row string happens at run time; the segment list is

        the single source of truth the editor renders pills from and the
        executor

        substitutes values into.
      properties:
        format:
          default: plain
          description: >-
            How the editor reads text segments: 'markdown' renders them as
            markdown source, 'plain' verbatim. Templates saved before the field
            existed carry no value and default to 'plain', the safe reading.
            Purely editor metadata — run-time resolution concatenates text
            segments identically either way.
          enum:
            - plain
            - markdown
          title: Format
          type: string
        segments:
          items:
            discriminator:
              mapping:
                column_ref:
                  $ref: '#/components/schemas/EnrichmentPromptColumnRefSegment'
                text:
                  $ref: '#/components/schemas/EnrichmentPromptTextSegment'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/EnrichmentPromptTextSegment'
              - $ref: '#/components/schemas/EnrichmentPromptColumnRefSegment'
          maxItems: 100
          title: Segments
          type: array
      title: EnrichmentPromptTemplate
      type: object
    ExportWriteAction:
      description: >-
        What one export cell does at the destination.


        Its own vocabulary, not a copy of the integration stratum's

        ``WriteBehavior``: the members and their values differ, and

        ``table_export_integration`` translates between the two at the seam

        (``_WRITE_BEHAVIOR_TO_EXPORT_ACTION``). Mirroring has no member here

        because it deletes and recreates the whole destination object, which is
        a

        whole-object concern rather than a per-row one.
      enum:
        - create
        - update
        - upsert
      title: ExportWriteAction
      type: string
    ExportFieldMapping-Output:
      description: One destination property and where its value comes from.
      properties:
        destination_field:
          maxLength: 255
          minLength: 1
          title: Destination Field
          type: string
        property_type:
          anyOf:
            - $ref: '#/components/schemas/PropertyType'
            - type: 'null'
          description: >-
            The type this property is CREATED with when it does not exist and
            the destination supports property creation. None means the
            destination already holds it and its type is authoritative.
        skip_if_blank:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Per-field override of the definition's ``remove_blanks``; None
            inherits it. Set False on one field to send an explicit blank that
            clears a destination value.
          title: Skip If Blank
        source:
          $ref: '#/components/schemas/ExportValueSource-Output'
      required:
        - destination_field
        - source
      title: ExportFieldMapping
      type: object
    ExportIdentityMapping-Output:
      description: |-
        One destination field the row may be IDENTIFIED by.

        Distinct from ``fields`` because identity is not written the way a
        property is: it selects the record for update/upsert, and it is what a
        create-only column matches on to avoid making a second copy. A row whose
        identity renders empty is SKIPPED, never written — an unidentifiable row
        is the case the skip exists for.

        Several of these form an ordered FALLBACK, not a composite key: see
        ``ExportColumnDefinition.identity``.
      properties:
        destination_field:
          maxLength: 255
          minLength: 1
          title: Destination Field
          type: string
        source:
          $ref: '#/components/schemas/ExportValueSource-Output'
      required:
        - destination_field
        - source
      title: ExportIdentityMapping
      type: object
    ExportRetryPolicy:
      description: |-
        One export column's reliability contract with its destination.

        Defaults are chosen so the common case needs no configuration: retry the
        errors worth retrying (rate limits, server errors, network failures) a
        few times, honour the destination's own Retry-After when it names one,
        and otherwise write as fast as the destination accepts.
      properties:
        max_retries:
          default: 3
          description: Retry attempts per row beyond the first, when retrying at all.
          maximum: 10
          minimum: 0
          title: Max Retries
          type: integer
        requests_per_minute:
          anyOf:
            - maximum: 6000
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Custom ceiling on write calls per minute. None means the
            destination's own pace — its live rate-limit answers are honoured
            either way.
          title: Requests Per Minute
        retry_on_failure:
          default: true
          description: >-
            Retry a row whose failure is retryable — rate limits, server errors,
            network failures. Bad requests never retry: the same payload would
            fail the same way.
          title: Retry On Failure
          type: boolean
        timeout_seconds:
          anyOf:
            - maximum: 600
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Response timeout per destination request. None uses the platform
            default.
          title: Timeout Seconds
      title: ExportRetryPolicy
      type: object
    TableArithmetic-Output:
      description: Apply an arithmetic operator with a constant or column-valued operand.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: arithmetic
          default: arithmetic
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        operand:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Operand
        operator:
          enum:
            - add
            - subtract
            - multiply
            - divide
          title: Operator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - operator
        - operand
      title: TableArithmetic
      type: object
    TableChangeCase-Output:
      description: Change the case of a string value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: change_case
          default: change_case
          title: Function
          type: string
        mode:
          enum:
            - lower
            - upper
            - title
          title: Mode
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - mode
      title: TableChangeCase
      type: object
    TableClamp-Output:
      description: Clamp a numeric value to an inclusive range.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: clamp
          default: clamp
          title: Function
          type: string
        max_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Max Value
        min_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Min Value
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableClamp
      type: object
    TableCoalesce-Output:
      description: >-
        Substitute a default — a literal or another column — when the input is
        empty.
      properties:
        default_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Default Value
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: coalesce
          default: coalesce
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - default_value
      title: TableCoalesce
      type: object
    TableCompanyDomain-Output:
      description: >-
        Reduce a company's website URL to the company's own domain.


        Like ``url_domain``, except that hosts which name a platform rather than

        the company itself — LinkedIn pages, Facebook pages, link aggregators —

        come out empty instead of as the platform's domain. A company whose only

        listed website is its LinkedIn page has no derivable domain, and an
        empty

        cell says so; ``linkedin.com`` is worse than empty because it joins,

        dedupes and syncs as if it were real. ``url_domain`` stays the generic

        read — a column of LinkedIn profile URLs legitimately reduces to

        ``linkedin.com`` there.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: company_domain
          default: company_domain
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableCompanyDomain
      type: object
    TableConcatenate-Output:
      description: >-
        Join several values into one string.


        Sources are ORDERED and may mix columns with the results of earlier
        steps —

        ``[First name, step 2]`` and ``[step 2, First name]`` are different
        strings,

        which is why there is one list rather than a list of columns beside a
        list

        of steps.


        The field keeps its original name: every stored definition holds

        ``source_column_ids``, and the list is still overwhelmingly columns.
        Only

        the item type widened, so old definitions validate untouched.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: concatenate
          default: concatenate
          title: Function
          type: string
        ignore_empty:
          default: true
          title: Ignore Empty
          type: boolean
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        separator:
          default: ' '
          title: Separator
          type: string
        source_column_ids:
          description: >-
            Values to join, in order. A UUID reads that column on the row; a
            step reference reads an earlier step's output.
          items:
            anyOf:
              - format: uuid
                type: string
              - $ref: '#/components/schemas/StepRef'
          title: Source Column Ids
          type: array
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - source_column_ids
      title: TableConcatenate
      type: object
    TableConditions-Output:
      description: >-
        Fold several comparisons into ONE boolean.


        The engine's only boolean combinator, and the shape a column's

        ``run_condition`` is authored in: "only run where Employees > 50 AND

        Country is US". Nothing else here joins predicates — ``if_then_else``

        compares exactly one pair and returns a value rather than a verdict — so

        without this a multi-clause gate could only be reached by chaining steps

        that pipe a truthy stand-in forward, which no editor could read back.


        Deliberately flat: one joiner over a list of clauses, no nesting. "A and
        B

        and C" or "A or B or C", which is what a gate is nearly always saying.

        Reads its clauses' operands directly and ignores the piped input, so it
        is

        a leaf rather than a transform.
      properties:
        clauses:
          items:
            $ref: '#/components/schemas/GateClause'
          maxItems: 8
          minItems: 1
          title: Clauses
          type: array
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: conditions
          default: conditions
          title: Function
          type: string
        joiner:
          default: and
          enum:
            - and
            - or
          title: Joiner
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - clauses
      title: TableConditions
      type: object
    TableCopy-Output:
      description: Copy the input value unchanged.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: copy
          default: copy
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableCopy
      type: object
    TableDateArithmetic-Output:
      description: Add or subtract a fixed duration from a date value.
      properties:
        amount:
          title: Amount
          type: integer
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: date_arithmetic
          default: date_arithmetic
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        operator:
          enum:
            - add
            - subtract
          title: Operator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        unit:
          enum:
            - days
            - hours
            - minutes
            - seconds
          title: Unit
          type: string
      required:
        - operator
        - amount
        - unit
      title: TableDateArithmetic
      type: object
    TableDateDiff-Output:
      description: >-
        The signed duration between this step's date and another date.


        ``date_arithmetic`` shifts a date by a CONSTANT amount, so the gap
        between

        two date columns had no expression. Positive when the step's own date is

        the later of the two.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: date_diff
          default: date_diff
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        other:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Other
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        unit:
          default: days
          enum:
            - days
            - hours
            - minutes
            - seconds
          title: Unit
          type: string
      title: TableDateDiff
      type: object
    TableDateExtract-Output:
      description: Extract a component (year, month, ...) from a date value.
      properties:
        component:
          enum:
            - year
            - month
            - day
            - hour
            - minute
            - second
          title: Component
          type: string
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: date_extract
          default: date_extract
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - component
      title: TableDateExtract
      type: object
    TableDateFormat-Output:
      description: Convert a date between iso/unix/unix_ms representations.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: date_format
          default: date_format
          title: Function
          type: string
        input_format:
          enum:
            - iso
            - unix
            - unix_ms
          title: Input Format
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        output_format:
          enum:
            - iso
            - unix
            - unix_ms
          title: Output Format
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - input_format
        - output_format
      title: TableDateFormat
      type: object
    TableDetectLanguage-Output:
      description: |-
        The language a piece of text is written in, as an ISO 639-1 code.

        Routes a row before anything expensive touches it: which sequence to
        enrol a lead into, which reviewer sees a scraped page, whether to
        translate at all.

        Script comes first — Cyrillic, Greek, Hebrew, Arabic, Han, kana and
        hangul each answer on their own — and Latin text is decided by the
        function words it uses. That is a heuristic, not a model: it is
        deterministic, free, and honest about not knowing, returning null when
        the text is too short or matches nothing.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: detect_language
          default: detect_language
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableDetectLanguage
      type: object
    TableEmailPermutations-Output:
      description: |-
        The candidate work-email addresses for a name at a domain.

        What a verifier needs to be pointed at: nine or so patterns companies
        actually use, in the order they are actually common, so the cheapest
        verification step has a list to work through instead of one guess.

        The piped value is the person's name — "Ada Lovelace", or a first name
        with ``last_name`` supplying the rest. Anything after the first and last
        token (middle names, suffixes) is ignored rather than permuted, which is
        what keeps the list nine long instead of ninety.
      properties:
        domain:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Domain
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: email_permutations
          default: email_permutations
          title: Function
          type: string
        last_name:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Last Name
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableEmailPermutations
      type: object
    TableFormat-Output:
      description: >-
        Build a string from a positional template and a list of arguments.


        ``concatenate`` joins whole columns with one separator, which cannot

        produce "Enterprise: Acme (12.4%)". Placeholders are positional only —

        ``{0}``, ``{1}`` — so the template stays data, not an expression
        language.


        Like ``concatenate`` this takes no ``source_column_id``: its inputs are
        its

        arguments, not the value flowing down the chain.
      properties:
        arguments:
          items:
            anyOf:
              - $ref: '#/components/schemas/ColumnRef'
              - $ref: '#/components/schemas/StepRef'
              - type: string
              - type: integer
              - type: number
              - type: boolean
              - type: 'null'
          maxItems: 10
          title: Arguments
          type: array
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: format
          default: format
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        template:
          minLength: 1
          title: Template
          type: string
      required:
        - template
      title: TableFormat
      type: object
    TableGetPath-Output:
      description: >-
        Read a dotted path out of an object- or list-valued cell.


        Object and list columns were storable but unreadable: nothing in the

        catalog could reach a field inside one, so an enrichment payload landed
        in

        a cell and stopped there. Segments index dicts by key and lists by
        integer

        position — ``employees.count``, ``emails.0.address``.


        ``output_type`` is declared rather than derived because a JSON path can

        land on anything, and the column's data type has to be known before a

        single row is evaluated.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: get_path
          default: get_path
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        output_type:
          $ref: '#/components/schemas/PropertyType'
          default: string
        path:
          minLength: 1
          title: Path
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - path
      title: TableGetPath
      type: object
    TableHash-Output:
      description: |-
        Hash a value — the identifier ad platforms and clean rooms ask for.

        Uploading an audience means handing over hashed emails, never raw ones,
        and the hash has to be produced the way the platform specifies:
        lowercased and trimmed first, hex digest out. That normalisation is the
        part people get wrong by hand, so it happens here rather than in three
        chained steps.
      properties:
        algorithm:
          default: sha256
          enum:
            - sha256
            - sha1
            - md5
          title: Algorithm
          type: string
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: hash
          default: hash
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        normalize:
          default: true
          description: Trim and lowercase before hashing, as ad platforms require.
          title: Normalize
          type: boolean
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableHash
      type: object
    TableIfThenElse-Output:
      description: >-
        Pick one of two values based on a comparison.


        Each of the three slots takes a literal or a column, so this expresses
        both

        "if this column is over that column" and "use A, else use B" — neither
        of

        which was reachable while they were constants.
      properties:
        compare_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Compare Value
        else_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Else Value
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: if_then_else
          default: if_then_else
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        operator:
          enum:
            - eq
            - neq
            - gt
            - lt
            - gte
            - lte
            - contains
            - not_contains
          title: Operator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        then_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Then Value
      required:
        - operator
      title: TableIfThenElse
      type: object
    TableKeywords-Output:
      description: >-
        The most frequent meaningful words in a text or list value.


        Reads a body of text — a scraped page, a bio, a job description — and

        returns the words that carry its subject, ordered most frequent first.

        Stopwords ("the", "and", "with") are dropped: a frequency count that
        keeps

        them returns the same five words for every row and says nothing about
        any

        of them.


        Deterministic and pure: no model call, so a keyword column costs nothing

        and re-runs identically.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: keywords
          default: keywords
          title: Function
          type: string
        limit:
          default: 10
          description: How many keywords to keep, most frequent first.
          maximum: 100
          minimum: 1
          title: Limit
          type: integer
        min_length:
          default: 3
          description: Shortest word to consider; anything shorter is noise.
          maximum: 20
          minimum: 1
          title: Min Length
          type: integer
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableKeywords
      type: object
    TableListCount-Output:
      description: Count the elements of a list value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_count
          default: list_count
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListCount
      type: object
    TableListFilter-Output:
      description: >-
        Keep only the list items whose field passes a test.


        An enrichment payload lands as a list of objects — every job opening,
        every

        funding round, every contact — and the row usually wants a subset of it:

        the engineering roles, the rounds after 2024, the contacts with an
        email.

        Without this the whole list is the only thing a cell can hold.


        ``field`` is a dotted path INSIDE each item (``location.country``);
        leaving

        it empty tests the item itself, which is what a list of plain strings

        needs. ``exists``/``missing`` ignore ``value`` — they ask only whether
        the

        field is there.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        field:
          default: ''
          description: Dotted path inside each item; empty tests the item itself.
          maxLength: 200
          title: Field
          type: string
        function:
          const: list_filter
          default: list_filter
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        operator:
          default: eq
          enum:
            - eq
            - neq
            - gt
            - lt
            - gte
            - lte
            - contains
            - not_contains
            - exists
            - missing
          title: Operator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Value
      title: TableListFilter
      type: object
    TableListFirst-Output:
      description: Take the first element of a list value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_first
          default: list_first
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListFirst
      type: object
    TableListIntersect-Output:
      description: >-
        The values this list shares with another — the overlap, in the first
        list's order.


        The scoring question every ICP fit column asks: which of the buyer's
        tags,

        technologies or keywords are ALSO on my target list. Doing it by hand
        meant

        one ``if_then_else`` per tag.


        ``other`` is a column holding the second list, or literal text split on

        ``separator``. Matching ignores case and surrounding spaces, because the

        two lists come from different sources and "Shopify " never equals
        "shopify"

        when it matters most.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_intersect
          default: list_intersect
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        other:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Other
        separator:
          default: ','
          description: Splits ``other`` when it is text rather than a list.
          maxLength: 10
          title: Separator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListIntersect
      type: object
    TableListJoin-Output:
      description: Join list elements into a string with a separator.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_join
          default: list_join
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        separator:
          default: ', '
          title: Separator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListJoin
      type: object
    TableListLast-Output:
      description: Take the last element of a list value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_last
          default: list_last
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListLast
      type: object
    TableListNth-Output:
      description: Take the element at an index of a list value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_nth
          default: list_nth
          title: Function
          type: string
        index:
          default: 0
          title: Index
          type: integer
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListNth
      type: object
    TableListPluck-Output:
      description: >-
        Pull one field out of every object in a list.


        Enrichment payloads routinely carry lists of objects —

        ``[{"value": "Payroll"}, {"value": "HR"}]`` — where the useful thing is

        the field, not the wrapper. Plucking turns that into ``["Payroll",
        "HR"]``

        so ``list_join`` and friends can work on it; items without the field

        become empty and scalar items pass through unchanged.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        field:
          minLength: 1
          title: Field
          type: string
        function:
          const: list_pluck
          default: list_pluck
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - field
      title: TableListPluck
      type: object
    TableListSort-Output:
      description: >-
        Order a list, ascending or descending.


        ``list_unique`` and ``list_join`` both preserve whatever order the
        source

        happened to arrive in, which is fine until the cell is meant to be READ
        —

        a top-3 of anything, a chronological history, an alphabetised tag list.


        ``field`` names the dotted path to sort objects BY; empty sorts the
        items

        themselves. Values that cannot be compared with each other (a number
        next

        to a string) are ordered by type first, so the sort is total instead of

        raising on the row where the data is mixed.
      properties:
        direction:
          default: asc
          enum:
            - asc
            - desc
          title: Direction
          type: string
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        field:
          default: ''
          description: Dotted path inside each item to sort by; empty sorts the items.
          maxLength: 200
          title: Field
          type: string
        function:
          const: list_sort
          default: list_sort
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListSort
      type: object
    TableListSplit-Output:
      description: Split a string value into a list on a separator.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_split
          default: list_split
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        separator:
          default: ','
          title: Separator
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListSplit
      type: object
    TableListUnique-Output:
      description: De-duplicate list elements, keeping first-seen order.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: list_unique
          default: list_unique
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableListUnique
      type: object
    TablePhoneE164-Output:
      description: Normalize a phone number to E.164 format.
      properties:
        default_region:
          default: US
          title: Default Region
          type: string
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: phone_e164
          default: phone_e164
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TablePhoneE164
      type: object
    TableRegexExtract-Output:
      description: Extract a regex group from a string value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: regex_extract
          default: regex_extract
          title: Function
          type: string
        group:
          default: 0
          title: Group
          type: integer
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        pattern:
          title: Pattern
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - pattern
      title: TableRegexExtract
      type: object
    TableRegexReplace-Output:
      description: Replace regex matches in a string value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: regex_replace
          default: regex_replace
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        pattern:
          title: Pattern
          type: string
        replacement:
          title: Replacement
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - pattern
        - replacement
      title: TableRegexReplace
      type: object
    TableReplace-Output:
      description: Replace all occurrences of a substring.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: replace
          default: replace
          title: Function
          type: string
        new:
          title: New
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        old:
          title: Old
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - old
        - new
      title: TableReplace
      type: object
    TableRound-Output:
      description: Round a numeric value to a precision.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: round
          default: round
          title: Function
          type: string
        mode:
          default: round
          enum:
            - round
            - ceil
            - floor
          title: Mode
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        precision:
          default: 0
          title: Precision
          type: integer
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableRound
      type: object
    TableRoundRobin-Output:
      description: >-
        Assign each row to one of a list of owners, evenly.


        Lead routing, as a column: the rep, the region, the sending inbox. The

        piped value is the row's IDENTITY — its email, domain or id — and the

        owner is derived from a hash of it rather than from the row's position.


        That is a deliberate departure from a counter-based round robin, and it
        is

        the only version that behaves: re-running the column, adding rows above,

        or sorting the view all leave every existing row with the owner it
        already

        had. A counter reassigns half the table the first time anything moves,

        which in a CRM means the wrong rep gets the follow-up.
      properties:
        assignees:
          description: The owners to distribute across, e.g. rep names or inboxes.
          items:
            type: string
          maxItems: 200
          title: Assignees
          type: array
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: round_robin
          default: round_robin
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableRoundRobin
      type: object
    TableScoreWords-Output:
      description: >-
        Score text by the weighted words it contains.


        The rules half of lead scoring, without a model: "enterprise" is worth
        3,

        "student" is worth -5, and the cell adds up whatever the row's text,

        tags or tech stack actually say. Expressing the same thing with

        ``if_then_else`` needs one step per word and runs out of chain depth at
        ten.


        Weights are a plain object — word or phrase to number. Matching is

        case-insensitive; a multi-word key matches as a phrase.
        ``count_repeats``

        decides whether saying "enterprise" three times scores three times,
        which

        is the difference between weighing a claim and weighing a page.
      properties:
        count_repeats:
          default: false
          description: Score every occurrence rather than once per distinct word.
          title: Count Repeats
          type: boolean
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: score_words
          default: score_words
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        weights:
          additionalProperties:
            type: number
          description: 'Word or phrase to score, e.g. {''enterprise'': 3, ''student'': -5}.'
          title: Weights
          type: object
      title: TableScoreWords
      type: object
    TableTextSimilarity-Output:
      description: >-
        How alike two pieces of text are, as a percentage.


        The dedupe and match question: is "Acme Inc." the same company as "Acme,

        Inc"? An exact comparison says no and a human says obviously yes, so the

        honest answer is a number the row can threshold on.


        Case and surrounding whitespace never count — they are formatting, not

        difference. 100 means identical after that normalisation, 0 means
        nothing

        in common.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: text_similarity
          default: text_similarity
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        other:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Other
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableTextSimilarity
      type: object
    TableToBool-Output:
      description: Coerce the input to a boolean.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: to_bool
          default: to_bool
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableToBool
      type: object
    TableToDate-Output:
      description: Coerce the input to a date.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: to_date
          default: to_date
          title: Function
          type: string
        input_format:
          default: auto
          enum:
            - iso
            - unix
            - unix_ms
            - auto
          title: Input Format
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableToDate
      type: object
    TableToFloat-Output:
      description: Coerce the input to a float.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: to_float
          default: to_float
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableToFloat
      type: object
    TableToInt-Output:
      description: Coerce the input to an integer.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: to_int
          default: to_int
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableToInt
      type: object
    TableToString-Output:
      description: Coerce the input to a string.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: to_string
          default: to_string
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableToString
      type: object
    TableTrim-Output:
      description: Strip leading and trailing whitespace from a string value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: trim
          default: trim
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableTrim
      type: object
    TableUriEncode-Output:
      description: |-
        Percent-encode a value so it survives being put in a URL.

        Every search-URL column builds the same thing — a query string with a
        company name in it — and every one of them breaks on the first ampersand
        or accent. Encoding belongs one step before the URL is assembled, not in
        a regex chain that handles the four characters someone remembered.

        ``component`` escapes everything reserved, which is what a query value
        needs; ``full`` leaves ``:/?#`` alone so an entire URL stays usable.
        Lists are encoded item by item.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: uri_encode
          default: uri_encode
          title: Function
          type: string
        mode:
          default: component
          enum:
            - component
            - full
          title: Mode
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableUriEncode
      type: object
    TableUrlDomain-Output:
      description: >-
        Reduce a URL to its bare registrable-looking host.


        A website field arrives as a whole URL — ``https://www.acme.com/about``
        —

        but the thing that joins, dedupes and enriches is ``acme.com``. Doing it

        with ``regex_extract`` means every caller hand-writes the same fragile

        pattern, so the parse lives here once and uses a real URL parser.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: url_domain
          default: url_domain
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableUrlDomain
      type: object
    TableUrlValid-Output:
      description: >-
        Whether a value is a usable web address.


        The gate in front of every scrape, screenshot and HTTP column: a row
        whose

        "website" cell holds "n/a", "coming soon" or a bare company name should

        never spend a credit finding that out. True means the value parses as a

        host with a real-looking domain, not that the site answers — a formula

        cannot make a request, and pretending otherwise would be the one
        dishonest

        thing this function could do.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: url_valid
          default: url_valid
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        require_scheme:
          default: false
          description: Demand http:// or https://; off accepts a bare domain.
          title: Require Scheme
          type: boolean
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      title: TableUrlValid
      type: object
    TableUtmParse-Output:
      description: Extract a UTM parameter from a URL value.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: utm_parse
          default: utm_parse
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        parameter:
          enum:
            - source
            - medium
            - campaign
            - term
            - content
          title: Parameter
          type: string
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - parameter
      title: TableUtmParse
      type: object
    TableValueMapping-Output:
      description: Map input values through a lookup table.
      properties:
        default_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Default Value
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: value_mapping
          default: value_mapping
          title: Function
          type: string
        mapping:
          additionalProperties:
            anyOf:
              - type: string
              - type: integer
              - type: number
              - type: boolean
              - type: 'null'
          title: Mapping
          type: object
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
      required:
        - mapping
      title: TableValueMapping
      type: object
    TableWeightedRoundRobin-Output:
      description: >-
        Assign each row to an owner, in proportion to each owner's share.


        The version real teams need: a senior rep takes three leads for every
        one

        a new hire gets, one region absorbs twice the volume of another. Shares
        are

        whole numbers and mean exactly what they look like — 3 and 1 is three

        quarters and one quarter.


        Stable per row for the same reason ``round_robin`` is: the owner comes
        from

        a hash of the row's identity, so nothing already assigned moves when the

        table grows or the view is sorted. Changing the SHARES does move rows —

        that is what changing them means.
      properties:
        failure_mode:
          $ref: '#/components/schemas/TableFailureMode'
          default: set_null
        fallback_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Fallback Value
        function:
          const: weighted_round_robin
          default: weighted_round_robin
          title: Function
          type: string
        next:
          anyOf:
            - discriminator:
                mapping:
                  arithmetic:
                    $ref: '#/components/schemas/TableArithmetic-Output'
                  change_case:
                    $ref: '#/components/schemas/TableChangeCase-Output'
                  clamp:
                    $ref: '#/components/schemas/TableClamp-Output'
                  coalesce:
                    $ref: '#/components/schemas/TableCoalesce-Output'
                  company_domain:
                    $ref: '#/components/schemas/TableCompanyDomain-Output'
                  concatenate:
                    $ref: '#/components/schemas/TableConcatenate-Output'
                  conditions:
                    $ref: '#/components/schemas/TableConditions-Output'
                  copy:
                    $ref: '#/components/schemas/TableCopy-Output'
                  date_arithmetic:
                    $ref: '#/components/schemas/TableDateArithmetic-Output'
                  date_diff:
                    $ref: '#/components/schemas/TableDateDiff-Output'
                  date_extract:
                    $ref: '#/components/schemas/TableDateExtract-Output'
                  date_format:
                    $ref: '#/components/schemas/TableDateFormat-Output'
                  detect_language:
                    $ref: '#/components/schemas/TableDetectLanguage-Output'
                  email_permutations:
                    $ref: '#/components/schemas/TableEmailPermutations-Output'
                  format:
                    $ref: '#/components/schemas/TableFormat-Output'
                  get_path:
                    $ref: '#/components/schemas/TableGetPath-Output'
                  hash:
                    $ref: '#/components/schemas/TableHash-Output'
                  if_then_else:
                    $ref: '#/components/schemas/TableIfThenElse-Output'
                  keywords:
                    $ref: '#/components/schemas/TableKeywords-Output'
                  list_count:
                    $ref: '#/components/schemas/TableListCount-Output'
                  list_filter:
                    $ref: '#/components/schemas/TableListFilter-Output'
                  list_first:
                    $ref: '#/components/schemas/TableListFirst-Output'
                  list_intersect:
                    $ref: '#/components/schemas/TableListIntersect-Output'
                  list_join:
                    $ref: '#/components/schemas/TableListJoin-Output'
                  list_last:
                    $ref: '#/components/schemas/TableListLast-Output'
                  list_nth:
                    $ref: '#/components/schemas/TableListNth-Output'
                  list_pluck:
                    $ref: '#/components/schemas/TableListPluck-Output'
                  list_sort:
                    $ref: '#/components/schemas/TableListSort-Output'
                  list_split:
                    $ref: '#/components/schemas/TableListSplit-Output'
                  list_unique:
                    $ref: '#/components/schemas/TableListUnique-Output'
                  phone_e164:
                    $ref: '#/components/schemas/TablePhoneE164-Output'
                  regex_extract:
                    $ref: '#/components/schemas/TableRegexExtract-Output'
                  regex_replace:
                    $ref: '#/components/schemas/TableRegexReplace-Output'
                  replace:
                    $ref: '#/components/schemas/TableReplace-Output'
                  round:
                    $ref: '#/components/schemas/TableRound-Output'
                  round_robin:
                    $ref: '#/components/schemas/TableRoundRobin-Output'
                  score_words:
                    $ref: '#/components/schemas/TableScoreWords-Output'
                  text_similarity:
                    $ref: '#/components/schemas/TableTextSimilarity-Output'
                  to_bool:
                    $ref: '#/components/schemas/TableToBool-Output'
                  to_date:
                    $ref: '#/components/schemas/TableToDate-Output'
                  to_float:
                    $ref: '#/components/schemas/TableToFloat-Output'
                  to_int:
                    $ref: '#/components/schemas/TableToInt-Output'
                  to_string:
                    $ref: '#/components/schemas/TableToString-Output'
                  trim:
                    $ref: '#/components/schemas/TableTrim-Output'
                  uri_encode:
                    $ref: '#/components/schemas/TableUriEncode-Output'
                  url_domain:
                    $ref: '#/components/schemas/TableUrlDomain-Output'
                  url_valid:
                    $ref: '#/components/schemas/TableUrlValid-Output'
                  utm_parse:
                    $ref: '#/components/schemas/TableUtmParse-Output'
                  value_mapping:
                    $ref: '#/components/schemas/TableValueMapping-Output'
                  weighted_round_robin:
                    $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
                propertyName: function
              oneOf:
                - $ref: '#/components/schemas/TableCopy-Output'
                - $ref: '#/components/schemas/TableChangeCase-Output'
                - $ref: '#/components/schemas/TableTrim-Output'
                - $ref: '#/components/schemas/TableReplace-Output'
                - $ref: '#/components/schemas/TableRegexExtract-Output'
                - $ref: '#/components/schemas/TableRegexReplace-Output'
                - $ref: '#/components/schemas/TableConcatenate-Output'
                - $ref: '#/components/schemas/TableArithmetic-Output'
                - $ref: '#/components/schemas/TableRound-Output'
                - $ref: '#/components/schemas/TableClamp-Output'
                - $ref: '#/components/schemas/TableDateFormat-Output'
                - $ref: '#/components/schemas/TableDateExtract-Output'
                - $ref: '#/components/schemas/TableDateArithmetic-Output'
                - $ref: '#/components/schemas/TableListFirst-Output'
                - $ref: '#/components/schemas/TableListLast-Output'
                - $ref: '#/components/schemas/TableListNth-Output'
                - $ref: '#/components/schemas/TableListJoin-Output'
                - $ref: '#/components/schemas/TableListCount-Output'
                - $ref: '#/components/schemas/TableListPluck-Output'
                - $ref: '#/components/schemas/TableListUnique-Output'
                - $ref: '#/components/schemas/TableListSplit-Output'
                - $ref: '#/components/schemas/TableCoalesce-Output'
                - $ref: '#/components/schemas/TableIfThenElse-Output'
                - $ref: '#/components/schemas/TableConditions-Output'
                - $ref: '#/components/schemas/TableValueMapping-Output'
                - $ref: '#/components/schemas/TableToString-Output'
                - $ref: '#/components/schemas/TableToInt-Output'
                - $ref: '#/components/schemas/TableToFloat-Output'
                - $ref: '#/components/schemas/TableToBool-Output'
                - $ref: '#/components/schemas/TableToDate-Output'
                - $ref: '#/components/schemas/TablePhoneE164-Output'
                - $ref: '#/components/schemas/TableUtmParse-Output'
                - $ref: '#/components/schemas/TableUrlDomain-Output'
                - $ref: '#/components/schemas/TableCompanyDomain-Output'
                - $ref: '#/components/schemas/TableGetPath-Output'
                - $ref: '#/components/schemas/TableFormat-Output'
                - $ref: '#/components/schemas/TableDateDiff-Output'
                - $ref: '#/components/schemas/TableKeywords-Output'
                - $ref: '#/components/schemas/TableListFilter-Output'
                - $ref: '#/components/schemas/TableListSort-Output'
                - $ref: '#/components/schemas/TableListIntersect-Output'
                - $ref: '#/components/schemas/TableTextSimilarity-Output'
                - $ref: '#/components/schemas/TableDetectLanguage-Output'
                - $ref: '#/components/schemas/TableScoreWords-Output'
                - $ref: '#/components/schemas/TableHash-Output'
                - $ref: '#/components/schemas/TableUriEncode-Output'
                - $ref: '#/components/schemas/TableUrlValid-Output'
                - $ref: '#/components/schemas/TableEmailPermutations-Output'
                - $ref: '#/components/schemas/TableRoundRobin-Output'
                - $ref: '#/components/schemas/TableWeightedRoundRobin-Output'
            - type: 'null'
          title: Next
        source_column_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Source Column Id
        source_step:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Read the result of an EARLIER step, by 1-based position, instead of
            the step immediately before. Lets a later step fork back to an
            intermediate value — splitting a URL once and then using both the
            raw split and something derived from it — which a strict pipeline
            cannot express. Ignored when source_column_id is set (a column wins
            over a step), and ignored by functions that read their arguments
            rather than the piped value. None reads the previous step.
          title: Source Step
        weights:
          additionalProperties:
            type: integer
          description: 'Owner to share, e.g. {''ada'': 3, ''grace'': 1}.'
          title: Weights
          type: object
      title: TableWeightedRoundRobin
      type: object
    SelectChoice:
      description: One option of a select or multi-select column.
      properties:
        color:
          anyOf:
            - type: string
            - type: 'null'
          description: A column colour token; None renders the neutral chip.
          title: Color
        value:
          maxLength: 255
          minLength: 1
          title: Value
          type: string
      required:
        - value
      title: SelectChoice
      type: object
    AgentEffortLevel:
      description: |-
        How hard the Agent works on each row.

        Named levels rather than raw step counts: the level is the user-facing
        contract, and what each level buys (step and page budgets) is a product
        decision the loop maps internally — re-tuning budgets never invalidates
        stored columns.
      enum:
        - low
        - standard
        - high
      title: AgentEffortLevel
      type: string
    EnrichmentErrorClass:
      description: |-
        Machine-readable classification of a failed enrichment cell.

        The class decides everything downstream: whether the executor retries
        (transient classes) or gives up (terminal ones), what the cell tooltip
        names, and whether the failure is free — errors never charge, but only a
        classified error can prove which kind it was.
      enum:
        - timeout
        - rate_limited
        - provider_error
        - network
        - schema_violation
        - refused
        - invalid_input
        - no_data
        - enrichment_failed
        - unexpected
      title: EnrichmentErrorClass
      type: string
    UseAIExample:
      description: 'One few-shot example: a sample input and the response it should get.'
      properties:
        input:
          maxLength: 2000
          minLength: 1
          title: Input
          type: string
        output:
          maxLength: 2000
          minLength: 1
          title: Output
          type: string
      required:
        - input
        - output
      title: UseAIExample
      type: object
    EnrichmentOutputField:
      description: |-
        One named, typed value an enrichment run returns.

        Field types are drawn from the platform's existing column types, so any
        single field can later be promoted into an ordinary typed column without
        inventing a new type system.
      properties:
        choices:
          anyOf:
            - items:
                type: string
              maxItems: 200
              type: array
            - type: 'null'
          description: The fixed option list for a select field; None elsewhere.
          title: Choices
        description:
          anyOf:
            - maxLength: 500
              type: string
            - type: 'null'
          description: 'Shown to the model: what this field should contain.'
          title: Description
        field_type:
          $ref: '#/components/schemas/TableColumnType'
          default: text
        name:
          maxLength: 100
          minLength: 1
          title: Name
          type: string
      required:
        - name
      title: EnrichmentOutputField
      type: object
    EnrichmentPromptColumnRefSegment:
      description: |-
        An inline reference to another column's per-row value.

        Stored by column IDENTITY, never by display name — renaming a column can
        never change what a prompt means, and a deleted column is detectable
        rather than silently resolving to nothing.
      properties:
        column_id:
          format: uuid
          title: Column Id
          type: string
        path:
          anyOf:
            - maxLength: 300
              type: string
            - type: 'null'
          description: >-
            Dot-separated address of a sub-value inside a structured cell —
            output field names and zero-based list indices, e.g.
            'competitors.0'. None references the whole cell. Emptiness for the
            required rule is judged on the addressed sub-value.
          title: Path
        required:
          default: true
          description: >-
            Whether a row whose value for this column is empty is skipped
            entirely instead of run with a blank substituted.
          title: Required
          type: boolean
        type:
          const: column_ref
          default: column_ref
          title: Type
          type: string
      required:
        - column_id
      title: EnrichmentPromptColumnRefSegment
      type: object
    EnrichmentPromptTextSegment:
      description: A literal run of prompt text.
      properties:
        text:
          maxLength: 20000
          title: Text
          type: string
        type:
          const: text
          default: text
          title: Type
          type: string
      required:
        - text
      title: EnrichmentPromptTextSegment
      type: object
    ExportValueSource-Output:
      description: >-
        The per-row value written into ONE destination field.


        ``template`` reuses the enrichment prompt format verbatim — ordered text

        and column-reference segments, references stored by column identity so a

        rename can never silently repoint a mapping and a delete is detectable.


        PASSTHROUGH RULE: when the template is exactly one whole-cell column

        reference (one segment, no path), the RAW stored cell value is sent, not

        its rendered text — a LIST cell reaches a multi-select property as a
        list

        and a NUMBER cell as a number. Any other shape (text around a reference,

        two references, a path) renders to a string, because concatenation only

        has a string answer.
      properties:
        template:
          $ref: '#/components/schemas/EnrichmentPromptTemplate'
      title: ExportValueSource
      type: object
    TableFailureMode:
      description: >-
        What a formula cell resolves to when a step in its chain fails.


        Applies to the whole chain, read off the top-level function only.

        ``SKIP`` is equivalent to ``SET_NULL`` for table cells (a cell always
        has a

        stored slot, so there is nothing to skip) — kept for shape
        compatibility.
      enum:
        - pass_through_raw
        - set_null
        - static
        - skip
      title: TableFailureMode
      type: string
    ColumnRef:
      description: A parameter that reads another column's cell value on the same row.
      properties:
        column_id:
          format: uuid
          title: Column Id
          type: string
        ref:
          const: column
          default: column
          title: Ref
          type: string
      required:
        - column_id
      title: ColumnRef
      type: object
    StepRef:
      description: >-
        A parameter that reads an EARLIER step's output in the same chain.


        Without this a chain could fork but never join. ``source_step`` already
        let

        a unary step read back to an earlier result, but the only functions that

        take several inputs at once — ``concatenate`` and ``format`` — could
        name

        columns and literals and nothing else. So "upper-case the initial of one

        column, do the same to another, then put the two together" had no

        expression: the two halves could be computed but never combined, and the

        author had to invert the whole formula into combine-first-then-extract.


        Reading a step that is not strictly earlier has no value to read, so

        ``chain_refs.validate_step_references`` rejects it at save time rather
        than

        letting the engine quietly substitute something else.
      properties:
        ref:
          const: step
          default: step
          title: Ref
          type: string
        step:
          description: 1-based position of the step to read.
          minimum: 1
          title: Step
          type: integer
      required:
        - step
      title: StepRef
      type: object
    GateClause:
      description: >-
        One comparison inside a :class:`TableConditions` step.


        ``source`` is an ``Operand`` rather than a bare ``UUID`` deliberately,
        and

        the dependency walk is the reason: ``chain_refs._walk_for_column_refs``
        collects

        :class:`ColumnRef` instances reflectively wherever they are nested, but
        a

        bare UUID on a nested model is invisible to it. Spelled as an operand, a

        clause's column lands in ``run_condition_column_ids`` — and therefore in

        the compute page's read projection — for free. Spelled as a UUID it
        would

        evaluate against a missing value on every row.
      properties:
        compare_value:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Compare Value
        operator:
          enum:
            - eq
            - neq
            - gt
            - lt
            - gte
            - lte
            - contains
            - not_contains
            - starts_with
            - is_empty
            - is_not_empty
            - is_true
            - is_false
          title: Operator
          type: string
        source:
          anyOf:
            - $ref: '#/components/schemas/ColumnRef'
            - $ref: '#/components/schemas/StepRef'
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Source
      required:
        - operator
      title: GateClause
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey

````