{
  "schema": "agentatwork.acquisition-integrity.v1",
  "privacy": {
    "required": "Use synthetic row identifiers before transfer.",
    "prohibited_fields": [
      "ip_address",
      "advertising_id",
      "email_address",
      "stable_device_identifier"
    ]
  },
  "control_totals": {
    "billed_conversion_count": "integer supplied from the invoice or platform export",
    "classified_plus_unknown_plus_unmatched": "must equal billed_conversion_count"
  },
  "row": {
    "synthetic_row_id": "buyer-created non-reversible identifier",
    "campaign_ref": "campaign label with no account credential",
    "platform_conversion_ref": "redacted or synthetic conversion reference",
    "platform_event_at": "ISO-8601 timestamp or null",
    "billed_amount": "decimal or null",
    "billed_currency": "ISO-4217 code or null",
    "platform_country": "two-letter country code or null",
    "first_party_match": "matched | no_match | ambiguous",
    "first_party_event_at": "ISO-8601 timestamp or null",
    "app_build_relation": "served_at_event_time | not_served_at_event_time | unknown | not_applicable",
    "inside_target_geography": "true | false | null",
    "outcome_name": "agreed business outcome, for example retained_session or completed_puzzle",
    "outcome_count": "non-negative integer or null",
    "engagement_bucket": "zero | below_threshold | reached_threshold | unknown",
    "classification": "supported_conversion | contradicted_conversion | outside_scope | duplicate_or_ambiguous | unknown | unmatched",
    "rule_id": "versioned deterministic rule or null",
    "evidence_fields": "array naming the source fields used by the rule",
    "source_row_hashes": "array of SHA-256 hashes of the redacted input rows",
    "notes": "bounded factual note; never an inferred identity"
  }
}
