{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agent.pricerightdigital.com/content-reuse-package-schema.json",
  "title": "Price Right Digital Content Reuse Package",
  "description": "Preparation-only content reuse package. Draft copy is not the same as published, sent, boosted, scheduled, or live content.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "package_id",
    "created_at",
    "source_asset",
    "allowed_outputs",
    "blocked_outputs",
    "channel_outputs",
    "validation",
    "handoff",
    "downstream_status"
  ],
  "properties": {
    "package_id": {
      "type": "string",
      "description": "Unique content reuse package identifier."
    },
    "created_at": {
      "type": "string",
      "description": "ISO 8601 timestamp when the package was created."
    },
    "source_asset": {
      "type": "object",
      "description": "Source asset being reused.",
      "additionalProperties": false,
      "required": [
        "asset_type",
        "source_url",
        "source_summary",
        "verification_status",
        "source_last_checked_at",
        "source_limitations"
      ],
      "properties": {
        "asset_type": {
          "type": "string",
          "enum": [
            "inventory_reference",
            "review_proof",
            "newsletter_issue",
            "campaign_brief",
            "show_page",
            "service_page",
            "landing_page",
            "verified_source",
            "internal_note"
          ],
          "description": "Source asset type."
        },
        "source_url": {
          "type": "string",
          "description": "Source URL."
        },
        "source_summary": {
          "type": "string",
          "description": "Brief summary of source asset without unsupported claims."
        },
        "verification_status": {
          "type": "string",
          "enum": [
            "verified",
            "verified_but_time_sensitive",
            "unverified",
            "not_claimed",
            "blocked",
            "needs_human_review"
          ],
          "description": "Verification status."
        },
        "source_last_checked_at": {
          "type": "string",
          "description": "ISO timestamp when checked, if available."
        },
        "source_limitations": {
          "type": "array",
          "description": "Known source limitations.",
          "items": {
            "type": "string",
            "description": "One item."
          }
        }
      }
    },
    "allowed_outputs": {
      "type": "object",
      "description": "Allowed output statuses.",
      "additionalProperties": false,
      "required": [
        "facebook_post",
        "instagram_caption",
        "google_business_profile_post",
        "youtube_description",
        "youtube_shorts_description",
        "newsletter_block",
        "sms_teaser",
        "landing_page_snippet",
        "paid_media_note",
        "internal_summary"
      ],
      "properties": {
        "facebook_post": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for facebook_post."
        },
        "instagram_caption": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for instagram_caption."
        },
        "google_business_profile_post": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for google_business_profile_post."
        },
        "youtube_description": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for youtube_description."
        },
        "youtube_shorts_description": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for youtube_shorts_description."
        },
        "newsletter_block": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for newsletter_block."
        },
        "sms_teaser": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for sms_teaser."
        },
        "landing_page_snippet": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for landing_page_snippet."
        },
        "paid_media_note": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for paid_media_note."
        },
        "internal_summary": {
          "type": "string",
          "enum": [
            "allowed",
            "blocked",
            "not_requested",
            "draft_only",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Allowed output status for internal_summary."
        }
      }
    },
    "blocked_outputs": {
      "type": "array",
      "description": "Outputs blocked by evidence, policy, moderation, or compliance limits.",
      "items": {
        "type": "string",
        "description": "One blocked output."
      }
    },
    "channel_outputs": {
      "type": "object",
      "description": "Draft channel output copy or notes. Drafts are not live placements.",
      "additionalProperties": false,
      "required": [
        "facebook_post",
        "instagram_caption",
        "google_business_profile_post",
        "youtube_description",
        "youtube_shorts_description",
        "newsletter_block",
        "sms_teaser",
        "landing_page_snippet",
        "paid_media_note",
        "internal_summary"
      ],
      "properties": {
        "facebook_post": {
          "type": "string",
          "description": "Draft or note for facebook_post."
        },
        "instagram_caption": {
          "type": "string",
          "description": "Draft or note for instagram_caption."
        },
        "google_business_profile_post": {
          "type": "string",
          "description": "Draft or note for google_business_profile_post."
        },
        "youtube_description": {
          "type": "string",
          "description": "Draft or note for youtube_description."
        },
        "youtube_shorts_description": {
          "type": "string",
          "description": "Draft or note for youtube_shorts_description."
        },
        "newsletter_block": {
          "type": "string",
          "description": "Draft or note for newsletter_block."
        },
        "sms_teaser": {
          "type": "string",
          "description": "Draft or note for sms_teaser."
        },
        "landing_page_snippet": {
          "type": "string",
          "description": "Draft or note for landing_page_snippet."
        },
        "paid_media_note": {
          "type": "string",
          "description": "Draft or note for paid_media_note."
        },
        "internal_summary": {
          "type": "string",
          "description": "Draft or note for internal_summary."
        }
      }
    },
    "validation": {
      "type": "object",
      "description": "Validation checks for reuse.",
      "additionalProperties": false,
      "required": [
        "fact_integrity_required",
        "compliance_required",
        "style_required",
        "routing_qa_required",
        "hard_contract_required",
        "meaning_preservation_required",
        "validation_status",
        "missing_evidence"
      ],
      "properties": {
        "fact_integrity_required": {
          "type": "boolean",
          "description": "Whether fact-integrity checks are required."
        },
        "compliance_required": {
          "type": "boolean",
          "description": "Whether compliance checks are required."
        },
        "style_required": {
          "type": "boolean",
          "description": "Whether style checks are required."
        },
        "routing_qa_required": {
          "type": "boolean",
          "description": "Whether routing QA is required."
        },
        "hard_contract_required": {
          "type": "boolean",
          "description": "Whether strict no-unsupported-claims contract applies."
        },
        "meaning_preservation_required": {
          "type": "boolean",
          "description": "Whether reuse must preserve source meaning."
        },
        "validation_status": {
          "type": "string",
          "enum": [
            "draft",
            "planning_only",
            "ready_for_handoff",
            "blocked_missing_required_fields",
            "blocked_missing_source_evidence",
            "needs_human_review",
            "failed_validation"
          ],
          "description": "Validation status."
        },
        "missing_evidence": {
          "type": "array",
          "description": "Missing evidence.",
          "items": {
            "type": "string",
            "description": "One item."
          }
        }
      }
    },
    "handoff": {
      "type": "object",
      "description": "Prepared handoff details. This is not execution.",
      "additionalProperties": false,
      "required": [
        "target_system",
        "handoff_name",
        "owner_team",
        "payload_summary",
        "required_fields",
        "missing_fields",
        "next_human_or_system_action",
        "handoff_status"
      ],
      "properties": {
        "target_system": {
          "type": "string",
          "description": "Target system for future approved handoff."
        },
        "handoff_name": {
          "type": "string",
          "description": "Handoff name."
        },
        "owner_team": {
          "type": "string",
          "description": "Owner team."
        },
        "payload_summary": {
          "type": "string",
          "description": "Safe summary."
        },
        "required_fields": {
          "type": "array",
          "description": "Required fields.",
          "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 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."
    }
  }
}
