Street University — Privacy Policy

Video game for Windows, macOS, Android and iOS · package name com.divano.streetuniversity

Last updated: 17 September 2026 · Document version: 1.4

English · Versione italiana ↓ · Account deletion / Cancellazione account

In short: Street University is a mostly offline game. Local files remain on your device, but if you choose an Epic, Apple or Google sign-in the game also synchronises the progression and character-appearance files with Epic Online Services cloud storage. There are no ads, no third-party analytics or tracking SDKs, no in-app purchases, no player chat, and we sell your data to nobody. The game may connect to the internet to check the version manifest on every build; for multiplayer; for the optional account sign-in, cloud save, public nickname registry and world leaderboard; for the optional invitation feature; in Windows and macOS test builds, for the closed beta list; on Android, for the push notifications in §3.4; and, only if you switch it on, for the anonymous gameplay reports in §5. The details, recipients and retention periods are set out below.

1. Who processes your data

The data controller is Ivan Bianco, a natural person, independent developer, Italy.

Contact for any question or request about this policy: info@streetuniversitygame.com

No Data Protection Officer has been appointed: none of the cases listed in Article 37 GDPR applies.

2. Data kept locally on your device

Most of what the game stores remains local. The following stays on the device, subject to the optional telemetry exception in §5:

These are files inside a folder dedicated to the game, under your user profile: %APPDATA%\Street University\ on Windows, ~/Library/Application Support/Street University/ on macOS, and the app's private folder on Android and iOS. Uninstalling removes the local copies. If you signed in, it does not by itself erase the cloud save, nickname registry, leaderboard or invitation records described below.

The device code

In the Windows and macOS test builds the game computes a device code shaped like SU-XXXX-XXXX-XXXX and shows it on screen. It is the SHA-256 hash of the device hardware identifier, combined with a fixed security value and truncated to 12 characters: the original identifier cannot be recovered from it.

The game never transmits this code. It is compared against the authorised list entirely on your device. If the code reaches the controller, it is because you wrote it to us when asking to join the beta (see §5).

3. When the game connects to the internet

3.1 Version manifest and closed beta check

At startup, every build downloads version_<environment>.json from https://raw.githubusercontent.com/BlackwindITA/street-university-beta-devices/main/. The file tells the game the compatible multiplayer version for the build channel. The request has no body and the game adds no player or device identifier.

In addition, the Windows and macOS test builds download the public file devices.json from the same host to verify that the device is authorised and that the installed test version has not expired. This second request is not made by Android, iOS or ordinary store builds.

As with any web page you open, the provider hosting the file (GitHub, Inc., part of Microsoft, and its content delivery network) receives your IP address and the technical details of the request, and processes them under its own terms. See the GitHub privacy statement.

The closed-beta result is cached on your device for at most 7 days. The version-manifest result is used for the current launch and is not a player record. Android and iOS contact the version manifest but never devices.json; their beta access is handled by Google Play and Apple TestFlight.

3.2 Multiplayer — Epic Online Services

Multiplayer starts only if you choose to play online. The rest of the game works without a network. When you enable it, the online part is powered by Epic Online Services from Epic Games, Inc.

Data in the online component is processed by Epic Games, Inc. as an independent controller. See the Epic Games privacy policy.

3.3 World leaderboard — public names and scores

The game has a world leaderboard of single-player scores. Publishing to it sits behind two gates that the game puts in front of you — in this order — before signing you in with an account:

When you do publish:

The local high-score list is separate from the public leaderboard. It remains on the device, but if you are signed in its best-score field is also included in the EOS cloud save described in §3.7. Signing out stops new synchronisation but does not delete an existing cloud copy.

You can report a name you find unacceptable. Today that report does not leave your device: it hides the name from you immediately and is queued in a local file, waiting for a collection channel to exist. When that channel exists, this page will be updated first.

Legal basis for publication: your consent, which you can withdraw — signing out of the account clears it and the game stops sending. To have an already published score removed, write to info@streetuniversitygame.com.

3.4 Push notifications (Android only)

On the Android version the game can send you a notification when there is something new (a new version, an event). To do so it registers with Firebase Cloud Messaging, a Google service, which assigns your device a registration token: a technical device identifier, generated by Google, used to deliver the message.

Purpose: to tell you about game and beta updates. Legal basis: your consent (Art. 6(1)(a) GDPR) — given by granting the notification permission (Android 13 and later) or by leaving the game's notifications on in your system settings (earlier versions), and withdrawn by turning them off there at any time. See the Firebase privacy information.

3.5 Invitation codes and cosmetic rewards

The feature is optional and is available only to signed-in players. The game combines the inviting player's Epic Online Services Product User ID (PUID) with the fixed domain prefix su-inviti: and calculates a SHA-256 pseudonymous fingerprint. The 8-character invitation code is derived from the rightmost eight hexadecimal characters of that fingerprint, changing 0 to Z and 1 to Y to fit the code alphabet. The code therefore reveals no part of the PUID and is not a password or secret.

What data is stored in Firestore: redemption creates a document at inviti/<environment>/riscatti/<redeeming player's SHA-256 fingerprint>. It contains the 8-character code, the creation date (creato), the expiry date (scade) and a yes/no field (run_finita) indicating whether a run has concluded after redemption. It can be created only once; the only later client change allowed is from run_finita=false to true. In the same atomic commit the game creates a create-only link document at inviti/<environment>/legami/<inviting code>_<redeeming code>, containing the same fingerprint and the same creation and expiry dates. This link prevents the two accounts from inviting each other. The full PUID is used on the device to calculate the fingerprint but is not included in clear text in either Firestore document. Codes and fingerprints are deterministic pseudonymous identifiers: they contain no name but remain linked to the respective game identifiers.

