Privacy, in plain sight.
A harbor-management game that keeps its fictional fleet, progress and preferences local. Here is what is stored, what is never read, and how to stay in control.
Scope and the local-only design
This policy describes HARBORSHIFT version 1.0.0, an offline harbor-management game packaged as a Chrome extension. It covers the game interface, its local save, its bundled privacy page, and the backup controls included with this version. The game does not require an account, an email address, a subscription, or a connection to a game server.
The central distinction is between processing on your device and information sent to someone else. The game processes fictional harbor activity and your choices locally so that it can run and remember a watch. Its shipped code does not transmit that information to the publisher, to an analytics service, or to another player.
Information you provide while playing
The game receives the actions you make inside its own interface: selecting a ship, assigning a berth, choosing a route, buying a harbor upgrade, changing speed, pausing, selecting a mission, and adjusting settings. These controls affect the simulated harbor. They do not grant access to pages behind the popup or to other applications.
In-game ship names, port names, cargo types, deadlines and event messages are fictional game content. HARBORSHIFT does not ask you to name a character or enter a personal profile. Input in the erase-confirmation field is used to confirm a destructive action and is not included in the saved game.
The local save record
The save contains a product identifier and schema version, best ratings for eighteen watches, the current watch and harbor, simulation time and tick count, credits, upgrades, ship states, cargo accounting, departure totals, and a short event log. It also remembers the selected vessel, the preferred route, and sound and motion preferences.
Ship state includes cargo remaining, assigned pier, route, current route leg, travel progress, the game-time deadline, waiting reason and tug use. These details allow a paused harbor to be reconstructed. They are not location data about actual vessels, information from a transport account, or records of real-world journeys.
| Category | Use and storage boundary |
|---|---|
| Current watch | Harbor, ship routes, cargo, tides, credits, upgrades and departure accounting in IndexedDB. |
| Progress | Best star ratings for eighteen watches; no public leaderboard. |
| Preferences | Sound, ambient motion, selected vessel and route choice. |
| Short event log | Latest eight fictional harbor events, timed by the game clock. |
| Exported backup | A separate JSON file created only when you choose Export backup. |
Why each category is needed
Harbor and vessel state is used to continue the current watch without generating a different fleet or losing cargo. Completion ratings are used to mark completed watches in the atlas. Settings are used to keep your chosen sound and motion behavior. Selection and route preference make returning to an interrupted planning task less disruptive.
The saved product and schema identifiers help reject a file intended for another game or an incompatible format. Accounting and route validation check whether an imported watch is internally consistent. The game does not use the save to infer your identity, evaluate your browsing habits, personalize advertising or make decisions about you outside the game.
When saving happens
HARBORSHIFT schedules a local save after meaningful interface actions and approximately once per second while the simulation runs. Pausing and switching away also request a save. A completed storage transaction updates the local-save indicator. Reopening the game starts the simulation paused rather than calculating unattended losses or advancing time while the game was closed.
A popup can be closed by the browser before a pending operation finishes. A crash, sudden shutdown or unavailable storage can therefore lose the most recent unsaved interval. The game is designed to show save failures and pause the watch, but it cannot guarantee recovery after the browser or operating system destroys data.
Where data is stored
The extension uses the browser’s IndexedDB database for its own extension origin. The database for this product is named harborshift-v1, and the current record is held in a local state store. This version does not use chrome.storage.sync, chrome.storage.local, a remote database or a publisher-managed cloud backup.
Local means the data belongs to the browser profile on the device where the extension is running. It does not mean the record is encrypted by the game or inaccessible to someone who controls that profile. Browser-profile backups, operating-system backups and enterprise device tools may have their own behavior outside this extension’s control.
Permissions and extension capabilities
The production manifest does not declare permissions, optional permissions, host permissions or optional host permissions. There is no content script, no background service worker and no requested access to tabs, history, bookmarks, downloads, notifications, clipboard, geolocation, microphone or camera. The game uses ordinary page APIs within its own extension pages.
The Open game in a tab button uses the browser’s tab-creation capability to open the bundled game page. It does not enumerate existing tabs or request the tabs permission. Reading a file that you explicitly select for import and creating a local backup download use standard page controls, not broad access to your files or download history.
No access to webpages or browsing history
HARBORSHIFT does not inspect the title, address, content, forms, cookies or credentials of a page that happens to be open when you play. Its popup is its own document, not an overlay injected into that page. The game does not modify shopping pages, search results, links, advertisements or website behavior.
The source contains no mechanism to enumerate browser history, record browsing sessions, observe navigation or capture a webpage screenshot. Clicking a ship on the illustrated map changes the fictional harbor state only. The game’s screenshot-ready appearance is not a screen-recording feature and does not capture your desktop or other tabs.
Network behavior and remote code
All game logic, layouts, icons and illustrated assets are included in the extension package. The game does not fetch maps, advertisements, fonts, scripts or configuration from the internet. Its extension-page Content Security Policy disallows connections, and the shipped code has no analytics requests, web sockets, remote imports or game-server endpoints.
Chrome can separately communicate with its own services to install or update an extension and to operate the Chrome Web Store. Those browser and store activities are not network requests made by this game. Reading a copy of this policy on a publisher-hosted website may also involve that website’s hosting infrastructure, unlike opening the bundled local copy.
Analytics, advertising and profiling
This version has no analytics SDK, advertising SDK, tracking pixel, crash-report upload, attribution tag, affiliate link replacement or advertising identifier. It does not create a publisher-side player identifier. There are no leaderboards, multiplayer accounts, purchase systems or social profiles that could receive your harbor statistics.
The interface displays your in-game credits, cargo and departure counts because they are part of playing the watch. Those numbers are not product-analytics events sent elsewhere. The publisher does not receive a report of which mission you played, how long your harbor ran or which upgrade you chose.
Third parties and data sharing
The game does not share its saved state with external parties. There are no bundled third-party telemetry libraries or externally served assets in this release. Chrome’s built-in rendering, storage and audio APIs supply browser functionality; using those APIs does not add a game-operated cloud service or a publisher data-sharing channel.
The publisher cannot retrieve a saved harbor merely because you installed the extension. Information could reach another party if you choose to send a backup, screenshot or support message using a separate application. That voluntary transfer is different from automatic collection, and the receiving service’s own practices would apply to your submission.
Backups that you export
Export backup creates a JSON representation of the current game save and asks your browser to save it. The suggested filename identifies HARBORSHIFT rather than a person. The extension does not request permission to inspect your download history or determine the eventual folder chosen by the browser or by you.
An exported file remains outside the live game database. Erasing local game data does not find or delete that file. A backup may reveal your fictional fleet state, mission progress and preferences to anyone who can read it. Store or share it with the same care you would apply to any file describing your personal activities.
Backups that you import
Import backup reads only the file you explicitly choose in the file picker. The code limits an imported file to one megabyte, parses it as JSON, checks its game identifier and format, and validates the required fields, routes and accounting. It does not execute the file as JavaScript or use it to install extra content.
A valid imported save replaces the current game record. An invalid, incompatible or oversized file is rejected with a message. Selecting a file does not authorize the game to scan its folder, discover nearby files, read unrelated documents or keep a separate copy on a server. You can export the current save before replacing it.
The harbor log is not a usage log
The ship’s log is a bounded list of the latest eight in-game harbor events, such as an arrival, assignment, upgrade or departure. Its time values refer to the simulated watch clock. It is stored with the watch so that the player can understand recent activity after pausing or reopening the interface.
This is not a browser audit log or a developer telemetry stream. The extension does not send it out, add website visits to it or use it to record keyboard input outside the game. The free-harbor mode also removes older completed vessel records to keep the active save bounded rather than accumulating an unlimited play history.
Retention and automatic limits
The current save stays in the browser profile until it is replaced, erased, removed with the extension’s data or otherwise cleared by the browser or device. There is no server retention period because the game does not keep a server copy. Starting another watch replaces the unfinished watch while preserving best ratings and preferences.
Campaign records are bounded by the eighteen included watches. Free-harbor mode limits active arrivals and prunes old completed ships. These limits are designed to prevent unnecessary growth, but browser storage remains finite. This version does not request unlimitedStorage and should not be treated as a permanent archival system.
Deleting and resetting game data
Open Local data & settings, enter ERASE in the confirmation field, and choose Erase local data. The game clears the saved state and then creates a fresh starting record with default progress and settings. That process is intended to remove the old watch and ratings, not to leave the game unable to start.
You can separately remove downloaded backups using your operating system and manage extension data through your browser profile. Removing or resetting this game does not reach backups you shared with someone else or copies held by a profile-backup tool. No request to a publisher server is necessary to use the in-game erase control.
One active writer at a time
When the game opens, it requests an origin-scoped browser lock so that one game window controls the save. Another HARBORSHIFT window displays a message rather than silently becoming a second writer. This mechanism is local coordination between pages of the same installed game, not an account login or cross-device tracking system.
The lock is held for the active page’s lifetime and released when that page closes or transfers play to a game tab. It is not a stored user identifier. A browser interruption can still prevent a pending save from finishing, so the single-writer design complements backups rather than replacing them.
Sound, motion and display preferences
Sound is off by default. Enabling it plays brief tones synthesized locally with the browser’s audio API; there is no microphone request, audio recording or uploaded sound. The motion setting controls decorative water movement, wakes and animation. The interface can use the device’s reduced-motion preference when choosing the initial setting.
The renderer reads the current viewport size and pixel ratio to fit the canvas and draw legible artwork. Frame timing is used to schedule animation separately from simulation. These runtime values are not added to a device fingerprint, retained as a browsing profile or transmitted to the publisher.
Security measures and their limits
The extension isolates game logic from webpages, avoids remote executable code, validates backups before replacing a save, and uses browser-managed storage transactions. Dynamic textual values used in dialogs are escaped. Imported data is not treated as HTML. These measures reduce avoidable exposure but are not a promise that software can never contain a defect.
The game does not implement its own encryption or authentication for local saves. Someone with access to your unlocked computer, browser profile, developer tools or backup files may be able to inspect or alter them. Keep the browser and operating system maintained, protect your device, and retain a backup when losing progress would matter.
Failure and recovery controls
If saving fails, the interface displays a warning and pauses the simulation. Exporting a backup can preserve the current in-memory state when local storage is unavailable. A save that fails validation is not automatically treated as an empty game and overwritten; the recovery dialog offers a stored-record export, an explicit erase action and a retry.
Recovery is limited to data still available in the browser or in your own backup files. The publisher cannot reconstruct a harbor from an account because no account exists. A damaged file may be rejected even when some fields look familiar, because continuing inconsistent cargo or route data could produce further errors.
Children and shared devices
The game does not ask for age, date of birth, a school, a child’s name or a guardian’s contact details. It has no chat, public profile or player-to-player communication. This describes the product’s data behavior, not a claim that every jurisdiction assigns the same age rating or distribution requirements to a game.
On a shared browser profile, other people using that profile may see the harbor and its progress. A parent, guardian or device owner can use the local erase control and remove exported backups. The game does not silently transmit a child’s activity to the publisher or provide a remote parental-monitoring service.
Support messages you choose to send
There is no support form, feedback uploader or mailbox inside the game. If you independently contact the publisher through a store contact method, an email service or another support route, you choose what information to include. Such a message may contain the contact details and attachments supplied by you through that separate service.
For a gameplay issue, the product name, version, watch number and a short description are usually more relevant than a full browser screenshot. Avoid including unrelated tabs, credentials, private documents or personal details in a backup filename. A support conversation does not give the publisher automatic access to the installed game’s local database.
Policy changes and version boundaries
This document applies to version 1.0.0 and the behavior described here. A future release that adds an online feature, account, permission or different data flow would need a corresponding policy update and appropriate disclosure. An existing local-only statement should not be assumed to describe a materially different future product.
The effective date and product version appear at the top of this document. Browser-store update notices are separate from this policy. The game has no custom remote-policy checker or mechanism that fetches new terms while you play. You can retain the bundled policy and release package as a record of the version you installed.
Contacting the publisher
For questions about this policy or the distribution of HARBORSHIFT, use the developer contact or support contact shown in the Chrome Web Store listing from which you obtain the product. Identify the exact game name and version so that your question can be matched to the correct release. This bundled document does not itself send a message.
The publisher must provide a working contact route when distributing the product. No publisher email address or legal identity has been inferred from your browser data or invented inside the game. Questions about a third-party-hosted copy of the policy, a store account or the browser’s own services may also need to be directed to the relevant service provider.
The practical summary
HARBORSHIFT processes your harbor choices on your device, stores the current game locally, and offers controls to export, replace or erase that record. It does not read websites, run a background tracking process, operate a cloud account or send your game state to analytics or advertising services. The local and exported copies are the copies under your direct control.
Before relying on a save, check the local-save indicator. Before deleting or replacing one, export a backup when appropriate. Before sharing a file or screenshot, consider what it shows and where you are sending it. Those are user-controlled choices; they are not conditions that unlock hidden collection or change the extension’s declared permissions.