As a game developer,
I want Trainer Classes to be managed as dedicated database entities,
So that I can reuse them across trainers, centralize their translations and metadata, and avoid maintaining duplicated text throughout the project.
Today, Trainer Classes only exist as localized strings stored in the trainer text CSV (100029.csv).
When creating a Trainer, users manually type the class name and provide its translations. As a result:
- identical Trainer Classes are duplicated many times
- translations become difficult to maintain
- renaming a Trainer Class requires updating every occurrence
- the database lacks a reusable concept representing Trainer Classes.
Pokémon Studio should introduce Trainer Classes as a proper database entity that can be referenced by Trainers instead of duplicating localized text.
Objectives
The MVP should:
- introduce Trainer Classes as a dedicated database entity
- centralize translations
- replace free-text Trainer Class editing by selecting an existing class
- migrate existing projects automatically
- prepare the data model for future Trainer Class features.
Acceptance Criteria
Trainer Class Database
Trainer Class Properties
Each Trainer Class contains at least:
The identifier follows the same conventions as other Pokémon Studio database entities.
Trainer Editor
The Trainer editor no longer exposes a free-text field for Trainer Class.
Instead:
Localization
Data Migration
Existing projects are migrated automatically.
The migration should:
Migration should be deterministic and repeatable.
Validation
Serialization
User Experience
The Trainer creation workflow should:
The Trainer Class editor should remain lightweight and focused on managing reusable Trainer Class definitions.
Identified and Relevant Use Cases
Trainer Creation
- Creating multiple Trainers sharing the same Trainer Class.
- Selecting an existing Trainer Class from a list instead of typing its name repeatedly.
Localization
- Translating a Trainer Class once for the entire project.
- Correcting a translation in one place.
Future Features
The Trainer Class entity should provide a stable foundation for future enhancements such as:
- artwork presets
- battle sprite presets
- overworld sprite presets
- default AI level
- default rewards
- default battle music
- other reusable Trainer Class metadata
The MVP only introduces the entity and its reference system.
Out of Scope
This story does not include:
- default Trainer resources
- Trainer templates
- default AI configuration
- default party generation
- automatic Trainer creation from a Trainer Class
- Trainer Class inheritance
- Trainer Class categories
- advanced filtering or tagging
These capabilities should be introduced through future iterations.
Product Notes
Trainer Classes represent a reusable gameplay concept and should therefore be modeled as a first-class database entity rather than localized text embedded in Trainer records.
This change improves:
- data normalization
- localization maintenance
- project consistency
- scalability.
It also aligns Trainer Classes with the overall Pokémon Studio philosophy, where reusable concepts (Pokémon, Moves, Abilities, Items, Maps, etc.) are represented as dedicated entities referenced throughout the project rather than duplicated.
As a game developer,
I want Trainer Classes to be managed as dedicated database entities,
So that I can reuse them across trainers, centralize their translations and metadata, and avoid maintaining duplicated text throughout the project.
Today, Trainer Classes only exist as localized strings stored in the trainer text CSV (
100029.csv).When creating a Trainer, users manually type the class name and provide its translations. As a result:
Pokémon Studio should introduce Trainer Classes as a proper database entity that can be referenced by Trainers instead of duplicating localized text.
Objectives
The MVP should:
Acceptance Criteria
Trainer Class Database
Trainer Class Properties
Each Trainer Class contains at least:
The identifier follows the same conventions as other Pokémon Studio database entities.
Trainer Editor
The Trainer editor no longer exposes a free-text field for Trainer Class.
Instead:
Localization
Data Migration
Existing projects are migrated automatically.
The migration should:
Migration should be deterministic and repeatable.
Validation
Serialization
User Experience
The Trainer creation workflow should:
The Trainer Class editor should remain lightweight and focused on managing reusable Trainer Class definitions.
Identified and Relevant Use Cases
Trainer Creation
Localization
Future Features
The Trainer Class entity should provide a stable foundation for future enhancements such as:
The MVP only introduces the entity and its reference system.
Out of Scope
This story does not include:
These capabilities should be introduced through future iterations.
Product Notes
Trainer Classes represent a reusable gameplay concept and should therefore be modeled as a first-class database entity rather than localized text embedded in Trainer records.
This change improves:
It also aligns Trainer Classes with the overall Pokémon Studio philosophy, where reusable concepts (Pokémon, Moves, Abilities, Items, Maps, etc.) are represented as dedicated entities referenced throughout the project rather than duplicated.