Privacy & Data Handling
CABAL Crimean Campaign · Last updated: 10 October 2026
CABAL's Crimean campaign is a free, browser-based historical simulation. There are no public player accounts. We collect as little about you as possible. This page explains, in plain terms, what reaches the services that host the game and what does not.
The short version
- No accounts, no sign-up, and no profiles for public play.
- We do not ask for, store, or sell your name, email, or contact details.
- No advertisers, no analytics companies, no data brokers, and no third-party trackers, advertising pixels, or analytics scripts in the public game.
- Your save games and settings stay in your own browser; they are not uploaded to us.
- Optional campaign inference sends campaign context to OpenRouter and its model provider after you choose a model, supply your own key and consent. This includes automatic paid requests while connected.
- Optional Jev comparisons send your question and a reduced campaign snapshot to OpenRouter and TypeSafe, only when you supply your own key and consent to that comparison.
- Optional Jev staff-officer advice in the tactical drill sends a reduced battlefield summary to OpenRouter and TypeSafe, only when you supply your own key and consent to that request.
- Loading the game sends our hosting provider your IP address. Like almost every website, the static host that serves the game receives it and may record it briefly at the infrastructure level for security. CABAL runs no application server of its own — the game runs entirely in your browser — so we operate no server that logs your IP. An IP address counts as personal data under UK and EU data protection law, which is why this page exists.
What we record, and why
Your IP address. To deliver the game, your browser connects to our static hosting provider, which necessarily receives your IP address (an IP address counts as personal data under UK and EU data protection law). CABAL runs no application server of its own: the game is served as static files and runs entirely in your browser, so we operate no server that records your IP in request logs. Our hosting provider (listed under "recipients" below) may record it transiently at the infrastructure level to operate and protect its service, under its own policy and retention period. Where an IP address is processed for security, the legal basis is the legitimate interest in the security and proper functioning of the service (GDPR Article 6(1)(f)).
Gameplay. The public game runs its simulation inside your browser and does not send gameplay statistics to us. Optional campaign inference and Jev requests transmit the data described below to their providers.
Your browser's own storage. Save games, audio and performance preferences, tutorial progress, map calibration, and local AI model consent and preferences are stored on your device so the game works and remembers your choices. This is functional storage that you create by playing; it is not used for tracking. Nothing in this storage is sent to us.
Optional AI advisors
CABAL uses deterministic heuristics by default. If you explicitly choose the WebGPU option, your browser downloads model files from the identified model host and runs the model on your device; your prompts remain in your browser. A separately built, self-hosted CABAL server may offer authenticated provider-backed inference with provider credentials held server-side. That deployment is not the public service described by this notice and needs its own deployment-specific privacy information.
Campaign inference with your own OpenRouter key. In AI Inference Setup, you can select Haiku 5.5 or GPT-6 Luna at high effort, provide your own key and consent to send campaign context and advisor prompts to OpenRouter and its model provider. This consent covers automatic campaign requests for the connected tab session, which can charge your OpenRouter account. OpenRouter receives the key for authentication, your IP address and request details. This mode uses no shared CABAL-paid key. Review OpenRouter's privacy policy and the selected model provider's policy and account settings before connecting. Avoid personal or confidential information in material you provide to advisors.
The campaign key is held only in tab memory. It is not saved in localStorage, sessionStorage, IndexedDB, saves or URLs, and is not sent to a CABAL server. Reloading, leaving the page or choosing Forget key disconnects the session. CABAL limits each connected tab session to 100 provider attempts and stops further attempts when billing is unverified. These are browser-side guards, not provider-enforced spending limits; reconnecting creates a new session. Use a restricted key with a small spending limit. A request already sent may still be processed and charged after disconnection. Page scripts and browser extensions with suitable permissions can access browser memory.
Jev with your own OpenRouter key. The Cabinet offers a separate, optional advisor comparison. Loading a key makes no provider request. Each comparison requires fresh consent and sends your question and a reduced campaign snapshot directly to OpenRouter and TypeSafe. The snapshot covers date, phase, readiness, attrition and railway status; it excludes unit IDs, coordinates, orders, save files and free-form unit or train labels. Avoid entering personal or confidential information in your question.
The Jev key is held only in the mounted Cabinet panel's memory. It is not saved in localStorage, sessionStorage, IndexedDB, saves or URLs, and is not sent to a CABAL server. Switching away from Cabinet, reloading, or choosing Forget key discards it and aborts outstanding work. Collapsing the Jev disclosure alone does not unmount the panel. A request already sent may still be processed and charged. Use a restricted key with a small spending limit. Page scripts and browser extensions with suitable permissions can access browser memory.
OpenRouter receives the key for authentication and receives your IP address and request details. OpenRouter and TypeSafe process the submitted question and snapshot under their own policies and your account settings. Review the OpenRouter privacy policy and TypeSafe privacy policy for their retention and data-use practices. CABAL does not promise that providers delete a request when you close the panel.
Jev staff-officer advice in the tactical drill. During a drill you can ask Jev to suggest one of the quick orders you could give at that moment. This is advice only; it never issues an order. It uses its own key field: the key is held only in the drill panel's memory, never saved, and is discarded when the drill ends, when you reload, or when you choose Forget key. Loading a key makes no provider request. Each request requires fresh consent and sends only a reduced battlefield summary directly to OpenRouter and TypeSafe: per-arm company counts and average health, weather, posture, objective type, time band and distance bands between the arms. It excludes unit IDs, names, coordinates, orders, save files and any text you type. The same provider terms, retention and charging described above apply.
Who your data reaches (recipients)
Your browser contacts these services when the corresponding feature is used:
- GitHub Pages (GitHub / Microsoft, United States) — serves the game's files. Your IP and request details reach GitHub whenever you load the page.
- OpenRouter and its model provider, for campaign inference you select and consent to, including automatic requests while connected. Campaign context, advisor prompts and request details are processed as described above. The key goes to OpenRouter for authentication.
- OpenRouter and TypeSafe, only for a Jev comparison or drill advice request you expressly make. The question, reduced scenario snapshot or battlefield summary, and network request details are processed as described above. The key is sent to OpenRouter for authentication.
- An AI model host (Hugging Face / GitHub, United States) — only if you choose the in-browser "WebGPU (local)" AI option, your browser downloads the model files directly from the model host, which therefore receives your IP for that download. The model then runs entirely on your device; your prompts stay in your browser and are not sent to the host.
International transfers
The public CABAL deployment has no application backend. Loading the game sends your IP address and request details to GitHub Pages in the United States. If you explicitly choose WebGPU, downloading the model files also sends your IP address and request details to the identified model host in the United States. The model then runs on your device; your prompts are not sent to that host. If you connect campaign inference, campaign context, advisor prompts and request details reach OpenRouter and its model provider, including during automatic requests. If you request a Jev comparison or drill advice, your question, reduced snapshot or battlefield summary, and request details are processed by OpenRouter and TypeSafe. These contacts may involve transfers outside the UK or EU. The providers describe the safeguards for those transfers in their privacy documentation; contact us for further information.
Your choices and rights
Under the GDPR you may have the right to access, correct, or erase personal data we hold about you, to restrict or object to its processing, and to data portability. Because public play involves no account and we hold no name or email for you, in most cases we genuinely cannot identify you from the limited data we keep, and some rights apply only if you give us enough information to locate your records (GDPR Article 11). We do not operate request logs for the public service. Requests concerning hosting-layer records may need to be handled through GitHub's privacy process.
Who is responsible (data controller)
The controller for this service is Nell Watson / Creed Space. For any privacy matter, including to exercise your rights, contact nell@ethicsnet.com. CABAL is operated from the United Kingdom, so this service is provided under the UK GDPR (UK GDPR Article 3(1)); the EU GDPR may also apply to players in the EU, and where it does we may need to appoint an EU representative under Article 27.
Children
This game is not directed at children and we do not knowingly collect data from them.
Changes
We may update this notice; the date at the top shows the latest version.
Credits & attribution
The battlefield terrain is derived from the Copernicus GLO-30 Digital Elevation Model: © DLR e.V. 2010–2014 and © Airbus Defence and Space GmbH 2014–2018, provided under COPERNICUS by the European Union and ESA; all rights reserved. The game is built with open-source software (including three.js and React); full third-party notices ship with the project source.
← Return to the campaign