39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
---
|
|
type: User Story
|
|
title: Validate Minecraft accounts
|
|
description: Java Edition usernames resolve to canonical Mojang identities with controlled override behavior.
|
|
tags: [player, minecraft, mojang, identity]
|
|
timestamp: 2026-08-01T18:43:58Z
|
|
story_id: US-004
|
|
status: verified
|
|
---
|
|
|
|
# User Story
|
|
|
|
As a player, I want submitted Minecraft usernames checked against Mojang, so that the server can identify my online-mode Java account reliably.
|
|
|
|
# Acceptance Criteria
|
|
|
|
- [x] Given a syntactically valid username, when it is submitted, then validation occurs server-side against the fixed Mojang endpoint.
|
|
- [x] Given a Mojang match, then the canonical username and compact UUID are stored.
|
|
- [x] Given no Mojang match, then the user or administrator must explicitly confirm an unverified override.
|
|
- [x] Given malformed input, then it cannot be stored even through an override.
|
|
- [x] Given an active UUID or case-insensitive username already registered, then another active registration is rejected.
|
|
- [x] Given a later online-mode game login for an unverified account, then its UUID can be safely backfilled after username matching.
|
|
|
|
# Implementation
|
|
|
|
- [`packages/minecraft/src/index.ts`](../packages/minecraft/src/index.ts)
|
|
- [`packages/database/src/schema.ts`](../packages/database/src/schema.ts)
|
|
- User and administrator account actions under [`apps/web/src/app`](../apps/web/src/app)
|
|
|
|
# Validation
|
|
|
|
- [`packages/minecraft/test/minecraft.test.ts`](../packages/minecraft/test/minecraft.test.ts)
|
|
- Database partial unique indexes preserve active identity invariants.
|
|
|
|
# Related Stories
|
|
|
|
- [First-time onboarding](us-003-onboarding.md)
|
|
- [Velocity game admission](us-009-velocity-admission.md)
|