Files
minecraft-account-manager/design/us-004-minecraft-validation.md
T

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)