# description
Versioned contract between the browser capture layer and the deterministic check layer. v1 is the canonical contract. See docs/specs/beacon_event_v1.md.

# properties.schema_version.description
Schema version. Always '1' for v1. Future versions will be '2', '3', etc.

# properties.vendor.description
Vendor identifier. 'unknown' is a valid first-class value — the consumer must handle it gracefully (drop or quarantine).

# properties.event_name.description
Vendor event name (page_view, ViewContent, Lead, etc.). Null when the request is a loader (e.g. /gtm.js).

# properties.account_id.description
Account / pixel / container id (G-XXXX, GTM-XXXX, Meta pixel id).

# properties.request_url.description
The full request URL as captured (host + path + query). For POSTs, params may also be in the body.

# properties.params.description
Query / form parameters, all stringified. The capture layer normalizes arrays to comma-joined strings.

# properties.post_body_excerpt.description
Capped excerpt of POST body (max 1KB). The full payload is NEVER included in the schema.

# properties.page_url.description
The page URL that emitted the beacon (after redirects).

# properties.timestamp.description
ISO 8601 timestamp of the capture event (UTC).