feat(ui): skill levels + titles on CREW tab and team-builder (#45)
CI / build + unit + e2e (pull_request) Successful in 3m7s

This commit is contained in:
2026-10-04 03:22:51 +00:00
parent 9d1a8e9d89
commit 1a36160392
8 changed files with 146 additions and 25 deletions
+16 -3
View File
@@ -976,11 +976,24 @@ export const openApiSpec = {
id: { type: 'integer' },
name: { type: 'string' },
role: { type: 'string', description: 'Ship role, e.g. PILOT or ENGINEER' },
trait_good: { type: 'string', description: 'The member good trait' },
trait_bad: { type: 'string', description: 'The member bad trait' },
traitGood: { type: 'string', description: 'The member good trait' },
traitBad: { type: 'string', description: 'The member bad trait' },
origin: { type: 'string', description: "'STARTING CREW' or '<planet>, <system>' for members found while exploring" },
skills: {
type: 'array',
description: 'The member four crew_skills levels in the fixed NAVIGATION → SCANNING → ENGINEERING → RESEARCH order (display-oriented — levels only, no xp)',
items: {
type: 'object',
properties: {
skill: { type: 'string', enum: ['NAVIGATION', 'SCANNING', 'ENGINEERING', 'RESEARCH'] },
level: { type: 'integer' },
},
required: ['skill', 'level'],
},
},
title: { type: ['string', 'null'], nullable: true, description: "'SENIOR <ROLE>' from the member's highest skill level ≥ 3, 'MASTER <ROLE>' from ≥ 5 — null below" },
},
required: ['id', 'name', 'role', 'trait_good', 'trait_bad', 'origin'],
required: ['id', 'name', 'role', 'traitGood', 'traitBad', 'origin', 'skills', 'title'],
},
CrewState: {
type: 'object',