How the count works: the game sends the game's service on Google Apps Script the Epic Online Services ID token and the environment. The token is signed by Epic and contains the PUID. The service verifies its signature against Epic's public keys, obtains the PUID, derives the code and fingerprint, reads whether the caller's own redemption is complete and counts in Firestore the completed redemptions for that code. It returns only the number and the yes/no status of the caller's own redemption. The token is not retained. The service cache keeps the result for 60 seconds in a key that contains the PUID in clear text and keeps an hourly anti-abuse counter, also keyed by the clear-text PUID, for up to one hour. A separate global daily counter contains no personal data.

Why and legal basis: to provide the invitation feature you request, prevent repeat, self or reciprocal invitations, record a run concluded after redemption, limit abusive count requests and calculate the cosmetic reward. Each account can redeem only one code. Golden cans equal the lower of 10 and the sum of completed invitations plus one if that account's own redemption is complete. They have no monetary or real-world value and are not connected to ratings or reviews. The legal basis is performance of the service requested by you (Art. 6(1)(b) GDPR). The rest of the game remains available without this feature.

Sharing an invitation: the SHARE command opens the phone's system sharing panel with a message containing https://www.streetuniversitygame.com/invito/?c=<code>. You choose the app and recipients. The game does not receive or know either. The invitation page is static and loads no third-party scripts or resources. Like the rest of www.streetuniversitygame.com, it is hosted on GitHub Pages (GitHub, Inc.), which processes technical connection data such as your IP address to deliver and protect the site; the code travels in the page address. If the game is installed, the link can open it and the code is read on the device.

Where and for how long: the redemption and link documents are stored in Google Firebase / Cloud Firestore, a service of Google LLC. Both expire 365 days after creation; the active Firestore time-to-live policies delete them normally within 24 hours after expiry. Deleting a redemption also removes it from the invitation count. The Apps Script result and anti-abuse caches have the shorter periods stated above.

Who can see it: the game client cannot read, list, query or aggregate redemption or link documents. The game's service reads redemption records only to produce the count and the caller's own completion status. The inviting player sees only the count, not the records or the identities of redeeming players. Google hosts and processes Firestore and Apps Script data as a service provider. The records contain no names, contact details or clear-text PUIDs and are not shown in the game or in a public player list.

Deletion: the game offers no in-app deletion tool for these records. You may request deletion at any time by writing to info@streetuniversitygame.com. To help locate the relevant redemption and link documents, include the invitation code concerned and, if possible, the approximate redemption date and your EOS player identifier. The developer manually deletes them from the database within 30 days. The service caches expire automatically within at most one hour. Deleting a redemption also removes it from the inviting player's count.

3.6 Optional Epic, Apple and Google sign-in

Account sign-in is optional. Epic sign-in uses Epic's system-browser flow where available. On iOS, Apple sign-in supplies the game with an Apple identity token; on Android, Google sign-in supplies a Google identity token. The game treats these tokens as credentials and forwards the token and its provider type to Epic Online Services Connect, which creates or finds the corresponding EOS Product User ID (PUID). The same mechanism is used if you ask to link access methods or merge two game identities: EOS may query the access methods linked to each PUID, unlink them from one identity and link them to the surviving identity.

Apple and Google can return a display name to the native sign-in module. The game deliberately discards that value for normal sign-in because it may be a legal name: it is not used as the public nickname, written to the nickname registry or published in the leaderboard. The Apple or Google identity token normally contains the account's email address; for Apple, this may be Apple's private relay address. The game sends the complete token, including the email address inside it, to Epic Online Services Connect to validate the sign-in. The game does not read or store the email as a separate field or use it for any other purpose. It stores the chosen provider, the EOS PUID and the public nickname needed to restore the account, but not your password.

Purpose and legal basis: to provide the account, link access methods, move progress when you request an account merge and restore the same identity on another device; performance of the service you requested (Art. 6(1)(b) GDPR). Recipients and retention: the identity provider and Epic process sign-in data under their own policies; EOS retains account links according to Epic's retention rules. Signing out stops the current session but does not delete those provider/EOS links. You may contact us under §9; deletion of the underlying Apple, Google or Epic account must be requested from that provider.

3.7 Cloud save — Epic Online Services Player Data Storage

Cloud save is used only for a signed-in account with a live EOS session. The game uploads one file named progressi.json, tied to the account's PUID. It contains Base64 copies of meta.cfg and skins.cfg: unlocked progress, counters, best score, cards and encountered cards, upgrades, shack and districts, migration markers, the selected/unlocked/gifted/paid character appearances, and per-PUID reset markers. It does not contain a password, email address or the optional telemetry file.

The game reads and merges the cloud file after account restoration or sign-in and before writing a newer version. It may write after a completed game, a local progress or appearance change, app suspension or resumption, orderly exit and account merge. The purpose is to preserve and merge progression across devices and accounts; the legal basis is performance of the optional account service you requested (Art. 6(1)(b) GDPR). Epic Games, Inc. receives and stores the file as the provider of EOS Player Data Storage.

Cloud save remains tied to the account PUID and contains the progression and appearance data described above. When you request deletion, the game blocks new synchronisation and account-related submissions, sends an idempotent remote request and waits for durable acceptance. After that acceptance it deletes progressi.json where the operation is available, removes the associated local copies and returns you to guest play. You must never provide a password or token to the web page.

You can start the request from ACCOUNT > DELETE ACCOUNT in the app or from the public page streetuniversitygame.com/cancellazione/. The page works without the app installed: it asks for a contact address and, optionally, your PUID, public nickname and an invitation code to locate the right records. If the form is unavailable, write to info@streetuniversitygame.com.

The device becomes a guest when the request is accepted. We complete within 7 days the remote operations under our control, including deletion of cloud progression, nickname records, invitation redemptions and links and online scores, and ask operators of external services to perform operations that cannot be automated. We send a receipt to the address provided. Deletion of the underlying Epic, Apple or Google account remains the responsibility of that provider.

Optional gameplay telemetry uses a different random identifier for every run and is not linked to the account, PUID or nickname. It therefore cannot be located through the account request; questions about an already submitted report may be sent to the contact in §1.

3.8 Public nickname registry and moderation

