{
  "openapi": "3.1.0",
  "info": {
    "title": "Postlip Metrics Tracking API",
    "version": "1.0.0",
    "description": "Ürünlerin Postlip Metrics'e olay göndermesi için sözleşme — **Segment Tracking API Spec uyumlu** (aynı uçlar, mesaj alanları ve kimlik doğrulama; Segment/RudderStack istemcileri `host` ayarıyla kullanılabilir). Ayrıntı ve örnekler: `docs/api/tracking-api.md`. Kimlik: kaynağın yazma anahtarı (`pk_live_…` / `pk_test_…`) HTTP Basic kullanıcı adı olarak, `Authorization: Bearer` ile ya da tarayıcı beacon'ında gövdede `writeKey`. Sunucu kaynakları isteği `Metrics-Signature` başlığıyla imzalar (kaynakta zorunlu kılınabilir). İdempotentlik: `messageId` — aynı gerçek olay için aynı kimliği üretin; tekrar eden mesaj bir kez saklanır."
  },
  "servers": [
    {
      "url": "https://collect.metrics.example",
      "description": "Tracking API"
    },
    {
      "url": "http://localhost:7110",
      "description": "Yerel geliştirme"
    }
  ],
  "tags": [
    {
      "name": "Olay gönderimi",
      "description": "track, identify, page, screen, group, alias ve toplu gönderim."
    },
    {
      "name": "Kurulum",
      "description": "Bağlantı testi, SDK uzak yapılandırması, web SDK paketi, sağlık."
    }
  ],
  "paths": {
    "/v1/track": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendTrack",
        "summary": "Olay (track)",
        "description": "Kullanıcının yaptığı bir eylem. `event` uygulamanın olay kataloğuna göre doğrulanır (strict/lenient/discover). `$` ile başlayan adlar SDK sistem olaylarıdır (bkz. `x-system-events`).",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/identify": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendIdentify",
        "summary": "Kişiyi tanıt (identify)",
        "description": "Anonim kimliği kullanıcı kimliğine bağlar; `traits` kişi özellikleridir.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentifyMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/page": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendPage",
        "summary": "Sayfa görüntüleme (page)",
        "description": "Web sayfası görüntüleme. `properties.url` ya da `context.page.url` gönderin.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/screen": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendScreen",
        "summary": "Ekran görüntüleme (screen)",
        "description": "Mobil uygulama ekranı.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/group": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendGroup",
        "summary": "Hesaba bağla (group)",
        "description": "Kişiyi bir hesaba (şirket, büro, site…) bağlar; `traits` hesap özellikleridir.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/alias": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendAlias",
        "summary": "Kimlik birleştir (alias)",
        "description": "`previousId` ile `userId` aynı kişidir.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AliasMessage"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/batch": {
      "post": {
        "tags": [
          "Olay gönderimi"
        ],
        "operationId": "sendBatch",
        "summary": "Toplu gönderim (batch)",
        "description": "En fazla 500 mesaj, karışık tiplerde; her mesajda `type` zorunlu. Tarayıcıdan `text/plain` gövdeyle ve `writeKey` gövdede gönderilebilir (CORS ön isteği yok).",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string",
                "description": "Aynı JSON, metin olarak (tarayıcı beacon)."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İşlendi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Gövde okunamadı ya da bütün mesajlar reddedildi (`all_rejected`, `rejected` listesiyle). Tekrar etmeyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "403": {
            "description": "`Origin` kaynağın izinli alan adlarında değil (`origin_not_allowed`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "413": {
            "description": "Mesaj > 32 KB ya da parti > 500 KB / 500 mesaj. Partiyi bölün.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "429": {
            "description": "Kaynağın hız sınırı aşıldı (`rate_limited`; mesaj sayısıyla, varsayılan dakikada 60.000, bir anda 10.000): hiçbir mesaj saklanmadı. `Retry-After` saniye bekleyip aynı partiyi yeniden gönderin.",
            "headers": {
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          },
          "5XX": {
            "description": "Geçici hata: üstel geri çekilmeyle tekrar deneyin (1 dk, 5 dk, 30 dk, 2 sa… en fazla 24 sa)."
          }
        }
      }
    },
    "/v1/ping": {
      "post": {
        "tags": [
          "Kurulum"
        ],
        "operationId": "ping",
        "summary": "Bağlantı testi",
        "description": "Anahtarı ve (gönderildiyse ya da kaynak istiyorsa) imzayı doğrular; hiçbir şey kaydetmez. Gövde `{}`.",
        "security": [
          {
            "writeKeyBasic": []
          },
          {
            "writeKeyBearer": []
          },
          {
            "writeKeyBasic": [],
            "signature": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Anahtar (ve imza) geçerli.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponse"
                }
              }
            }
          },
          "401": {
            "description": "Anahtar yok/yanlış (`missing_key`, `invalid_key`) ya da imza (`signature_required`, `signature_invalid`, `signature_expired`). Anahtarı ve sunucu saatini denetleyin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config/{writeKey}": {
      "get": {
        "tags": [
          "Kurulum"
        ],
        "operationId": "getRemoteConfig",
        "summary": "SDK uzak yapılandırması",
        "description": "Panelde kaynak için yapılan yakalama ayarları (hariç yollar, rıza kipi, otomatik yakalama, örnekleme…). `ttlSeconds` kadar önbelleğe alınabilir; istek başarısızsa SDK varsayılanlarla çalışır.",
        "security": [],
        "parameters": [
          {
            "name": "writeKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Kaynağın yazma anahtarı (`pk_…`)."
          },
          {
            "name": "schemaHints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "description": "`1`: yanıtta ayrıca `schemaHints` — uygulamanın olay planının özeti (planlanmış olaylar ve zorunlu özellikleri, engellenen olaylar, şema kipi). Web SDK debug kipinde ister; parametresiz yanıt değişmez."
          }
        ],
        "responses": {
          "200": {
            "description": "Yapılandırma.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteConfig"
                }
              }
            }
          },
          "404": {
            "description": "Anahtar tanınmadı.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refusal"
                }
              }
            }
          }
        }
      }
    },
    "/m.js": {
      "get": {
        "tags": [
          "Kurulum"
        ],
        "operationId": "getWebSdk",
        "summary": "Web SDK (pixel)",
        "description": "Kurulum kodunun yüklediği tarayıcı SDK'sı (`@metrics/web`, ≤ 12 KB gzip). ETag ile önbelleklenir.",
        "security": [],
        "responses": {
          "200": {
            "description": "JavaScript.",
            "content": {
              "application/javascript": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Değişmedi."
          }
        }
      }
    },
    "/v1/health": {
      "get": {
        "tags": [
          "Kurulum"
        ],
        "operationId": "health",
        "summary": "Sağlık",
        "security": [],
        "responses": {
          "200": {
            "description": "Süreç ve veritabanı çalışıyor.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "database": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "TrackingResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": true
          },
          "accepted": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Mesajlardan kabul edilenlerin sayısı (tekrar edenler dahil; tekrar eden bir kez saklanır)."
          },
          "rejected": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "messageId": {
                  "type": "string"
                },
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "enum": [
                          "invalid_message",
                          "unknown_type",
                          "event_name_missing",
                          "identity_missing",
                          "event_unplanned",
                          "event_blocked",
                          "property_required",
                          "property_type",
                          "property_unplanned",
                          "property_too_long",
                          "pii_detected",
                          "timestamp_invalid",
                          "timestamp_out_of_range",
                          "message_too_large",
                          "currency_unknown",
                          "property_out_of_range"
                        ]
                      },
                      "path": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "path",
                      "message"
                    ]
                  }
                }
              },
              "required": [
                "index",
                "errors"
              ]
            },
            "description": "Reddedilenler. Düzeltmeden tekrar göndermeyin."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "code": {
                  "type": "string",
                  "enum": [
                    "invalid_message",
                    "unknown_type",
                    "event_name_missing",
                    "identity_missing",
                    "event_unplanned",
                    "event_blocked",
                    "property_required",
                    "property_type",
                    "property_unplanned",
                    "property_too_long",
                    "pii_detected",
                    "timestamp_invalid",
                    "timestamp_out_of_range",
                    "message_too_large",
                    "currency_unknown",
                    "property_out_of_range"
                  ]
                },
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "index",
                "code",
                "path"
              ]
            },
            "description": "Kabul edildi ama dikkat: planlanmamış özellik, kişisel veri maskelendi…"
          }
        },
        "required": [
          "success",
          "accepted",
          "rejected",
          "warnings"
        ]
      },
      "Refusal": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ]
          },
          "rejected": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "index": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "messageId": {
                  "type": "string"
                },
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "enum": [
                          "invalid_message",
                          "unknown_type",
                          "event_name_missing",
                          "identity_missing",
                          "event_unplanned",
                          "event_blocked",
                          "property_required",
                          "property_type",
                          "property_unplanned",
                          "property_too_long",
                          "pii_detected",
                          "timestamp_invalid",
                          "timestamp_out_of_range",
                          "message_too_large",
                          "currency_unknown",
                          "property_out_of_range"
                        ]
                      },
                      "path": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "path",
                      "message"
                    ]
                  }
                }
              },
              "required": [
                "index",
                "errors"
              ]
            }
          }
        },
        "required": [
          "success",
          "error"
        ]
      },
      "PingResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": true
          },
          "sourceId": {
            "type": "string"
          },
          "appId": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "test": {
            "type": "boolean"
          },
          "signature": {
            "type": "string",
            "enum": [
              "valid",
              "absent"
            ]
          }
        },
        "required": [
          "success",
          "sourceId",
          "appId",
          "environment",
          "test",
          "signature"
        ]
      },
      "RemoteConfig": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string"
          },
          "appId": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "web",
              "ios",
              "android",
              "server",
              "other"
            ]
          },
          "environment": {
            "type": "string",
            "enum": [
              "production",
              "staging",
              "development"
            ]
          },
          "test": {
            "type": "boolean"
          },
          "ttlSeconds": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "consentMode": {
            "type": "string",
            "enum": [
              "required",
              "implied",
              "none"
            ]
          },
          "excludedPaths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maskSelectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ignoreSelectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "stripQueryParams": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sessionTimeoutMinutes": {
            "type": "integer",
            "minimum": 5,
            "maximum": 240
          },
          "interactionSampleRate": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "autocapture": {
            "type": "object",
            "properties": {
              "pageviews": {
                "type": "boolean"
              },
              "pageleave": {
                "type": "boolean"
              },
              "clicks": {
                "type": "boolean"
              },
              "rageClicks": {
                "type": "boolean"
              },
              "deadClicks": {
                "type": "boolean"
              },
              "scroll": {
                "type": "boolean"
              },
              "errors": {
                "type": "boolean"
              },
              "forms": {
                "type": "boolean"
              },
              "layout": {
                "type": "boolean"
              },
              "outboundLinks": {
                "type": "boolean"
              },
              "downloads": {
                "type": "boolean"
              },
              "webVitals": {
                "type": "boolean"
              }
            },
            "required": [
              "pageviews",
              "pageleave",
              "clicks",
              "rageClicks",
              "deadClicks",
              "scroll",
              "errors",
              "forms",
              "layout",
              "outboundLinks",
              "downloads",
              "webVitals"
            ]
          },
          "dataLayerEvents": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "schemaHints": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "strict",
                  "lenient",
                  "discover"
                ]
              },
              "events": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "required": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "name",
                    "required"
                  ]
                }
              },
              "blocked": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "truncated": {
                "type": "boolean"
              }
            },
            "required": [
              "mode",
              "events",
              "blocked",
              "truncated"
            ]
          }
        },
        "required": [
          "sourceId",
          "appId",
          "kind",
          "environment",
          "test",
          "ttlSeconds",
          "consentMode",
          "excludedPaths",
          "maskSelectors",
          "ignoreSelectors",
          "stripQueryParams",
          "sessionTimeoutMinutes",
          "interactionSampleRate",
          "autocapture",
          "dataLayerEvents"
        ]
      },
      "Context": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "maxLength": 64
          },
          "userAgent": {
            "type": "string",
            "maxLength": 1000
          },
          "locale": {
            "type": "string",
            "maxLength": 35
          },
          "timezone": {
            "type": "string",
            "maxLength": 64
          },
          "groupId": {
            "type": [
              "string",
              "number"
            ]
          },
          "traits": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "page": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "maxLength": 4000
              },
              "path": {
                "type": "string",
                "maxLength": 2000
              },
              "title": {
                "type": "string",
                "maxLength": 1000
              },
              "referrer": {
                "type": "string",
                "maxLength": 4000
              },
              "search": {
                "type": "string",
                "maxLength": 2000
              }
            },
            "additionalProperties": {}
          },
          "campaign": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 200
              },
              "medium": {
                "type": "string",
                "maxLength": 200
              },
              "name": {
                "type": "string",
                "maxLength": 300
              },
              "content": {
                "type": "string",
                "maxLength": 300
              },
              "term": {
                "type": "string",
                "maxLength": 300
              },
              "id": {
                "type": "string",
                "maxLength": 200
              }
            },
            "additionalProperties": {}
          },
          "app": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "version": {
                "type": "string",
                "maxLength": 100
              },
              "build": {
                "type": "string",
                "maxLength": 100
              },
              "namespace": {
                "type": "string",
                "maxLength": 300
              }
            },
            "additionalProperties": {}
          },
          "device": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "maxLength": 50
              },
              "manufacturer": {
                "type": "string",
                "maxLength": 100
              },
              "model": {
                "type": "string",
                "maxLength": 100
              },
              "id": {
                "type": "string",
                "maxLength": 200
              },
              "advertisingId": {
                "type": "string",
                "maxLength": 200
              }
            },
            "additionalProperties": {}
          },
          "os": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100
              },
              "version": {
                "type": "string",
                "maxLength": 100
              }
            },
            "additionalProperties": {}
          },
          "screen": {
            "type": "object",
            "properties": {
              "width": {
                "type": "number",
                "minimum": 0
              },
              "height": {
                "type": "number",
                "minimum": 0
              },
              "density": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "additionalProperties": {}
          },
          "library": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100
              },
              "version": {
                "type": "string",
                "maxLength": 50
              }
            },
            "additionalProperties": {}
          },
          "viewport": {
            "type": "object",
            "properties": {
              "width": {
                "type": "number",
                "minimum": 0
              },
              "height": {
                "type": "number",
                "minimum": 0
              }
            },
            "additionalProperties": {}
          },
          "clickIds": {
            "type": "object",
            "properties": {
              "gclid": {
                "type": "string",
                "maxLength": 500
              },
              "gbraid": {
                "type": "string",
                "maxLength": 500
              },
              "wbraid": {
                "type": "string",
                "maxLength": 500
              },
              "dclid": {
                "type": "string",
                "maxLength": 500
              },
              "fbclid": {
                "type": "string",
                "maxLength": 500
              },
              "fbc": {
                "type": "string",
                "maxLength": 500
              },
              "fbp": {
                "type": "string",
                "maxLength": 500
              },
              "li_fat_id": {
                "type": "string",
                "maxLength": 500
              },
              "msclkid": {
                "type": "string",
                "maxLength": 500
              },
              "ttclid": {
                "type": "string",
                "maxLength": 500
              },
              "yclid": {
                "type": "string",
                "maxLength": 500
              },
              "gclid_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "additionalProperties": {}
          },
          "attribution": {
            "type": "object",
            "properties": {
              "first_touch": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "campaign": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "campaign_id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "landing_path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "referrer_host": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  }
                },
                "additionalProperties": {}
              },
              "last_non_direct_touch": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "campaign": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "campaign_id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "landing_path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "referrer_host": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  }
                },
                "additionalProperties": {}
              },
              "session_touch": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "campaign": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "campaign_id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "landing_path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "referrer_host": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "at": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  }
                },
                "additionalProperties": {}
              },
              "method": {
                "type": "string",
                "enum": [
                  "consent",
                  "same_visit"
                ]
              }
            },
            "additionalProperties": {}
          },
          "consent": {
            "type": "object",
            "properties": {
              "analytics": {
                "type": "boolean"
              },
              "marketing": {
                "type": "boolean"
              }
            },
            "required": [
              "analytics",
              "marketing"
            ],
            "additionalProperties": {}
          },
          "session": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "start": {
                "type": "boolean"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": {}
          },
          "tab": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": {}
          },
          "test": {
            "type": "boolean"
          },
          "internal": {
            "type": "boolean"
          },
          "ga": {
            "type": "object",
            "properties": {
              "clientId": {
                "type": "string",
                "pattern": "^\\d{1,20}\\.\\d{1,20}$"
              },
              "sessionId": {
                "type": "string",
                "pattern": "^\\d{1,20}$"
              }
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      },
      "TrackMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "track"
          },
          "event": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "properties": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "event"
        ],
        "additionalProperties": {}
      },
      "IdentifyMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "identify"
          },
          "traits": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      },
      "PageMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "page"
          },
          "name": {
            "type": "string",
            "maxLength": 500
          },
          "category": {
            "type": "string",
            "maxLength": 200
          },
          "properties": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      },
      "ScreenMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "screen"
          },
          "name": {
            "type": "string",
            "maxLength": 500
          },
          "category": {
            "type": "string",
            "maxLength": 200
          },
          "properties": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      },
      "GroupMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "group"
          },
          "groupId": {
            "type": [
              "string",
              "number"
            ]
          },
          "traits": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "groupId"
        ],
        "additionalProperties": {}
      },
      "AliasMessage": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "pattern": "^[\\x21-\\x7e]{1,100}$"
          },
          "anonymousId": {
            "type": [
              "string",
              "number"
            ]
          },
          "userId": {
            "type": [
              "string",
              "number"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "maxLength": 64
              },
              "userAgent": {
                "type": "string",
                "maxLength": 1000
              },
              "locale": {
                "type": "string",
                "maxLength": 35
              },
              "timezone": {
                "type": "string",
                "maxLength": 64
              },
              "groupId": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "traits": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "page": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "referrer": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "search": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": {}
              },
              "campaign": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "medium": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "term": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "app": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "build": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "namespace": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": {}
              },
              "device": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "maxLength": 50
                  },
                  "manufacturer": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "model": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "id": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "advertisingId": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": {}
              },
              "os": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": {}
              },
              "screen": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  },
                  "density": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "library": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "version": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": {}
              },
              "viewport": {
                "type": "object",
                "properties": {
                  "width": {
                    "type": "number",
                    "minimum": 0
                  },
                  "height": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "additionalProperties": {}
              },
              "clickIds": {
                "type": "object",
                "properties": {
                  "gclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "wbraid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "dclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbc": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "fbp": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "li_fat_id": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "msclkid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "ttclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "yclid": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "gclid_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "attribution": {
                "type": "object",
                "properties": {
                  "first_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "last_non_direct_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "session_touch": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "medium": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "campaign": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "content": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "term": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "campaign_id": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "landing_path": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "referrer_host": {
                        "type": "string",
                        "maxLength": 300
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "additionalProperties": {}
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "consent",
                      "same_visit"
                    ]
                  }
                },
                "additionalProperties": {}
              },
              "consent": {
                "type": "object",
                "properties": {
                  "analytics": {
                    "type": "boolean"
                  },
                  "marketing": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "analytics",
                  "marketing"
                ],
                "additionalProperties": {}
              },
              "session": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "start": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "tab": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": {}
              },
              "test": {
                "type": "boolean"
              },
              "internal": {
                "type": "boolean"
              },
              "ga": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}\\.\\d{1,20}$"
                  },
                  "sessionId": {
                    "type": "string",
                    "pattern": "^\\d{1,20}$"
                  }
                },
                "additionalProperties": {}
              }
            },
            "additionalProperties": {}
          },
          "integrations": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            }
          },
          "type": {
            "type": "string",
            "const": "alias"
          },
          "previousId": {
            "type": [
              "string",
              "number"
            ]
          }
        },
        "required": [
          "userId",
          "previousId"
        ],
        "additionalProperties": {}
      },
      "BatchRequest": {
        "type": "object",
        "required": [
          "batch"
        ],
        "properties": {
          "batch": {
            "type": "array",
            "minItems": 1,
            "maxItems": 500,
            "items": {
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/TrackMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdentifyMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PageMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ScreenMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/GroupMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/AliasMessage"
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ]
                    }
                  ]
                }
              ]
            }
          },
          "writeKey": {
            "type": "string",
            "description": "Yalnız tarayıcı beacon'ı için (başlık gönderilemediğinde)."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "context": {
            "$ref": "#/components/schemas/Context",
            "description": "Kendi `context`'i olmayan mesajlara uygulanır."
          }
        }
      }
    },
    "headers": {
      "RetryAfter": {
        "description": "Yeniden denemeden önce beklenecek saniye.",
        "schema": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "parameters": {
      "Signature": {
        "name": "Metrics-Signature",
        "in": "header",
        "required": false,
        "description": "`t=<unix saniye>,v1=<hex>`; v1 = HMAC-SHA256(imza anahtarı `sk_…`, `t + \".\" + hamGövde`). ±300 sn. Anahtar yenilenirken birden çok `v1=` olabilir.",
        "schema": {
          "type": "string",
          "pattern": "^t=\\d{1,12}(,v1=[0-9a-fA-F]{64})+$"
        }
      }
    },
    "securitySchemes": {
      "writeKeyBasic": {
        "type": "http",
        "scheme": "basic",
        "description": "Kullanıcı adı = yazma anahtarı, şifre boş (Segment uyumlu)."
      },
      "writeKeyBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "pk_…",
        "description": "Yazma anahtarı."
      },
      "signature": {
        "type": "apiKey",
        "in": "header",
        "name": "Metrics-Signature",
        "description": "İstek imzası (sunucu kaynakları)."
      }
    }
  },
  "x-standard-properties": {
    "revenue": "money",
    "value": "number",
    "tax": "money",
    "net_revenue": "money",
    "currency": "currency",
    "order_id": "string",
    "transaction_id": "string",
    "plan_id": "string",
    "test": "boolean"
  },
  "x-system-events": {
    "$pageleave": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "max_scroll_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "active_ms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "total_ms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "final": {
          "type": "boolean"
        },
        "scroll_reversals": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        }
      },
      "required": [
        "path",
        "pageview_id",
        "max_scroll_pct",
        "active_ms",
        "total_ms",
        "final"
      ],
      "additionalProperties": {}
    },
    "$click": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "doc_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "doc_h": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "viewport_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "layout_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{8,64}$"
        },
        "x": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "y": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "target": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "heading",
                "link",
                "button",
                "input",
                "image",
                "media",
                "other"
              ]
            },
            "tag": {
              "type": "string",
              "maxLength": 30
            },
            "label": {
              "type": "string",
              "maxLength": 80
            },
            "selector": {
              "type": "string",
              "maxLength": 300
            },
            "href": {
              "type": "string",
              "maxLength": 2000
            },
            "section": {
              "type": "string",
              "maxLength": 200
            }
          },
          "required": [
            "kind",
            "tag"
          ],
          "additionalProperties": {}
        },
        "dead": {
          "type": "boolean"
        },
        "fixed": {
          "type": "boolean"
        }
      },
      "required": [
        "path",
        "pageview_id",
        "doc_w",
        "doc_h",
        "viewport_w",
        "x",
        "y",
        "target",
        "dead"
      ],
      "additionalProperties": {}
    },
    "$rageclick": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "doc_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "doc_h": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "viewport_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "layout_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{8,64}$"
        },
        "x": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "y": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        },
        "target": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "heading",
                "link",
                "button",
                "input",
                "image",
                "media",
                "other"
              ]
            },
            "tag": {
              "type": "string",
              "maxLength": 30
            },
            "label": {
              "type": "string",
              "maxLength": 80
            },
            "selector": {
              "type": "string",
              "maxLength": 300
            },
            "href": {
              "type": "string",
              "maxLength": 2000
            },
            "section": {
              "type": "string",
              "maxLength": 200
            }
          },
          "required": [
            "kind",
            "tag"
          ],
          "additionalProperties": {}
        },
        "count": {
          "type": "integer",
          "minimum": 3,
          "maximum": 9007199254740991
        },
        "fixed": {
          "type": "boolean"
        }
      },
      "required": [
        "path",
        "pageview_id",
        "doc_w",
        "doc_h",
        "viewport_w",
        "x",
        "y",
        "target",
        "count"
      ],
      "additionalProperties": {}
    },
    "$scroll": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "depth_pct": {
          "anyOf": [
            {
              "type": "number",
              "const": 25
            },
            {
              "type": "number",
              "const": 50
            },
            {
              "type": "number",
              "const": 75
            },
            {
              "type": "number",
              "const": 90
            },
            {
              "type": "number",
              "const": 100
            }
          ]
        }
      },
      "required": [
        "path",
        "pageview_id",
        "depth_pct"
      ],
      "additionalProperties": {}
    },
    "$exception": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "type": {
          "type": "string",
          "maxLength": 200
        },
        "message": {
          "type": "string",
          "maxLength": 1000
        },
        "stack": {
          "type": "string",
          "maxLength": 4000
        },
        "source": {
          "type": "string",
          "maxLength": 2000
        },
        "line": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "column": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "handled": {
          "type": "boolean"
        }
      },
      "required": [
        "path",
        "type",
        "message",
        "handled"
      ],
      "additionalProperties": {}
    },
    "$form": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "form": {
          "type": "string",
          "maxLength": 200
        },
        "field": {
          "type": "string",
          "maxLength": 200
        },
        "field_type": {
          "type": "string",
          "maxLength": 50
        },
        "action": {
          "type": "string",
          "enum": [
            "start",
            "submit",
            "abandon"
          ]
        }
      },
      "required": [
        "path",
        "pageview_id",
        "action"
      ],
      "additionalProperties": {}
    },
    "$outbound": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "host": {
          "type": "string",
          "maxLength": 300
        },
        "url": {
          "type": "string",
          "maxLength": 2000
        }
      },
      "required": [
        "path",
        "pageview_id",
        "host",
        "url"
      ],
      "additionalProperties": {}
    },
    "$download": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "extension": {
          "type": "string",
          "maxLength": 20
        },
        "url": {
          "type": "string",
          "maxLength": 2000
        }
      },
      "required": [
        "path",
        "pageview_id",
        "extension",
        "url"
      ],
      "additionalProperties": {}
    },
    "$webvitals": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "lcp": {
          "type": "number",
          "minimum": 0
        },
        "cls": {
          "type": "number",
          "minimum": 0
        },
        "inp": {
          "type": "number",
          "minimum": 0
        },
        "fcp": {
          "type": "number",
          "minimum": 0
        },
        "ttfb": {
          "type": "number",
          "minimum": 0
        }
      },
      "required": [
        "path",
        "pageview_id"
      ],
      "additionalProperties": {}
    },
    "$layout": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "pageview_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "layout_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{8,64}$"
        },
        "doc_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "doc_h": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "viewport_w": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "elements": {
          "maxItems": 300,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "heading",
                  "link",
                  "button",
                  "input",
                  "image",
                  "media",
                  "other"
                ]
              },
              "label": {
                "type": "string",
                "maxLength": 80
              },
              "x": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000
              },
              "y": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000
              },
              "w": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000
              },
              "h": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000
              },
              "fixed": {
                "type": "boolean"
              }
            },
            "required": [
              "kind",
              "x",
              "y",
              "w",
              "h"
            ],
            "additionalProperties": {}
          }
        }
      },
      "required": [
        "path",
        "pageview_id",
        "layout_hash",
        "doc_w",
        "doc_h",
        "viewport_w",
        "elements"
      ],
      "additionalProperties": {}
    }
  },
  "x-limits": {
    "maxMessageBytes": 32768,
    "maxBatchBytes": 512000,
    "maxBatchMessages": 500,
    "maxPastDays": 31,
    "maxFutureSeconds": 3600,
    "signatureToleranceSeconds": 300,
    "maxIdLength": 200,
    "maxMessageIdLength": 100,
    "maxEventNameLength": 200,
    "maxLayoutElements": 300,
    "coordinateScale": 1000,
    "rateLimitPerMinute": 60000,
    "rateLimitBurst": 10000
  }
}
