TECHIS.EndApps.Games 0.1.1

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package TECHIS.EndApps.Games --version 0.1.1
                    
NuGet\Install-Package TECHIS.EndApps.Games -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TECHIS.EndApps.Games" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TECHIS.EndApps.Games" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="TECHIS.EndApps.Games" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TECHIS.EndApps.Games --version 0.1.1
                    
#r "nuget: TECHIS.EndApps.Games, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TECHIS.EndApps.Games@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TECHIS.EndApps.Games&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=TECHIS.EndApps.Games&version=0.1.1
                    
Install as a Cake Tool

Naija 99

Naija 99 is an independently owned EndApps game feature. This repository contains the reusable game catalog contract, the server-authoritative Naija 99 Razor Class Library, a standalone host, and the complete test suite.

Projects

Project Purpose Package
TECHIS.EndApps.Games Host-neutral game registry, player-identity contract, MVC catalog, and catalog assets TECHIS.EndApps.Games
TECHIS.EndApps.Games.Naija99 Gameplay, provider/service flow, Azure Table stores, controllers, Razor views, and static assets TECHIS.EndApps.Games.Naija99
TECHIS.EndApps.Games.Host Independently runnable development host Not packable
TECHIS.EndApps.Games.Naija99.Test Behavioral, security-boundary, definition, and Azurite integration tests Not packable

Quick start

The standalone host uses local project references for Games and Naija 99. Neither game package depends on TECHIS.EndApps.Web. Shared host contracts come from TECHIS.EndApps.Abstractions 13.3.2, so restoring requires access to the EndApps Core package feed:

dotnet run --project .\TECHIS.EndApps.Games.Host\TECHIS.EndApps.Games.Host.csproj

Open /games or /games/naija-99/play. The deterministic player identity is enabled only in the Development environment. The standalone host intentionally uses in-memory stores in every environment and is not the production EndApps host.

Start cities are shown from Easy through Expert. New Explore journeys start with 12 total cities, including the start. After 11 discoveries, choose End now for personal short-game results or Continue exploring to keep the same journey and discover all 99. The choice is saved on the server and restored after reload. There is no separate unlock profile. Compete still requires all 99 cities. Existing full Explore journeys and API requests without a target remain full-length.

EndApps storage configuration

An EndApps composition using Azure Tables supplies one storage-account connection string for both Naija 99 tables. The campaign and leaderboard table names remain independently configurable:

{
  "Naija99": {
    "StorageConnectionString": "",
    "Storage": {
      "TableName": "EndAppsNaija99Campaigns",
      "MaximumContentionAttempts": 6
    },
    "LeaderboardStorage": {
      "TableName": "EndAppsNaija99Leaderboards"
    }
  }
}

Keep the connection string outside source control. Reads do not create tables; controlled writes create the relevant table when it does not already exist.

Build and test

dotnet build .\TECHIS.EndApps.Games.Naija99.sln
dotnet test .\TECHIS.EndApps.Games.Naija99.Test\TECHIS.EndApps.Games.Naija99.Test.csproj
node --test .\tests\naija99-client.test.mjs

To run the four Azure Table integration tests, start local Azurite and set:

$env:NAIJA99_AZURITE_CONNECTION_STRING = 'UseDevelopmentStorage=true'
dotnet test .\TECHIS.EndApps.Games.Naija99.Test\TECHIS.EndApps.Games.Naija99.Test.csproj

Reference modes

Within this repository, EndAppsGamesReferenceMode selects Project or Package references for package-only validation. Invalid values and missing local projects fail during restore/build/pack.

EndApps.AspNet follows the existing App and News convention: deploy configuration uses the public NuGet packages, while a developer explicitly comments those references and enables the adjacent project references when stepping through source. There is no cross-repository MSBuild mode API.

The repository's ordinary local build needs no mode properties:

dotnet build .\TECHIS.EndApps.Games.Naija99.sln

Package-only mode uses exact package versions:

dotnet build .\TECHIS.EndApps.Games.Host\TECHIS.EndApps.Games.Host.csproj `
  -p:EndAppsReferenceMode=Package

Package mode restores TECHIS.EndApps.Games and TECHIS.EndApps.Games.Naija99 from NuGet.org and Core Abstractions from the EndApps feed. For pre-publication validation, pack Games first, pack Naija 99 against that temporary feed, then build a disposable copy of the host against the same feed.

The next-release package defaults are TECHIS.EndApps.Games 0.1.1, TECHIS.EndApps.Games.Naija99 0.1.5, TECHIS.EndApps.Abstractions 13.3.2, and Azure.Data.Tables 12.12.0. The new game versions must be published before a normal package-mode restore. Override the corresponding version properties only when validating a coordinated release.

Architecture

EndApps.AspNet directly composes the game packages; TECHIS.EndApps.App and TECHIS.EndApps.Web do not own or depend on Naija 99. If the game later consumes shared Web functionality, it can add the same explicit Web project/package alternatives used by News. The standalone host composes the same feature surface. The frozen graph and question definitions remain embedded server-only resources and are never static web assets.

See the architecture and delivery plan for dependency, persistence, security, and release details.

No package-publishing or cloud-resource operation is performed by the repository build.

See short Explore and release readiness for acceptance criteria, compatibility, test evidence, and deployment boundaries. Deploying the new packages also requires the composition host's static-asset publish fix; package contents alone do not correct the production catalog CSS 404.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on TECHIS.EndApps.Games:

Package Downloads
TECHIS.EndApps.Games.Naija99

Server-authoritative Naija 99 game module with MVC controllers, Razor views, static assets, and Azure Table persistence.

TECHIS.EndApps.Games.SoccerTaki2

Soccer Taki 2 with Eko Warriors and Abuja Kings, mobile leaderboard navigation and server-verified Legend results.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.15 159 10/3/2026
0.1.14-local.20261002181343... 82 10/2/2026
0.1.13 113 9/28/2026
0.1.12 105 9/28/2026
0.1.11 96 9/28/2026
0.1.10 95 9/28/2026
0.1.9 99 9/28/2026
0.1.8 116 9/18/2026
0.1.2 110 9/15/2026
0.1.1 111 9/14/2026
0.1.0 124 9/10/2026

Adds generic Core host authentication and identity integration, catalog sign-in actions, and a game-owned sign-in fallback.