{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-structure/identify-api-user-property-operations-structure.json",
  "name": "UserPropertyOperations",
  "description": "An object containing user property operations. Each key is an operation type and the value is an object of property names to values.",
  "type": "object",
  "properties": {
    "$set": {
      "type": "object",
      "description": "Set the value of a user property. If the property already exists, the value is overwritten.",
      "additionalProperties": true
    },
    "$setOnce": {
      "type": "object",
      "description": "Set the value of a user property only if it has not already been set. Useful for properties like initial_referrer.",
      "additionalProperties": true
    },
    "$add": {
      "type": "object",
      "description": "Increment a numeric user property by the specified value.",
      "additionalProperties": {
        "type": "double"
      }
    },
    "$append": {
      "type": "object",
      "description": "Append a value or values to a list user property.",
      "additionalProperties": true
    },
    "$prepend": {
      "type": "object",
      "description": "Prepend a value or values to a list user property.",
      "additionalProperties": true
    },
    "$unset": {
      "type": "object",
      "description": "Remove a user property by setting its value to the string $unset.",
      "additionalProperties": true
    },
    "$remove": {
      "type": "object",
      "description": "Remove a value from a list user property.",
      "additionalProperties": true
    }
  }
}