# Bridge Payload Mapping

This document records payload key normalization for bridge-first job handling.

## Identifier Mapping

| Context | Legacy key | Current key | Notes |
|---|---|---|---|
| Job payloads (AJAX/REST responses) | `wpml_job_id` | `legacy_wpml_job_id` | Kept as explicit legacy reference only |
| Job payloads (AJAX/REST responses) | `id` | `job_id` + `local_job_id` | `local_job_id` is primary runtime identifier |
| Callback payload token | `job_id=wp_{id}` | `job_id=wp_{local_job_id}` | Legacy fallback lookup still supported |

## Current Compatibility Rules

- Primary runtime key: `local_job_id`
- Compatibility key: `job_id` (mirrors local ID in bridge-first flows)
- Legacy key: `legacy_wpml_job_id` when available
- Database schema remains unchanged (`wpml_job_id` column retained for backward compatibility)

## Hook Migration

- New bridge-first hooks:
  - `presszone_translate_before_send_content_bridge`
  - `presszone_translate_custom_fields_bridge`
  - `presszone_translate_api_payload_bridge`
  - `presszone_translate_before_send_job_bridge`
  - `presszone_translate_after_send_job_bridge`
- Legacy hooks are still executed but deprecated via WordPress deprecation helpers.