To keep public names unique, the game uses Google Cloud Firestore. Under registro/<environment> it creates: a nicknames/<lowercase name> document containing PUID, nickname, provider, whether the name is a game-generated reserve, creation date, normalised form, moderation status and, only for a doubtful name, a short reason; and a players/<PUID> document containing nickname, lowercase nickname, provider, reserve reason and update date. These records let the game reserve a name, resolve PUIDs into names and prevent a rejected spelling from being reclaimed.

Visibility and moderation: the deployed rules permit unauthenticated reads of the nicknames, players and rejected-name (bocciati) collections for the known environments. They must therefore be treated as publicly readable records, even though the game UI shows only public nicknames where needed. For human review, the developer uses an administrative service account to read the nickname records and copy PUID, name, provider and creation date to a private Google Sheet, where a judgement is added. Applying a judgement may update the moderation status; rejection deletes the nickname reservation, clears the name in the player row and writes the normalised rejected form together with the name, PUID and date to bocciati.

Purpose and legal basis: account functionality, unique public names and community safety; performance of the online service requested by the player and the controller's legitimate interest in preventing abuse and moderating public names (Art. 6(1)(b) and (f) GDPR). Google hosts Firestore, Apps Script and the moderation Sheet as a service provider. Other players and anyone able to address the public Firestore endpoint can read the registry fields allowed by the rules.

Retention and release: the code defines no automatic expiry for nickname, player, rejected-name or moderation-Sheet records. A normal release deletes the nickname reservation but keeps the players/<PUID> row with an empty name, its provider and an update date. During a completed account merge, the game may send the donor PUID and a signed EOS ID token over HTTPS to the game's Google Apps Script; the service verifies the token, deletes the donor nickname reservation and clears its player name. That token is not written to the registry or a cache. For access, correction or erasure of registry and moderation records, contact us under §9.

4. What the game does not do

PracticeStreet University
Advertising and advertising identifiersNone
Third-party analytics, telemetry or tracking SDKsNone
Profiling or automated decision-makingNo
In-app purchases or paymentsNo
Selling personal dataNever
Text or voice chat, messages between playersNot present in the game
User-generated contentThe public nickname used in the nickname registry, multiplayer and world leaderboard (§§3.2, 3.3 and 3.8)
Access to location, contacts, camera, microphone, photos, personal filesNever requested

On Android the application requests only the INTERNET, ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE permissions, which multiplayer needs.

5. The closed beta programme

This section concerns beta testers only.

What data: if you ask to take part, you voluntarily give us a name or nickname, a contact (email, WhatsApp or Telegram), the type of device you will use and — for the Windows and macOS versions — the device code shown by the game. If you report a problem, you also send whatever you choose to attach (description, images, log files).

Automatic anonymous gameplay data (optional): with your explicit, revocable consent — asked in-game the first time you play, and always visible under Options — the game can send us a report about a play session. It includes an absolute UTC timestamp, game version and language, a random identifier valid for that run only, device model/OS/display/GPU/CPU and performance samples, game events and interactions, offences, game-over cause, and bonus-level start/end, duration, victory, stumbles and collected coins. A persistent yes/no flag says whether that local profile has ever used a beta unlock code, so those runs can be excluded from analysis. Each local run file is capped at 2 MiB. No account PUID, advertising/device identifier, email or name is included. After a crash, the same report may include the last approximately 16 KB of the technical log, filtered to remove account names, tokens and network addresses. This is off unless you turn it on, and can be switched off again at any time.

Why: to authorise your device, tell you when a new version is out, collect your reports and fix the game.

Legal basis: your consent (Art. 6(1)(a) GDPR), which you may withdraw at any time by asking to leave the programme.

Where it is kept: in a spreadsheet held by the controller and never published. The public repository hosting this page contains device codes only, with no names and no contact details: they are truncated values, meaningless to anyone reading them.

For how long: for the duration of the beta programme. The data is deleted when it closes, and at any earlier time on your request.

Who it is shared with: nobody. If you join a Google Play test channel or Apple TestFlight, you provide your address to those platforms yourself, and they process it as independent controllers under their own policies.

6. Distribution platforms

If you download the game from Google Play or the Apple App Store / TestFlight, those platforms process their own data about the download, the installation and any crashes, as independent controllers and under their own policies (Google, Apple). The controller of this game receives only aggregated, anonymous statistics from them, never data about an identifiable person.

7. Children

The game is not directed at children under 13, neither in its content nor in its promotion, and it does not knowingly collect data from minors. If you believe a minor has sent data to the controller, write to the contact in §1 and it will be deleted.

8. Transfers outside the European Union

The providers named in this policy — Epic Games, Inc., GitHub, Inc. and Google LLC — are based in the United States. When the game contacts them, the technical data described above is also processed outside the EU, under the safeguards each of them has adopted (standard contractual clauses and, where applicable, the EU-U.S. Data Privacy Framework). The controller carries out no other transfer of its own initiative.

9. Your rights

Under Articles 15-22 of Regulation (EU) 2016/679 you may at any time request access, rectification or erasure, restriction of or objection to processing, and data portability. You may also withdraw consent to telemetry or the beta. You do not need to have the app installed to request account deletion.

Write to the contact in §1: you will get an answer within one month. To delete the data stored on your device, simply uninstall the game.

You also have the right to lodge a complaint with the Italian Garante per la protezione dei dati personali (garanteprivacy.it) or with the supervisory authority of your country of residence.

9.1 Deleting your account and your data

This section is about Street University (package name com.divano.streetuniversity), published by Ivan Bianco — Divano_Prime.

How to ask. In the app open ACCOUNT > DELETE ACCOUNT and confirm twice. Alternatively use streetuniversitygame.com/cancellazione/ or write to info@streetuniversitygame.com. The form asks only for a contact address and, optionally, PUID, public nickname and invitation code. Do not send passwords, tokens or credentials. The PUID helps match the request without asking for excessive data; if you do not know it, the request can be verified using the contact address and available information.

What gets deleted. After idempotent acceptance we delete, or arrange deletion within 7 days for anything under our control:

