{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agent.pricerightdigital.com/review-reuse-schema.json",
  "title": "Price Right Digital Review Reuse Packet",
  "description": "A preparation-only packet for review request and reputation reuse handoffs. It does not prove a review was sent, received, posted, reused, published, inserted, or confirmed downstream.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "packet_id",
    "created_at",
    "source_system",
    "source_url",
    "review_context",
    "moderation",
    "reuse_destinations",
    "variants",
    "handoff",
    "validation_status",
    "downstream_status"
  ],
  "properties": {
    "packet_id": {
      "type": "string",
      "description": "Unique packet identifier generated before review request or reuse handoff preparation."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the packet was created."
    },
    "source_system": {
      "type": "string",
      "description": "System that prepared the packet, such as agent_hub, form, script, or internal_tool."
    },
    "source_url": {
      "type": "string",
      "format": "uri",
      "description": "URL where review request or review reuse preparation originated."
    },
    "review_context": {
      "type": "object",
      "description": "Context for the review or review request. Do not use real customer data in examples and do not invent review content.",
      "additionalProperties": false,
      "required": [
        "review_source",
        "review_received_at",
        "review_text",
        "reviewer_display_name",
        "store_or_location",
        "transaction_type",
        "sale_or_service_timing",
        "source_evidence_note"
      ],
      "properties": {
        "review_source": {
          "type": "string",
          "description": "Source of the review or request context, such as example_source, customer_submitted, review_platform, or internal_sheet. Do not treat this as proof of publication."
        },
        "review_received_at": {
          "type": "string",
          "description": "Timestamp or date when the review was received, if known. Use an empty string if not supplied."
        },
        "review_text": {
          "type": "string",
          "description": "Review text supplied by an approved source. Do not invent real review content or reuse unmoderated review text."
        },
        "reviewer_display_name": {
          "type": "string",
          "description": "Reviewer display name if allowed for reuse. Use placeholder data in examples and avoid real customer data without approval."
        },
        "store_or_location": {
          "type": "string",
          "description": "Store or location associated with the review if verified and safe to include."
        },
        "transaction_type": {
          "type": "string",
          "description": "Sale, service, parts, finance, or other transaction type if supplied and safe to include."
        },
        "sale_or_service_timing": {
          "type": "string",
          "description": "Timing note for the transaction if supplied. Do not infer timing."
        },
        "source_evidence_note": {
          "type": "string",
          "description": "Evidence note describing where the review content came from and whether moderation evidence exists."
        }
      }
    },
    "moderation": {
      "type": "object",
      "description": "Moderation status and reuse limits. A review must not be reused unless moderation status supports reuse.",
      "additionalProperties": false,
      "required": [
        "moderation_status",
        "moderation_notes",
        "privacy_flags",
        "legal_or_sensitive_flags",
        "meaning_preservation_required",
        "approved_reuse_destinations",
        "blocked_reuse_destinations",
        "blocked_reason"
      ],
      "properties": {
        "moderation_status": {
          "type": "string",
          "enum": [
            "not_reviewed",
            "needs_human_review",
            "approved_for_reuse",
            "approved_with_limits",
            "blocked_for_reuse",
            "failed_validation"
          ],
          "description": "Moderation status for reuse. Do not mark approved without moderation evidence."
        },
        "moderation_notes": {
          "type": "string",
          "description": "Notes from review moderation. Use empty string if no review has occurred."
        },
        "privacy_flags": {
          "type": "array",
          "description": "Privacy concerns such as personal data, contact details, or customer identifiers.",
          "items": {
            "type": "string",
            "description": "One privacy flag."
          }
        },
        "legal_or_sensitive_flags": {
          "type": "array",
          "description": "Legal, safety, health, finance, discrimination, or other sensitive-content concerns.",
          "items": {
            "type": "string",
            "description": "One legal or sensitive-content flag."
          }
        },
        "meaning_preservation_required": {
          "type": "boolean",
          "description": "Whether truncation or variants must preserve the original review meaning. This should be true for reuse."
        },
        "approved_reuse_destinations": {
          "type": "array",
          "description": "Destinations approved by moderation evidence for reuse.",
          "items": {
            "type": "string",
            "description": "One approved destination key."
          }
        },
        "blocked_reuse_destinations": {
          "type": "array",
          "description": "Destinations blocked by moderation or policy.",
          "items": {
            "type": "string",
            "description": "One blocked destination key."
          }
        },
        "blocked_reason": {
          "type": "string",
          "description": "Reason reuse is blocked or limited. Use empty string if not blocked."
        }
      }
    },
    "reuse_destinations": {
      "type": "object",
      "description": "Destination status for requested or approved reuse. Published confirmation requires downstream evidence.",
      "additionalProperties": false,
      "required": [
        "homepage_ticker",
        "homepage_carousel",
        "vdp_snippet",
        "social_post",
        "newsletter_block",
        "google_business_profile",
        "internal_reference_only"
      ],
      "properties": {
        "homepage_ticker": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for homepage_ticker. Do not mark published_confirmed without downstream confirmation."
        },
        "homepage_carousel": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for homepage_carousel. Do not mark published_confirmed without downstream confirmation."
        },
        "vdp_snippet": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for vdp_snippet. Do not mark published_confirmed without downstream confirmation."
        },
        "social_post": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for social_post. Do not mark published_confirmed without downstream confirmation."
        },
        "newsletter_block": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for newsletter_block. Do not mark published_confirmed without downstream confirmation."
        },
        "google_business_profile": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for google_business_profile. Do not mark published_confirmed without downstream confirmation."
        },
        "internal_reference_only": {
          "type": "string",
          "enum": [
            "requested",
            "approved",
            "blocked",
            "not_requested",
            "handed_off",
            "published_confirmed"
          ],
          "description": "Reuse status for internal_reference_only. Do not mark published_confirmed without downstream confirmation."
        }
      }
    },
    "variants": {
      "type": "object",
      "description": "Draft reuse variants. Variants may only be created from moderated and approved review text for live use.",
      "additionalProperties": false,
      "required": [
        "homepage_ticker",
        "homepage_truncated_block",
        "vdp_snippet",
        "social_proof_caption",
        "newsletter_proof_block",
        "internal_summary"
      ],
      "properties": {
        "homepage_ticker": {
          "type": "string",
          "description": "Draft homepage ticker variant. Do not publish or claim live placement without confirmation."
        },
        "homepage_truncated_block": {
          "type": "string",
          "description": "Draft homepage block variant. Truncation must not alter review meaning."
        },
        "vdp_snippet": {
          "type": "string",
          "description": "Draft vehicle detail page snippet. Do not imply unit-specific endorsement unless approved."
        },
        "social_proof_caption": {
          "type": "string",
          "description": "Draft social caption for approved review reuse only."
        },
        "newsletter_proof_block": {
          "type": "string",
          "description": "Draft newsletter block for approved review reuse only."
        },
        "internal_summary": {
          "type": "string",
          "description": "Internal planning summary. This is not a public review claim."
        }
      }
    },
    "handoff": {
      "type": "object",
      "description": "Prepared handoff details. Handoff preparation is not downstream 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 a future approved handoff, such as review_sheet, cms, social_tool, newsletter_tool, or internal_review."
        },
        "handoff_name": {
          "type": "string",
          "description": "Name of the prepared handoff."
        },
        "owner_team": {
          "type": "string",
          "description": "Team or role expected to review or execute the handoff."
        },
        "payload_summary": {
          "type": "string",
          "description": "Safe summary of the payload without unsupported claims."
        },
        "required_fields": {
          "type": "array",
          "description": "Fields required before the handoff can proceed.",
          "items": {
            "type": "string",
            "description": "One required handoff field."
          }
        },
        "missing_fields": {
          "type": "array",
          "description": "Fields missing from the prepared handoff.",
          "items": {
            "type": "string",
            "description": "One missing handoff field."
          }
        },
        "next_human_or_system_action": {
          "type": "string",
          "description": "Next action needed by a human or approved system before reuse or publication."
        },
        "handoff_status": {
          "type": "string",
          "description": "Current handoff status. This is not proof of downstream completion."
        }
      }
    },
    "validation_status": {
      "type": "string",
      "enum": [
        "draft",
        "ready_for_handoff",
        "blocked_missing_required_fields",
        "blocked_unmoderated_review",
        "needs_human_review",
        "approved_with_warnings",
        "failed_validation"
      ],
      "description": "Packet validation status for preparation and moderation workflow."
    },
    "downstream_status": {
      "type": "string",
      "enum": [
        "not_sent",
        "handed_off",
        "awaiting_confirmation",
        "confirmed",
        "failed"
      ],
      "description": "Downstream status. Do not mark confirmed without direct downstream evidence."
    }
  }
}
