How lordbusiness011124/carolina-data-challenge-2026 works
Humanity’s Next Move is a turn-based development strategy game that lets players govern a country against real World Bank history. The documented workflow runs from country and year selection, through a live national briefing and ten simulated turns with regional rivals, policies, events and story chapters, to a final comparison of simulated outcomes with real history. A separate data explorer and landing-page progress panel make the source data inspectable. The sampled routes and services establish the server-side data flow; component-to-component wiring and most game-engine calls are not shown, so those links are omitted.
Main entry points: service.ts Data service · client.ts API client · Setup.tsx Game setup · Play.tsx Turn play
Components 27
Game experience
- Landing page
src/app/page.tsx - Game setup
src/components/Setup.tsx - Turn play
src/components/Play.tsx - Game screen
src/components/Game.tsx - Regional board
src/components/Board.tsx - Turn chronicle
src/components/Story.tsx - Final reveal
src/components/Reveal.tsx - Data explorer
src/components/DataExplorer.tsx
Simulation engine
- Turn simulation
src/lib/game/simulation.ts - Policy rules
src/lib/game/rules.ts - Political events
src/lib/game/politics.ts - Impact ledger
src/lib/game/impact.ts - Mission scoring
src/lib/game/scoring.ts
World Bank data
- Data service
src/lib/worldbank/service.ts - Data packages
src/lib/worldbank/package.ts - API client
src/lib/worldbank/client.ts - Data normalization
src/lib/worldbank/normalize.ts
API routes
- Countries route
src/app/api/countries/route.ts - Setup route
src/app/api/setup/route.ts - Start route
src/app/api/start/route.ts - Rivals route
src/app/api/rivals/route.ts - History route
src/app/api/history/route.ts - Reveal route
src/app/api/reveal/route.ts - Progress route
src/app/api/progress/route.ts - Verify route
src/app/api/verify/route.ts
Other components
- Player
- World Bank API
Connections 23
- Player → Game setup: chooses country
- Player → Turn play: makes decisions
- Game setup → Countries route: loads countries
- Game setup → Setup route: checks start years
- Game setup → Start route: loads briefing
- Turn play → Rivals route: loads rivals
- Turn play → History route: loads played history
- Turn play → Reveal route: requests final history
- Landing page → Progress route: loads world progress
- Data explorer → Verify route: checks indicator data
- Setup route → Data service: calls
- Countries route → Data service: calls
- Start route → Data service: calls
- Rivals route → Data service: calls
- History route → Data service: calls
- Reveal route → Data service: calls
- Progress route → API client: fetches indicators
- Verify route → API client: fetches indicator
- Data service → API client: fetches data
- Data service → Data packages: builds packages
- Data service → Data normalization: converts observations
- API client → Data normalization: parses pages
- API client → World Bank API: requests data