The device becomes a guest as soon as the request is accepted. Signing out without starting this process does not delete remote data.

What remains, and for how long. For no more than 365 days we retain only a technical receipt containing request_id, date, outcome and a non-reversible HMAC of the PUID. Where needed to prevent repeated redemptions or fraud, an invitation anti-fraud tombstone may remain for the same period, without a code, nickname, token, score, progression or readable relationship. Expiry is automatic. EOS technical identifiers that the title cannot suppress may remain orphaned and hold no gameplay data; we ask Epic to remove them when available. Legal obligations override this only for the required period.

Optional telemetry uses a random run_id different for every run and is not linked to the account, so account deletion cannot select it by PUID or nickname. For a request about a specific report, write to the contact in §1.

Response times. We send a receipt when the request is accepted and a final confirmation when remote operations are complete. We answer rights requests within one month; the account-deletion flow targets completion of remote operations within 7 days.

10. Security

Beta tester data is kept on the controller's personal devices, protected by passwords and full-disk encryption, and is not accessible to third parties. No system is 100% secure: the controller applies measures proportionate to the amount and nature of the data processed, which is deliberately minimal.

Invitation data is transmitted over encrypted HTTPS connections. Firestore stores pseudonymous identifiers, denies all client reads of the redemption and link documents, and allows only the restricted writes described in §3.5. The count service verifies Epic's signature before using the PUID contained in the token, and does not retain the token.

Cloud saves are sent through EOS Player Data Storage. Nickname-registry and moderation transfers use HTTPS; unlike invitation records, the nickname, player and rejected-name collections have the public-read permissions disclosed in §3.8. Provider identity tokens used for sign-in or verified nickname release are not written to those records.

11. Changes to this policy

If what the game does with data changes — for example if a chat or an online leaderboard were added one day — this page is updated before the change reaches players, and the date at the top changes with it. The version in force is always the one published at this address.


Street University — Informativa sulla privacy

Videogioco per Windows, macOS, Android e iOS · nome del pacchetto com.divano.streetuniversity

Ultimo aggiornamento: 17 settembre 2026 · Versione del documento: 1.4

↑ English version · Italiano · Cancellazione account / Account deletion

In breve: Street University è un gioco per lo più offline. I file locali restano sul tuo dispositivo, ma se scegli di entrare con Epic, Apple o Google il gioco sincronizza anche i file della progressione e dell'aspetto del personaggio nel cloud di Epic Online Services. Non ci sono pubblicità, né analytics o tracciatori di terze parti, né acquisti in-app, né chat fra giocatori, e non vendiamo dati a nessuno. Il gioco può collegarsi a Internet per controllare il manifest delle versioni in ogni build; per il multiplayer; per gli opzionali accesso account, salvataggio cloud, registro dei nickname pubblici e classifica mondiale; per la facoltativa funzione inviti; nelle build di prova Windows e macOS, per la lista della beta chiusa; su Android, per le notifiche push del §3.4; e, solo se lo accendi tu, per i resoconti di gioco anonimi del §5. Dettagli, destinatari e tempi di conservazione sono indicati qui sotto.

1. Chi tratta i tuoi dati

Il titolare del trattamento è Ivan Bianco, persona fisica, sviluppatore indipendente, Italia.

Contatto per qualsiasi domanda o richiesta relativa a questa informativa: info@streetuniversitygame.com

Non è nominato un Responsabile della protezione dei dati (DPO): non ricorre nessuno dei casi previsti dall'art. 37 del GDPR.

2. Dati conservati localmente sul tuo dispositivo

La maggior parte di ciò che il gioco memorizza resta locale. Rimangono sul dispositivo, fatta salva l'eccezione della telemetria facoltativa al §5:

Sono file dentro una cartella dedicata al gioco, sotto il tuo profilo utente: %APPDATA%\Street University\ su Windows, ~/Library/Application Support/Street University/ su macOS, la cartella privata dell'app su Android e iOS. Disinstallare elimina le copie locali. Se hai eseguito l'accesso, non cancella da solo il salvataggio cloud, il registro dei nickname, la classifica o i registri inviti descritti qui sotto.

Il codice dispositivo

Nelle build di prova per Windows e macOS il gioco calcola un codice dispositivo nel formato SU-XXXX-XXXX-XXXX e te lo mostra a schermo. È l'impronta SHA-256 dell'identificativo hardware del dispositivo, combinata con un valore fisso di sicurezza e troncata a 12 caratteri: dal codice non si risale all'identificativo originale.

Il gioco non trasmette mai questo codice. Il confronto con la lista degli autorizzati avviene interamente sul tuo dispositivo. Se il codice arriva al titolare, è perché sei tu a scrivercelo quando chiedi di entrare nella beta (vedi §5).

3. Quando il gioco si collega a Internet

3.1 Manifest delle versioni e controllo della beta chiusa

All'avvio, ogni build scarica version_<ambiente>.json da https://raw.githubusercontent.com/BlackwindITA/street-university-beta-devices/main/. Il file indica al gioco la versione multiplayer compatibile per il canale della build. La richiesta non ha corpo e il gioco non aggiunge identificativi del giocatore o del dispositivo.

In più, le build di prova Windows e macOS scaricano dallo stesso host il file pubblico devices.json per verificare che il dispositivo sia autorizzato e che la versione di prova installata non sia scaduta. Questa seconda richiesta non parte su Android, iOS o nelle normali build degli store.

Come per ogni pagina che apri sul web, il fornitore che ospita il file (GitHub, Inc., gruppo Microsoft, e la sua rete di distribuzione) riceve il tuo indirizzo IP e i dati tecnici della richiesta, e li tratta secondo le proprie regole. Vedi la privacy policy di GitHub.

L'esito della beta chiusa viene tenuto in cache sul dispositivo per un massimo di 7 giorni. L'esito del manifest viene usato per l'avvio corrente e non costituisce un registro del giocatore. Android e iOS contattano il manifest ma mai devices.json; l'accesso alla beta è gestito da Google Play e Apple TestFlight.

