Skip to content

Game Version

A GameVersion tracks a specific release of a Game. Each uploaded zip file becomes a version that goes through the quarantine pipeline before it can be published.

Properties

PropertyTypeDescription
IdintPrimary key
GameIdintFK → parent Game
VersionNamestringSemantic label (e.g. 1.0.0, beta-2)
ChangelogHtmlstring?Release notes in HTML
IsDemoboolWhether this is a demo version
StateGameVersionStateCurrent lifecycle state (see below)
QuarantineBlobNamestring?Blob key in the quarantine container
PublishedBlobNamestring?Blob key in the published container
OriginalFileNamestringFilename as uploaded
ContentTypestringMIME type
Sha256string?SHA-256 hash computed after scan
SizeByteslongFile size
ScanResultstring?Raw scan output
CreatedAtUtcDateTimeUpload timestamp
ScannedAtUtcDateTime?When the scan completed
PublishedAtUtcDateTime?When the version went live

Version States

ValueNameDescription
0Draft / NewJust uploaded, awaiting quarantine
1QuarantinedCurrently being scanned
2ApprovedScan passed, ready to publish
3RejectedScan failed, cannot be published
4PublishedLive — players can download/play
5DeprecatedSuperseded by a newer version
6ArchivedRemoved from active use

Quarantine Pipeline

Upload → Quarantine Blob → Queue Message → Azure Function scans
  → Approved  → Copy to published blob → SHA-256 hash computed
  → Rejected  → Maker notified, version stays in quarantine

The quarantine pipeline is handled by Azure Functions (HandleQuarantineCreated and HandleQuarantineResult). The maker can then choose to publish an approved version from the game edit page.

Relationships

GameVersion (N) ──── (1) Game

Sell indie games for Bitcoin.