{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "/schemas/3.1.0-rc.4/media-buy/provide-performance-feedback-request.json",
  "title": "Provide Performance Feedback Request",
  "description": "Request payload for provide_performance_feedback task",
  "type": "object",
  "allOf": [
    {
      "$ref": "/schemas/3.1.0-rc.4/core/version-envelope.json"
    }
  ],
  "x-mutates-state": true,
  "properties": {
    "media_buy_id": {
      "type": "string",
      "description": "Seller's media buy identifier",
      "minLength": 1,
      "x-entity": "media_buy"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Client-generated unique key for this request. Prevents duplicate feedback submissions on retries. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.",
      "minLength": 16,
      "maxLength": 255,
      "pattern": "^[A-Za-z0-9_.:-]{16,255}$"
    },
    "measurement_period": {
      "$ref": "/schemas/3.1.0-rc.4/core/datetime-range.json",
      "description": "Time period for performance measurement"
    },
    "performance_index": {
      "type": "number",
      "description": "Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)",
      "minimum": 0
    },
    "package_id": {
      "type": "string",
      "description": "Specific package within the media buy (if feedback is package-specific)",
      "minLength": 1,
      "x-entity": "package"
    },
    "creative_id": {
      "type": "string",
      "description": "Specific creative asset (if feedback is creative-specific)",
      "minLength": 1,
      "x-entity": "creative"
    },
    "metric_type": {
      "$ref": "/schemas/3.1.0-rc.4/enums/metric-type.json",
      "description": "The business metric being measured",
      "default": "overall_performance"
    },
    "feedback_source": {
      "$ref": "/schemas/3.1.0-rc.4/enums/feedback-source.json",
      "description": "Source of the performance data",
      "default": "buyer_attribution"
    },
    "context": {
      "$ref": "/schemas/3.1.0-rc.4/core/context.json"
    },
    "ext": {
      "$ref": "/schemas/3.1.0-rc.4/core/ext.json"
    }
  },
  "required": [
    "idempotency_key",
    "media_buy_id",
    "measurement_period",
    "performance_index"
  ],
  "additionalProperties": true
}