3.2 Multiplayer — Epic Online Services

Il multiplayer parte solo se scegli tu di giocare online. Il resto del gioco funziona senza rete. Quando lo attivi, la parte online è gestita da Epic Online Services di Epic Games, Inc.

I dati della componente online sono trattati da Epic Games, Inc. come titolare autonomo. Vedi l'informativa sulla privacy di Epic Games.

3.3 Classifica mondiale — nomi e punteggi pubblici

Il gioco ha una classifica mondiale dei punteggi di partita singola. La pubblicazione sta dietro a due gate, che il gioco ti mette davanti — in quest'ordine — prima di farti entrare con l'account:

Quando pubblichi:

La classifica locale è distinta da quella pubblica. Resta sul dispositivo, ma se hai eseguito l'accesso il campo del punteggio migliore è incluso anche nel salvataggio cloud EOS descritto al §3.7. Uscire dall'account ferma le nuove sincronizzazioni ma non cancella una copia cloud già esistente.

Puoi segnalare un nome che ti sembra inaccettabile. Oggi la segnalazione non lascia il tuo dispositivo: nasconde subito quel nome a te e resta in coda in un file locale, in attesa che esista un canale di raccolta. Quando quel canale esisterà, questa pagina verrà aggiornata prima.

Base giuridica della pubblicazione: il tuo consenso, che puoi revocare — uscendo dall'account il consenso si azzera e il gioco smette di inviare. Per la rimozione di un punteggio già pubblicato scrivi a info@streetuniversitygame.com.

3.4 Notifiche push (solo Android)

Nella versione per Android il gioco può mandarti una notifica quando c'è una novità (una versione nuova, un evento). Per farlo si registra a Firebase Cloud Messaging, un servizio di Google, che assegna al tuo dispositivo un token di registrazione: un identificativo tecnico del dispositivo, generato da Google, che serve a consegnare il messaggio.

Finalità: informarti degli aggiornamenti del gioco e della beta. Base giuridica: il tuo consenso (art. 6.1.a GDPR) — che presti concedendo il permesso di notifica (Android 13 e successivi) o lasciando attive le notifiche del gioco nelle impostazioni di sistema (versioni precedenti), e revochi spegnendole da lì in qualsiasi momento. Vedi l'informativa privacy di Firebase.

3.5 Codici di invito e premi cosmetici

La funzione è facoltativa ed è disponibile solo ai giocatori che hanno eseguito l'accesso. Il gioco combina il Product User ID (PUID) Epic Online Services di chi invita col prefisso di dominio fisso su-inviti: e calcola un'impronta pseudonima SHA-256. Il codice di invito di 8 caratteri deriva dagli otto caratteri esadecimali finali dell'impronta, sostituendo 0 con Z e 1 con Y per rispettare l'alfabeto del codice. Il codice non rivela quindi alcuna parte del PUID e non è una password né un segreto.

Quali dati sono salvati in Firestore: il riscatto crea un documento in inviti/<ambiente>/riscatti/<impronta SHA-256 di chi riscatta>. Contiene il codice di 8 caratteri, la data di creazione (creato), la data di scadenza (scade) e un campo sì/no (run_finita) che indica se una partita si è conclusa dopo il riscatto. Può essere creato una sola volta; l'unica modifica successiva permessa al client è il passaggio di run_finita da false a true. Nella stessa commit atomica il gioco crea un documento di legame create-only in inviti/<ambiente>/legami/<codice di chi invita>_<codice di chi riscatta>, contenente la stessa impronta e le stesse date di creazione e scadenza. Questo legame impedisce ai due account di invitarsi a vicenda. Il PUID completo viene usato sul dispositivo per calcolare l'impronta, ma non è incluso in chiaro in nessuno dei due documenti Firestore. Codici e impronte sono identificativi pseudonimi deterministici: non contengono un nome, ma restano collegati ai rispettivi identificativi di gioco.

Come funziona il conteggio: il gioco invia al servizio del gioco su Google Apps Script l'ID token di Epic Online Services e l'ambiente. Il token è firmato da Epic e contiene il PUID. Il servizio ne verifica la firma con le chiavi pubbliche di Epic, ricava il PUID, deriva codice e impronta, legge se il riscatto del chiamante è concluso e conta in Firestore i riscatti conclusi di quel codice. Risponde soltanto con il numero e con lo stato sì/no del proprio riscatto. Il token non viene conservato. La cache del servizio tiene per 60 secondi il risultato in una chiave che contiene il PUID in chiaro e, per un massimo di un'ora, un contatore anti-abuso orario anch'esso indicizzato dal PUID in chiaro. Un contatore giornaliero globale separato non contiene dati personali.

Perché e base giuridica: per fornire la funzione inviti che chiedi di usare, impedire inviti ripetuti, al proprio account o reciproci, registrare una partita conclusa dopo il riscatto, limitare richieste abusive di conteggio e calcolare il premio cosmetico. Ogni account può riscattare un solo codice. Le lattine d'oro sono il minore fra 10 e la somma degli inviti conclusi più uno se il riscatto di quell'account è concluso. Non hanno valore monetario o reale e non sono collegate a valutazioni o recensioni. La base giuridica è l'esecuzione del servizio richiesto da te (art. 6.1.b GDPR). Il resto del gioco rimane disponibile senza questa funzione.

Condivisione dell'invito: il comando CONDIVIDI apre il pannello di condivisione del telefono con un messaggio che contiene https://www.streetuniversitygame.com/invito/?c=<codice>. Scegli tu l'app e i destinatari; il gioco non riceve né conosce questi dati. La pagina dell'invito è statica e non carica script o risorse di terze parti. Come il resto di www.streetuniversitygame.com, è ospitata su GitHub Pages (GitHub, Inc.), che tratta dati tecnici di connessione come l'indirizzo IP per servire e proteggere il sito; il codice viaggia nell'indirizzo della pagina. Se il gioco è installato, il link può aprirlo e il codice viene letto sul dispositivo.

