canonical_id: "merge"
display_name: "合併物件"
category: "logic"
version: "v1"
wasi_target: "preview1"
stability: "floating"
runtime_compat:
  - "cf-workers"
  - "workerd"
  - "wazero"
constraints:
  max_size_kb: 2048
  max_cold_start_ms: 50
  no_network_syscall: true
  no_filesystem_syscall: true
  io_model: "stdin_stdout_json"
input_schema:
  type: object
  required: [inputs]
  properties:
    inputs:
      type: array
      description: 要合併的物件陣列，後者欄位覆蓋前者
      items:
        type: object
output_schema:
  type: object
  properties:
    success:
      type: boolean
    data:
      type: object
      description: 所有輸入物件合併後的結果
gherkin_tests:
  - scenario: "合併兩個物件"
    given: '{"inputs":[{"a":1},{"b":2}]}'
    then_contains: '"a":1'
  - scenario: "後者欄位覆蓋前者"
    given: '{"inputs":[{"a":1},{"a":2}]}'
    then_contains: '"a":2'
  - scenario: "inputs 為空陣列時失敗"
    given: '{"inputs":[]}'
    then_contains: '{"success":false'
tags: [builtin, merge, combine, object, context]
description: "將多個物件合併為一個，後者欄位覆蓋前者同名欄位。"
config_example: |
  my_merge:                               # 節點名稱（可自訂）
    inputs:                               # 要合併的物件陣列（必填）
      - "{{node_a.data}}"                 # 第一個來源物件
      - "{{node_b.data}}"                 # 第二個來源物件（後者覆蓋前者同名欄位）
