{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agent.pricerightdigital.com/newsletter-distribution-handoff-schema.json",
  "title": "Price Right Digital Newsletter Distribution Handoff",
  "description": "Preparation-only newsletter distribution handoff. It does not prove scheduling, sending, delivery, opens, clicks, segmentation, or downstream completion.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "handoff_id",
    "created_at",
    "source_system",
    "source_url",
    "issue_name",
    "subject_line",
    "preview_line",
    "final_sections",
    "cta_url",
    "segmentation_notes",
    "validation_status",
    "send_window_recommendation",
    "reuse_extraction_summary",
    "target_email_platform",
    "required_fields",
    "missing_fields",
    "next_human_or_system_action",
    "handoff_status",
    "downstream_status"
  ],
  "properties": {
    "handoff_id": {
      "type": "string",
      "description": "Unique handoff identifier."
    },
    "created_at": {
      "type": "string",
      "description": "ISO timestamp when handoff was prepared."
    },
    "source_system": {
      "type": "string",
      "description": "System that prepared handoff."
    },
    "source_url": {
      "type": "string",
      "description": "Source URL for handoff preparation."
    },
    "issue_name": {
      "type": "string",
      "description": "Issue name."
    },
    "subject_line": {
      "type": "string",
      "description": "Subject line draft."
    },
    "preview_line": {
      "type": "string",
      "description": "Preview line draft."
    },
    "final_sections": {
      "type": "array",
      "description": "Sections prepared for handoff. This is not sent content.",
      "items": {
        "type": "string",
        "description": "One item."
      }
    },
    "cta_url": {
      "type": "string",
      "format": "uri",
      "description": "CTA URL. Shopper CTAs must point to pricerightrv.com."
    },
    "segmentation_notes": {
      "type": "string",
      "description": "Segmentation notes. Do not claim audience membership without evidence."
    },
    "validation_status": {
      "type": "string",
      "enum": [
        "draft",
        "planning_only",
        "ready_for_review",
        "ready_for_handoff",
        "blocked_missing_required_fields",
        "blocked_missing_source_evidence",
        "blocked_unapproved_review_proof",
        "needs_human_review",
        "failed_validation"
      ],
      "description": "Validation status."
    },
    "send_window_recommendation": {
      "type": "string",
      "description": "Recommended send window. This is not scheduling evidence."
    },
    "reuse_extraction_summary": {
      "type": "string",
      "description": "Summary of reuse extraction opportunities."
    },
    "target_email_platform": {
      "type": "string",
      "description": "Target email platform if supplied."
    },
    "required_fields": {
      "type": "array",
      "description": "Required fields before handoff or send.",
      "items": {
        "type": "string",
        "description": "One item."
      }
    },
    "missing_fields": {
      "type": "array",
      "description": "Missing fields.",
      "items": {
        "type": "string",
        "description": "One item."
      }
    },
    "next_human_or_system_action": {
      "type": "string",
      "description": "Next required action."
    },
    "handoff_status": {
      "type": "string",
      "enum": [
        "drafted",
        "ready_for_handoff",
        "handed_off",
        "awaiting_downstream_confirmation",
        "downstream_confirmed",
        "failed_downstream",
        "archived"
      ],
      "description": "Handoff status."
    },
    "downstream_status": {
      "type": "string",
      "enum": [
        "not_sent",
        "handed_off",
        "awaiting_confirmation",
        "confirmed",
        "failed"
      ],
      "description": "Downstream status."
    }
  }
}