Dove e per quanto: i documenti di riscatto e legame sono conservati su Google Firebase / Cloud Firestore, servizio di Google LLC. Entrambi scadono 365 giorni dopo la creazione; le politiche time-to-live attive di Firestore li cancellano di norma entro 24 ore dalla scadenza. Cancellare un riscatto lo toglie anche dal conteggio degli inviti. Le cache del risultato e anti-abuso di Apps Script hanno le durate più brevi indicate sopra.

Chi può vederli: il client del gioco non può leggere, elencare, interrogare né aggregare i documenti di riscatto o di legame. Il servizio del gioco legge i registri dei riscatti solo per produrre il conteggio e lo stato del riscatto del chiamante. Chi invita vede soltanto il numero, non i registri né l'identità di chi ha riscattato. Google ospita e tratta i dati di Firestore e Apps Script quale fornitore del servizio. I registri non contengono nomi, recapiti o PUID in chiaro e non sono mostrati nel gioco né in un elenco pubblico di giocatori.

Cancellazione: il gioco non offre strumenti per cancellare questi registri dall'app. Puoi chiederne la cancellazione in qualsiasi momento scrivendo a info@streetuniversitygame.com. Per aiutare a ritrovare i documenti di riscatto e legame interessati, indica il codice di invito e, se possibile, la data approssimativa del riscatto e il tuo identificativo di giocatore EOS. Lo sviluppatore li cancella manualmente dalla banca dati entro 30 giorni. Le cache del servizio scadono automaticamente entro un'ora al massimo. Cancellare un riscatto lo toglie anche dal conteggio di chi ha invitato.

3.6 Accesso facoltativo con Epic, Apple e Google

L'accesso a un account è facoltativo. Dove disponibile, l'accesso Epic usa il browser di sistema di Epic. Su iOS, l'accesso Apple consegna al gioco un token d'identità Apple; su Android, l'accesso Google consegna un token d'identità Google. Il gioco tratta questi token come credenziali e inoltra a Epic Online Services Connect il token e il tipo di fornitore: EOS crea o ritrova così il Product User ID (PUID) corrispondente. Lo stesso meccanismo si usa se chiedi di collegare metodi di accesso o unire due identità di gioco: EOS può interrogare gli accessi collegati ai PUID, scollegarli da un'identità e collegarli a quella superstite.

Apple e Google possono restituire al modulo nativo un nome visualizzato. Nel normale accesso il gioco lo scarta apposta, perché potrebbe essere il nome anagrafico: non lo usa come nickname pubblico, non lo scrive nel registro dei nickname e non lo pubblica in classifica. Il token d'identità di Apple o Google contiene normalmente l'indirizzo email dell'account; per Apple può essere l'indirizzo privato di inoltro di Apple. Il gioco invia a Epic Online Services Connect il token completo, compreso l'indirizzo email al suo interno, per convalidare l'accesso. Il gioco non legge né salva l'email come campo separato e non la usa per altri scopi. Conserva il fornitore scelto, il PUID EOS e il nickname pubblico necessari a ripristinare l'account, ma non la password.

Finalità e base giuridica: fornire l'account, collegare gli accessi, trasferire i progressi quando chiedi di unire due identità e ripristinare la stessa identità su un altro dispositivo; esecuzione del servizio richiesto (art. 6.1.b GDPR). Destinatari e conservazione: il fornitore dell'identità ed Epic trattano i dati di accesso secondo le rispettive informative; EOS conserva i collegamenti secondo i tempi di Epic. Uscire dall'account chiude la sessione corrente ma non cancella quei collegamenti. Puoi contattarci ai sensi del §9; la cancellazione dell'account Apple, Google o Epic sottostante va chiesta al relativo fornitore.

3.7 Salvataggio cloud — Epic Online Services Player Data Storage

Il salvataggio cloud si usa solo per un account con accesso eseguito e una sessione EOS attiva. Il gioco carica un file chiamato progressi.json, associato al PUID dell'account. Contiene copie Base64 di meta.cfg e skins.cfg: progressi sbloccati, contatori, punteggio migliore, carte e carte incontrate, potenziamenti, baracca e quartieri, marcatori di migrazione, aspetti selezionati/sbloccati/regalati/pagati e marcatori di reset per PUID. Non contiene password, indirizzo email o file della telemetria facoltativa.

Il gioco legge e fonde il file cloud dopo il ripristino o l'accesso all'account e prima di scriverne una versione più recente. Può scrivere dopo una partita conclusa, una modifica locale dei progressi o dell'aspetto, la sospensione o ripresa dell'app, l'uscita ordinata e l'unione degli account. La finalità è conservare e fondere i progressi fra dispositivi e account; la base giuridica è l'esecuzione del servizio account facoltativo richiesto (art. 6.1.b GDPR). Epic Games, Inc. riceve e conserva il file come fornitore di EOS Player Data Storage.

Il salvataggio cloud resta associato al PUID dell'account e contiene i dati di progressione e gli aspetti descritti sopra. Quando chiedi la cancellazione, il gioco blocca nuovi sincronismi e invii collegati all'account, invia una pratica remota idempotente e attende la presa in carico durevole. Dopo tale conferma cancella il file progressi.json quando l'operazione è disponibile, elimina le copie locali associate e ti riporta a giocare come ospite. Non devi fornire password o token alla pagina web.

La richiesta può essere avviata da ACCOUNT > CANCELLA ACCOUNT nell'app oppure dalla pagina pubblica streetuniversitygame.com/cancellazione/. La pagina funziona anche senza avere l'app installata: chiede un indirizzo per la risposta e, facoltativamente, il PUID, il nickname pubblico e un codice invito per trovare i registri corretti. Se il modulo non è disponibile, puoi scrivere a info@streetuniversitygame.com.

