{
  "experiment": "json-merge-patch-semantics",
  "executedAt": "2026-10-15T02:00:17.002249+00:00",
  "runtime": "3.14.8",
  "synthetic": true,
  "original": {
    "title": "draft",
    "description": "keep",
    "tags": [
      "review",
      "source"
    ],
    "profile": {
      "city": "Seoul",
      "name": "editor"
    },
    "nullable": null
  },
  "cases": [
    {
      "case": "omitted",
      "patch": {
        "title": "revised"
      },
      "expected": {
        "title": "revised",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "actual": {
        "title": "revised",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "repeatSamePatchUnchanged": true
    },
    {
      "case": "delete-null",
      "patch": {
        "description": null
      },
      "expected": {
        "title": "draft",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "actual": {
        "title": "draft",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "repeatSamePatchUnchanged": true
    },
    {
      "case": "replace-array",
      "patch": {
        "tags": [
          "edited"
        ]
      },
      "expected": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "edited"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "actual": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "edited"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "repeatSamePatchUnchanged": true
    },
    {
      "case": "nested-delete",
      "patch": {
        "profile": {
          "city": null,
          "lang": "ko"
        }
      },
      "expected": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "name": "editor",
          "lang": "ko"
        },
        "nullable": null
      },
      "actual": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "name": "editor",
          "lang": "ko"
        },
        "nullable": null
      },
      "repeatSamePatchUnchanged": true
    },
    {
      "case": "replace-root",
      "patch": null,
      "expected": null,
      "actual": null,
      "repeatSamePatchUnchanged": true
    },
    {
      "case": "delete-missing",
      "patch": {
        "missing": null
      },
      "expected": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "actual": {
        "title": "draft",
        "description": "keep",
        "tags": [
          "review",
          "source"
        ],
        "profile": {
          "city": "Seoul",
          "name": "editor"
        },
        "nullable": null
      },
      "repeatSamePatchUnchanged": true
    }
  ],
  "scalarTargetObjectPatch": {
    "priority": 1
  },
  "sourceUnmodified": true,
  "scope": "RFC7396-style pure value transformation. Null in object patch means delete; root null replaces whole document. No HTTP API called, no server authorization/concurrency guarantees inferred."
}
