Un événement Jichio se lit en trois couches : une envelope plate, un contexte structuré dans properties, et une couche serveur ajoutée à l’ingestion.

Couche 1 — Envelope

Champs plats, toujours présents. Ils deviennent des colonnes dans ClickHouse.
projectId n’est pas envoyé par le SDK : il est résolu côté serveur à partir de la clé API.

Couche 2 — Context (properties.*)

Namespaces structurés, remplis automatiquement par le SDK. Les namespaces présents dépendent du type d’événement — voir Profils de capture.

Couche 3 — Server (properties.server)

Injectée uniquement par l’API à l’ingestion — jamais envoyée par le client.
L’IP et la géolocalisation sont toujours collectées côté serveur. Le SDK client ne collecte jamais l’IP (précision, vie privée, latence).

Exemple — click enrichi

Décisions figées (V1)