Il telefono torna ospite quando la pratica è stata presa in carico. Completiamo entro 7 giorni le operazioni remote sotto il nostro controllo, incluse la cancellazione della progressione cloud, dei registri del nickname, dei riscatti e legami invito e dei punteggi online, e chiediamo agli operatori dei servizi esterni le operazioni non eseguibili automaticamente. Inviamo una ricevuta all'indirizzo indicato nella richiesta. La cancellazione dell'account Epic, Apple o Google sottostante resta di competenza del relativo fornitore.

La telemetria di gioco facoltativa usa un identificativo casuale diverso per ogni partita e non è collegata all'account, al PUID o al nickname. Per questo non può essere ricercata tramite la pratica dell'account; eventuali richieste riguardanti un resoconto già inviato possono essere rivolte al contatto indicato nel §1.

3.8 Registro pubblico dei nickname e moderazione

Per mantenere unici i nomi pubblici, il gioco usa Google Cloud Firestore. Sotto registro/<ambiente> crea: un documento nicknames/<nome minuscolo> con PUID, nickname, fornitore, indicazione dell'eventuale nome di riserva generato dal gioco, data di creazione, forma normalizzata, stato di moderazione e, solo per un nome dubbio, un motivo breve; e un documento players/<PUID> con nickname, nickname minuscolo, fornitore, motivo della riserva e data di aggiornamento. I registri servono a prenotare un nome, tradurre i PUID in nomi e impedire che una grafia bocciata venga rivendicata.

Visibilità e moderazione: le regole distribuite consentono letture senza autenticazione delle collezioni nicknames, players e dei nomi bocciati (bocciati) negli ambienti riconosciuti. Vanno quindi considerate registrazioni leggibili pubblicamente, anche se l'interfaccia del gioco mostra soltanto i nickname pubblici dove servono. Per il giudizio umano lo sviluppatore usa un account di servizio amministrativo per leggere i documenti dei nickname e copiare PUID, nome, fornitore e data di creazione in un Foglio Google privato, dove viene aggiunto il giudizio. Applicare un giudizio può aggiornare lo stato; una bocciatura elimina la prenotazione, svuota il nome nella riga del giocatore e scrive in bocciati la forma normalizzata insieme a nome, PUID e data.

Finalità e base giuridica: funzionalità dell'account, unicità dei nomi pubblici e sicurezza della comunità; esecuzione del servizio online richiesto e legittimo interesse del titolare a prevenire abusi e moderare nomi pubblici (art. 6.1.b e f GDPR). Google ospita Firestore, Apps Script e il Foglio di moderazione come fornitore. Gli altri giocatori e chiunque riesca a indirizzare l'endpoint pubblico di Firestore possono leggere i campi consentiti dalle regole.

Conservazione e liberazione: il codice non stabilisce una scadenza automatica per i documenti dei nickname, dei giocatori, dei nomi bocciati o per il Foglio di moderazione. Una normale liberazione cancella la prenotazione del nickname ma conserva la riga players/<PUID> col nome vuoto, il fornitore e la data di aggiornamento. Durante un'unione di account completata, il gioco può inviare via HTTPS al proprio Apps Script il PUID del donatore e un ID token EOS firmato; il servizio verifica il token, cancella la prenotazione del nome del donatore e svuota il suo nome. Il token non viene scritto nel registro né in una cache. Per accesso, rettifica o cancellazione dei registri e dei dati di moderazione, contattaci ai sensi del §9.

4. Cosa il gioco non fa

PraticaStreet University
Pubblicità e identificativi pubblicitariNo, nessuno
Analytics, telemetria o SDK di tracciamento di terze partiNo, nessuno
Profilazione o decisioni automatizzateNo
Acquisti in-app o pagamentiNo
Vendita di dati personaliMai
Chat testuale o vocale, messaggi fra giocatoriNon esistono nel gioco
Contenuti generati dagli utentiIl nickname pubblico usato nel registro, nel multiplayer e nella classifica mondiale (§§3.2, 3.3 e 3.8)
Accesso a posizione, rubrica, fotocamera, microfono, foto, file personaliMai richiesto

Su Android l'applicazione richiede soltanto i permessi INTERNET, ACCESS_NETWORK_STATE e ACCESS_WIFI_STATE, necessari al multiplayer.

5. Il programma di beta chiusa

Questa sezione riguarda solo chi partecipa alla fase di prova del gioco.

Quali dati: se chiedi di partecipare, ci comunichi tu, volontariamente, un nome o soprannome, un recapito (email, WhatsApp o Telegram), il tipo di dispositivo che userai e — per le versioni Windows e macOS — il codice dispositivo mostrato dal gioco. Se ci segnali un problema, ci mandi anche quello che scegli di allegare (descrizione, immagini, file di log).

Dati di gioco anonimi automatici (facoltativo): con il tuo consenso esplicito e revocabile — chiesto in gioco alla prima partita, e sempre visibile in Opzioni — il gioco può mandarci un resoconto di una sessione. Comprende data e ora UTC assoluta, versione e lingua, un identificativo casuale valido per quella sola partita, modello/OS/schermo/GPU/CPU e misure delle prestazioni, eventi e interazioni, reati, causa della fine partita, e inizio/fine del livello bonus con durata, vittoria, inciampi e monete raccolte. Un flag sì/no persistente indica se quel profilo locale ha mai usato un codice beta di sblocco, così quelle partite possono essere escluse dall'analisi. Ogni file locale della partita ha un tetto di 2 MiB. Non contiene PUID dell'account, identificativi pubblicitari/del dispositivo, email o nomi. Dopo un arresto anomalo può includere gli ultimi circa 16 KB del log tecnico, ripuliti da nomi account, token e indirizzi di rete. È spento finché non lo accendi e si può rispegnere in qualsiasi momento.

Perché: per abilitare il tuo dispositivo, avvisarti quando esce una nuova versione, raccogliere le tue segnalazioni e correggere il gioco.

Base giuridica: il tuo consenso (art. 6.1.a GDPR), che puoi revocare in qualsiasi momento chiedendo di uscire dal programma.

Dove stanno: in un foglio di calcolo custodito dal titolare, non pubblicato. Sul repository pubblico che ospita questa pagina finiscono solo i codici dispositivo, senza nomi né recapiti: sono valori troncati e privi di significato per chi li legge.

Per quanto: per la durata del programma di beta. Alla sua chiusura i dati vengono cancellati, e prima di allora in qualsiasi momento su tua richiesta.

Con chi sono condivisi: con nessuno. Se ti iscrivi al canale di prova di Google Play o ad Apple TestFlight, sarai tu a fornire il tuo indirizzo a quelle piattaforme, che lo trattano come titolari autonomi secondo le proprie informative.

6. Le piattaforme di distribuzione

Se scarichi il gioco da Google Play o da Apple App Store / TestFlight, quelle piattaforme trattano dati propri sul download, sull'installazione e sugli eventuali arresti anomali, in qualità di titolari autonomi e secondo le loro informative (Google, Apple). Il titolare di questo gioco riceve da loro solo statistiche aggregate e anonime, mai dati riferibili a una persona.

7. Minori

Il gioco non è destinato a bambini sotto i 13 anni, non è rivolto a loro nei contenuti né nella comunicazione, e non raccoglie consapevolmente dati di minori. Se ritieni che un minore abbia comunicato dei dati al titolare, scrivi al contatto in §1: verranno cancellati.

8. Trasferimenti fuori dall'Unione Europea

I fornitori citati in questa informativa — Epic Games, Inc., GitHub, Inc. e Google LLC — hanno sede negli Stati Uniti. Quando il gioco li contatta, i dati tecnici indicati sopra sono trattati anche fuori dall'UE, sulla base delle garanzie adottate da ciascuno di essi (clausole contrattuali standard e, dove applicabile, EU-U.S. Data Privacy Framework). Il titolare non effettua di propria iniziativa nessun altro trasferimento.

9. I tuoi diritti

Ai sensi degli articoli 15-22 del Regolamento (UE) 2016/679 puoi chiedere in ogni momento l'accesso ai tuoi dati, la rettifica o cancellazione, la limitazione o l'opposizione al trattamento, e la portabilità. Puoi inoltre revocare il consenso alla telemetria o alla partecipazione alla beta. Per una richiesta di account non devi dimostrare di avere ancora l'app installata.

Scrivi al contatto indicato in §1: la risposta arriva entro un mese. Per cancellare i dati che stanno sul tuo dispositivo è sufficiente disinstallare il gioco.

Hai anche il diritto di proporre reclamo al Garante per la protezione dei dati personali (garanteprivacy.it) o all'autorità di controllo del tuo Paese di residenza.

9.1 Cancellare l'account e i tuoi dati

Questa sezione riguarda Street University (nome del pacchetto com.divano.streetuniversity), pubblicato da Ivan Bianco — Divano_Prime.

Come si chiede. Nell'app apri ACCOUNT > CANCELLA ACCOUNT e conferma due volte. In alternativa usa streetuniversitygame.com/cancellazione/ oppure scrivi a info@streetuniversitygame.com. Il modulo chiede solo un indirizzo di contatto e, facoltativamente, PUID, nickname pubblico e codice invito. Non inviare password, token o credenziali. Il PUID serve ad abbinare la pratica senza chiedere dati eccedenti; se non lo conosci, la richiesta può essere verificata con il recapito e le informazioni disponibili.

Cosa viene cancellato. Dopo la presa in carico idempotente cancelliamo o facciamo cancellare entro 7 giorni, per quanto sotto il nostro controllo:

Il telefono torna ospite appena la richiesta è presa in carico. Uscire dall'account senza avviare questa pratica non cancella i dati remoti.

Cosa resta, e per quanto. Per un massimo di 365 giorni conserviamo solo una ricevuta tecnica con request_id, data, esito e un HMAC non reversibile del PUID. Quando serve per prevenire riscatti ripetuti o frodi, può restare per lo stesso periodo un tombstone antifrode degli inviti, senza codice, nickname, token, punteggi, progressi o relazioni leggibili. La scadenza è automatica. Gli identificativi tecnici EOS che il titolo non può sopprimere possono restare orfani e senza dati di gioco; chiediamo a Epic la rimozione quando disponibile. Eventuali obblighi di legge prevalgono soltanto per il periodo imposto.

La telemetria facoltativa usa un run_id casuale diverso per ogni partita e non è collegata all'account: la cancellazione dell'account non può selezionarla per PUID o nickname. Per una richiesta su un resoconto specifico scrivi al contatto del §1.

Tempi di risposta. Mandiamo una ricevuta quando la pratica è accettata e una conferma finale quando le operazioni remote sono concluse. Rispondiamo alle richieste di esercizio dei diritti entro un mese; il flusso di cancellazione account punta a concludere le operazioni remote entro 7 giorni.

10. Sicurezza

I dati dei beta tester sono custoditi su dispositivi personali del titolare protetti da password e cifratura del disco, e non sono accessibili a terzi. Nessun sistema è sicuro al 100%: il titolare adotta misure proporzionate alla quantità e alla natura dei dati trattati, che è volutamente minima.

I dati degli inviti viaggiano su connessioni HTTPS cifrate. Firestore conserva identificativi pseudonimi, nega al client ogni lettura dei documenti di riscatto e legame e permette soltanto le scritture limitate descritte al §3.5. Il servizio di conteggio verifica la firma di Epic prima di usare il PUID contenuto nel token e non conserva il token.

I salvataggi cloud passano da EOS Player Data Storage. Registro nickname e moderazione usano HTTPS; diversamente dai registri degli inviti, le collezioni dei nickname, dei giocatori e dei nomi bocciati hanno i permessi di lettura pubblica dichiarati al §3.8. I token d'identità usati per l'accesso o per liberare un nome con verifica non vengono scritti in quei registri.

11. Modifiche a questa informativa

Se cambia qualcosa in ciò che il gioco fa con i dati — per esempio se un giorno arrivasse una chat o una classifica online — questa pagina viene aggiornata prima che la modifica raggiunga i giocatori, e la data in cima cambia. La versione valida è sempre quella pubblicata a questo indirizzo.