gitextract_5nuvmdzy/ ├── .dockerignore ├── .github/ │ ├── CODEOWNERS │ ├── FUNDING.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actions/ │ │ └── validate-pr-title/ │ │ └── action.yml │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── codeql-analysis.yml │ ├── lint-pr.yml │ ├── release-please.yml │ └── release.yml ├── .gitignore ├── .nvmrc ├── .prettierrc ├── .redocly.yaml ├── CHANGELOG.md ├── Dockerfile ├── LICENSE.md ├── README.md ├── app.json ├── docker-compose.yml ├── eslint.config.js ├── heroku.yml ├── nodemon.json ├── openapi-to-postman.json ├── package.json ├── release-please-config.json ├── src/ │ ├── controllers/ │ │ ├── api/ │ │ │ ├── 2014/ │ │ │ │ ├── abilityScoreController.ts │ │ │ │ ├── alignmentController.ts │ │ │ │ ├── backgroundController.ts │ │ │ │ ├── classController.ts │ │ │ │ ├── conditionController.ts │ │ │ │ ├── damageTypeController.ts │ │ │ │ ├── equipmentCategoryController.ts │ │ │ │ ├── equipmentController.ts │ │ │ │ ├── featController.ts │ │ │ │ ├── featureController.ts │ │ │ │ ├── languageController.ts │ │ │ │ ├── magicItemController.ts │ │ │ │ ├── magicSchoolController.ts │ │ │ │ ├── monsterController.ts │ │ │ │ ├── proficiencyController.ts │ │ │ │ ├── raceController.ts │ │ │ │ ├── ruleController.ts │ │ │ │ ├── ruleSectionController.ts │ │ │ │ ├── skillController.ts │ │ │ │ ├── spellController.ts │ │ │ │ ├── subclassController.ts │ │ │ │ ├── subraceController.ts │ │ │ │ ├── traitController.ts │ │ │ │ └── weaponPropertyController.ts │ │ │ ├── 2024/ │ │ │ │ ├── abilityScoreController.ts │ │ │ │ ├── alignmentController.ts │ │ │ │ ├── backgroundController.ts │ │ │ │ ├── conditionController.ts │ │ │ │ ├── damageTypeController.ts │ │ │ │ ├── equipmentCategoryController.ts │ │ │ │ ├── equipmentController.ts │ │ │ │ ├── featController.ts │ │ │ │ ├── languageController.ts │ │ │ │ ├── magicItemController.ts │ │ │ │ ├── magicSchoolController.ts │ │ │ │ ├── proficiencyController.ts │ │ │ │ ├── skillController.ts │ │ │ │ ├── speciesController.ts │ │ │ │ ├── subclassController.ts │ │ │ │ ├── subspeciesController.ts │ │ │ │ ├── traitController.ts │ │ │ │ ├── weaponMasteryPropertyController.ts │ │ │ │ └── weaponPropertyController.ts │ │ │ ├── imageController.ts │ │ │ ├── v2014Controller.ts │ │ │ └── v2024Controller.ts │ │ ├── apiController.ts │ │ ├── docsController.ts │ │ └── simpleController.ts │ ├── css/ │ │ └── custom.css │ ├── graphql/ │ │ ├── 2014/ │ │ │ ├── common/ │ │ │ │ ├── choiceTypes.ts │ │ │ │ ├── equipmentTypes.ts │ │ │ │ ├── interfaces.ts │ │ │ │ └── unions.ts │ │ │ ├── resolvers/ │ │ │ │ ├── abilityScore/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── alignment/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── background/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── class/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── condition/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── damageType/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── equipment/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── equipmentCategory/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── feat/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── feature/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── index.ts │ │ │ │ ├── language/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── level/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── magicItem/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── magicSchool/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── monster/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── proficiency/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── race/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── rule/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── ruleSection/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── skill/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── spell/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── subclass/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── subrace/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── trait/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ └── weaponProperty/ │ │ │ │ ├── args.ts │ │ │ │ └── resolver.ts │ │ │ ├── types/ │ │ │ │ ├── backgroundTypes.ts │ │ │ │ ├── featureTypes.ts │ │ │ │ ├── monsterTypes.ts │ │ │ │ ├── proficiencyTypes.ts │ │ │ │ ├── startingEquipment/ │ │ │ │ │ ├── choice.ts │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── optionSet.ts │ │ │ │ ├── subclassTypes.ts │ │ │ │ └── traitTypes.ts │ │ │ └── utils/ │ │ │ ├── helpers.ts │ │ │ ├── resolvers.ts │ │ │ └── startingEquipmentResolver.ts │ │ ├── 2024/ │ │ │ ├── common/ │ │ │ │ ├── choiceTypes.ts │ │ │ │ ├── equipmentTypes.ts │ │ │ │ ├── interfaces.ts │ │ │ │ ├── resolver.ts │ │ │ │ └── unions.ts │ │ │ ├── resolvers/ │ │ │ │ ├── abilityScore/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── alignment/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── background/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── condition/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── damageType/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── equipment/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── equipmentCategory/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── feat/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── index.ts │ │ │ │ ├── language/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── magicItem/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── magicSchool/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── proficiency/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── skill/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── species/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── subclass/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── subspecies/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── trait/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ ├── weaponMasteryProperty/ │ │ │ │ │ ├── args.ts │ │ │ │ │ └── resolver.ts │ │ │ │ └── weaponProperty/ │ │ │ │ ├── args.ts │ │ │ │ └── resolver.ts │ │ │ ├── types/ │ │ │ │ └── backgroundEquipment/ │ │ │ │ ├── choice.ts │ │ │ │ ├── common.ts │ │ │ │ ├── index.ts │ │ │ │ └── optionSet.ts │ │ │ └── utils/ │ │ │ ├── backgroundEquipmentResolver.ts │ │ │ ├── choiceResolvers.ts │ │ │ └── resolvers.ts │ │ ├── common/ │ │ │ ├── args.ts │ │ │ ├── choiceTypes.ts │ │ │ ├── enums.ts │ │ │ ├── inputs.ts │ │ │ └── types.ts │ │ └── utils/ │ │ └── resolvers.ts │ ├── middleware/ │ │ ├── apolloServer.ts │ │ ├── bugsnag.ts │ │ └── errorHandler.ts │ ├── models/ │ │ ├── 2014/ │ │ │ ├── abilityScore.ts │ │ │ ├── alignment.ts │ │ │ ├── background.ts │ │ │ ├── class.ts │ │ │ ├── collection.ts │ │ │ ├── condition.ts │ │ │ ├── damageType.ts │ │ │ ├── equipment.ts │ │ │ ├── equipmentCategory.ts │ │ │ ├── feat.ts │ │ │ ├── feature.ts │ │ │ ├── language.ts │ │ │ ├── level.ts │ │ │ ├── magicItem.ts │ │ │ ├── magicSchool.ts │ │ │ ├── monster.ts │ │ │ ├── proficiency.ts │ │ │ ├── race.ts │ │ │ ├── rule.ts │ │ │ ├── ruleSection.ts │ │ │ ├── skill.ts │ │ │ ├── spell.ts │ │ │ ├── subclass.ts │ │ │ ├── subrace.ts │ │ │ ├── trait.ts │ │ │ └── weaponProperty.ts │ │ ├── 2024/ │ │ │ ├── abilityScore.ts │ │ │ ├── alignment.ts │ │ │ ├── background.ts │ │ │ ├── collection.ts │ │ │ ├── condition.ts │ │ │ ├── damageType.ts │ │ │ ├── equipment.ts │ │ │ ├── equipmentCategory.ts │ │ │ ├── feat.ts │ │ │ ├── language.ts │ │ │ ├── magicItem.ts │ │ │ ├── magicSchool.ts │ │ │ ├── proficiency.ts │ │ │ ├── skill.ts │ │ │ ├── species.ts │ │ │ ├── subclass.ts │ │ │ ├── subspecies.ts │ │ │ ├── trait.ts │ │ │ ├── weaponMasteryProperty.ts │ │ │ └── weaponProperty.ts │ │ └── common/ │ │ ├── apiReference.ts │ │ ├── areaOfEffect.ts │ │ ├── choice.ts │ │ ├── damage.ts │ │ └── difficultyClass.ts │ ├── public/ │ │ └── index.html │ ├── routes/ │ │ ├── api/ │ │ │ ├── 2014/ │ │ │ │ ├── abilityScores.ts │ │ │ │ ├── alignments.ts │ │ │ │ ├── backgrounds.ts │ │ │ │ ├── classes.ts │ │ │ │ ├── conditions.ts │ │ │ │ ├── damageTypes.ts │ │ │ │ ├── equipment.ts │ │ │ │ ├── equipmentCategories.ts │ │ │ │ ├── feats.ts │ │ │ │ ├── features.ts │ │ │ │ ├── images.ts │ │ │ │ ├── languages.ts │ │ │ │ ├── magicItems.ts │ │ │ │ ├── magicSchools.ts │ │ │ │ ├── monsters.ts │ │ │ │ ├── proficiencies.ts │ │ │ │ ├── races.ts │ │ │ │ ├── ruleSections.ts │ │ │ │ ├── rules.ts │ │ │ │ ├── skills.ts │ │ │ │ ├── spells.ts │ │ │ │ ├── subclasses.ts │ │ │ │ ├── subraces.ts │ │ │ │ ├── traits.ts │ │ │ │ └── weaponProperties.ts │ │ │ ├── 2014.ts │ │ │ ├── 2024/ │ │ │ │ ├── abilityScores.ts │ │ │ │ ├── alignments.ts │ │ │ │ ├── backgrounds.ts │ │ │ │ ├── conditions.ts │ │ │ │ ├── damageTypes.ts │ │ │ │ ├── equipment.ts │ │ │ │ ├── equipmentCategories.ts │ │ │ │ ├── feats.ts │ │ │ │ ├── languages.ts │ │ │ │ ├── magicItems.ts │ │ │ │ ├── magicSchools.ts │ │ │ │ ├── proficiencies.ts │ │ │ │ ├── skills.ts │ │ │ │ ├── species.ts │ │ │ │ ├── subclasses.ts │ │ │ │ ├── subspecies.ts │ │ │ │ ├── traits.ts │ │ │ │ ├── weaponMasteryProperties.ts │ │ │ │ └── weaponProperty.ts │ │ │ ├── 2024.ts │ │ │ └── images.ts │ │ └── api.ts │ ├── schemas/ │ │ └── schemas.ts │ ├── server.ts │ ├── start.ts │ ├── swagger/ │ │ ├── README.md │ │ ├── parameters/ │ │ │ ├── 2014/ │ │ │ │ ├── combined.yml │ │ │ │ ├── path/ │ │ │ │ │ ├── ability-scores.yml │ │ │ │ │ ├── alignments.yml │ │ │ │ │ ├── backgrounds.yml │ │ │ │ │ ├── classes.yml │ │ │ │ │ ├── common.yml │ │ │ │ │ ├── conditions.yml │ │ │ │ │ ├── damage-types.yml │ │ │ │ │ ├── equipment.yml │ │ │ │ │ ├── features.yml │ │ │ │ │ ├── languages.yml │ │ │ │ │ ├── magic-schools.yml │ │ │ │ │ ├── monsters.yml │ │ │ │ │ ├── proficiencies.yml │ │ │ │ │ ├── races.yml │ │ │ │ │ ├── rule-sections.yml │ │ │ │ │ ├── rules.yml │ │ │ │ │ ├── skills.yml │ │ │ │ │ ├── spells.yml │ │ │ │ │ ├── subclasses.yml │ │ │ │ │ ├── subraces.yml │ │ │ │ │ ├── traits.yml │ │ │ │ │ └── weapon-properties.yml │ │ │ │ └── query/ │ │ │ │ ├── classes.yml │ │ │ │ ├── monsters.yml │ │ │ │ └── spells.yml │ │ │ └── 2024/ │ │ │ └── .keepme │ │ ├── paths/ │ │ │ ├── 2014/ │ │ │ │ ├── ability-scores.yml │ │ │ │ ├── alignments.yml │ │ │ │ ├── backgrounds.yml │ │ │ │ ├── classes.yml │ │ │ │ ├── combined.yml │ │ │ │ ├── common.yml │ │ │ │ ├── conditions.yml │ │ │ │ ├── damage-types.yml │ │ │ │ ├── equipment-categories.yml │ │ │ │ ├── equipment.yml │ │ │ │ ├── feats.yml │ │ │ │ ├── features.yml │ │ │ │ ├── languages.yml │ │ │ │ ├── magic-items.yml │ │ │ │ ├── magic-schools.yml │ │ │ │ ├── monsters.yml │ │ │ │ ├── proficiencies.yml │ │ │ │ ├── races.yml │ │ │ │ ├── rule-sections.yml │ │ │ │ ├── rules.yml │ │ │ │ ├── skills.yml │ │ │ │ ├── spells.yml │ │ │ │ ├── subclasses.yml │ │ │ │ ├── subraces.yml │ │ │ │ ├── traits.yml │ │ │ │ └── weapon-properties.yml │ │ │ └── 2024/ │ │ │ └── .keepme │ │ ├── schemas/ │ │ │ ├── 2014/ │ │ │ │ ├── ability-scores.yml │ │ │ │ ├── alignments.yml │ │ │ │ ├── armor.yml │ │ │ │ ├── backgrounds.yml │ │ │ │ ├── classes.yml │ │ │ │ ├── combined.yml │ │ │ │ ├── common.yml │ │ │ │ ├── equipment.yml │ │ │ │ ├── feats.yml │ │ │ │ ├── features.yml │ │ │ │ ├── game-mechanics.yml │ │ │ │ ├── language.yml │ │ │ │ ├── monsters-common.yml │ │ │ │ ├── monsters.yml │ │ │ │ ├── multiclassing.yml │ │ │ │ ├── proficiencies.yml │ │ │ │ ├── races.yml │ │ │ │ ├── rules.yml │ │ │ │ ├── skills.yml │ │ │ │ ├── spell.yml │ │ │ │ ├── spellcasting.yml │ │ │ │ ├── subclass.yml │ │ │ │ ├── subrace.yml │ │ │ │ ├── traits.yml │ │ │ │ └── weapon.yml │ │ │ └── 2024/ │ │ │ └── .keepme │ │ └── swagger.yml │ ├── tests/ │ │ ├── controllers/ │ │ │ ├── api/ │ │ │ │ ├── 2014/ │ │ │ │ │ ├── abilityScoreController.test.ts │ │ │ │ │ ├── alignmentController.test.ts │ │ │ │ │ ├── backgroundController.test.ts │ │ │ │ │ ├── classController.test.ts │ │ │ │ │ ├── conditionController.test.ts │ │ │ │ │ ├── damageTypeController.test.ts │ │ │ │ │ ├── equipmentCategoryController.test.ts │ │ │ │ │ ├── equipmentController.test.ts │ │ │ │ │ ├── featController.test.ts │ │ │ │ │ ├── featureController.test.ts │ │ │ │ │ ├── languageController.test.ts │ │ │ │ │ ├── magicItemController.test.ts │ │ │ │ │ ├── magicSchoolController.test.ts │ │ │ │ │ ├── monsterController.test.ts │ │ │ │ │ ├── proficiencyController.test.ts │ │ │ │ │ ├── raceController.test.ts │ │ │ │ │ ├── ruleSectionController.test.ts │ │ │ │ │ ├── rulesController.test.ts │ │ │ │ │ ├── skillController.test.ts │ │ │ │ │ ├── spellController.test.ts │ │ │ │ │ ├── subclassController.test.ts │ │ │ │ │ ├── subraceController.test.ts │ │ │ │ │ ├── traitController.test.ts │ │ │ │ │ └── weaponPropertyController.test.ts │ │ │ │ ├── 2024/ │ │ │ │ │ ├── BackgroundController.test.ts │ │ │ │ │ ├── FeatController.test.ts │ │ │ │ │ ├── MagicItemController.test.ts │ │ │ │ │ ├── ProficiencyController.test.ts │ │ │ │ │ ├── SubclassController.test.ts │ │ │ │ │ ├── abilityScoreController.test.ts │ │ │ │ │ ├── alignmentController.test.ts │ │ │ │ │ ├── conditionController.test.ts │ │ │ │ │ ├── damageTypeController.test.ts │ │ │ │ │ ├── equipmentCategoryController.test.ts │ │ │ │ │ ├── equipmentController.test.ts │ │ │ │ │ ├── languageController.test.ts │ │ │ │ │ ├── magicSchoolController.test.ts │ │ │ │ │ ├── skillController.test.ts │ │ │ │ │ ├── speciesController.test.ts │ │ │ │ │ ├── subspeciesController.test.ts │ │ │ │ │ ├── traitController.test.ts │ │ │ │ │ ├── weaponMasteryPropertyController.test.ts │ │ │ │ │ └── weaponPropertyController.test.ts │ │ │ │ ├── v2014Controller.test.ts │ │ │ │ └── v2024Controller.test.ts │ │ │ ├── apiController.test.ts │ │ │ ├── globalSetup.ts │ │ │ └── simpleController.test.ts │ │ ├── factories/ │ │ │ ├── 2014/ │ │ │ │ ├── abilityScore.factory.ts │ │ │ │ ├── alignment.factory.ts │ │ │ │ ├── background.factory.ts │ │ │ │ ├── class.factory.ts │ │ │ │ ├── collection.factory.ts │ │ │ │ ├── common.factory.ts │ │ │ │ ├── condition.factory.ts │ │ │ │ ├── damageType.factory.ts │ │ │ │ ├── equipment.factory.ts │ │ │ │ ├── equipmentCategory.factory.ts │ │ │ │ ├── feat.factory.ts │ │ │ │ ├── feature.factory.ts │ │ │ │ ├── language.factory.ts │ │ │ │ ├── level.factory.ts │ │ │ │ ├── magicItem.factory.ts │ │ │ │ ├── magicSchool.factory.ts │ │ │ │ ├── monster.factory.ts │ │ │ │ ├── proficiency.factory.ts │ │ │ │ ├── race.factory.ts │ │ │ │ ├── rule.factory.ts │ │ │ │ ├── ruleSection.factory.ts │ │ │ │ ├── skill.factory.ts │ │ │ │ ├── spell.factory.ts │ │ │ │ ├── subclass.factory.ts │ │ │ │ ├── subrace.factory.ts │ │ │ │ ├── trait.factory.ts │ │ │ │ └── weaponProperty.factory.ts │ │ │ └── 2024/ │ │ │ ├── abilityScore.factory.ts │ │ │ ├── alignment.factory.ts │ │ │ ├── background.factory.ts │ │ │ ├── collection.factory.ts │ │ │ ├── common.factory.ts │ │ │ ├── condition.factory.ts │ │ │ ├── damageType.factory.ts │ │ │ ├── equipment.factory.ts │ │ │ ├── equipmentCategory.factory.ts │ │ │ ├── feat.factory.ts │ │ │ ├── language.factory.ts │ │ │ ├── magicItem.factory.ts │ │ │ ├── magicSchool.factory.ts │ │ │ ├── proficiency.factory.ts │ │ │ ├── skill.factory.ts │ │ │ ├── species.factory.ts │ │ │ ├── subclass.factory.ts │ │ │ ├── subspecies.factory.ts │ │ │ ├── trait.factory.ts │ │ │ ├── weaponMasteryProperty.factory.ts │ │ │ └── weaponProperty.factory.ts │ │ ├── integration/ │ │ │ ├── api/ │ │ │ │ ├── 2014/ │ │ │ │ │ ├── abilityScores.itest.ts │ │ │ │ │ ├── classes.itest.ts │ │ │ │ │ ├── conditions.itest.ts │ │ │ │ │ ├── damageTypes.itest.ts │ │ │ │ │ ├── equipment.itest.ts │ │ │ │ │ ├── equipmentCategories.itest.ts │ │ │ │ │ ├── feats.itest.ts │ │ │ │ │ ├── features.itest.ts │ │ │ │ │ ├── languages.itest.ts │ │ │ │ │ ├── magicItems.itest.ts │ │ │ │ │ ├── magicSchools.itest.ts │ │ │ │ │ ├── monsters.itest.ts │ │ │ │ │ ├── proficiencies.itest.ts │ │ │ │ │ ├── races.itest.ts │ │ │ │ │ ├── ruleSections.itest.ts │ │ │ │ │ ├── rules.itest.ts │ │ │ │ │ ├── skills.itest.ts │ │ │ │ │ ├── spells.itest.ts │ │ │ │ │ ├── subclasses.itest.ts │ │ │ │ │ ├── subraces.itest.ts │ │ │ │ │ ├── traits.itest.ts │ │ │ │ │ └── weaponProperties.itest.ts │ │ │ │ ├── 2024/ │ │ │ │ │ ├── abilityScores.itest.ts │ │ │ │ │ ├── alignment.itest.ts │ │ │ │ │ ├── background.itest.ts │ │ │ │ │ ├── condition.itest.ts │ │ │ │ │ ├── damageType.itest.ts │ │ │ │ │ ├── equipment.itest.ts │ │ │ │ │ ├── equipmentCategories.itest.ts │ │ │ │ │ ├── feat.itest.ts │ │ │ │ │ ├── language.itest.ts │ │ │ │ │ ├── magicItem.itest.ts │ │ │ │ │ ├── magicSchool.itest.ts │ │ │ │ │ ├── proficiency.itest.ts │ │ │ │ │ ├── skills.itest.ts │ │ │ │ │ ├── species.itest.ts │ │ │ │ │ ├── subclass.itest.ts │ │ │ │ │ ├── subspecies.itest.ts │ │ │ │ │ ├── traits.itest.ts │ │ │ │ │ ├── weaponMasteryProperty.itest.ts │ │ │ │ │ └── weaponProperty.itest.ts │ │ │ │ ├── abilityScores.itest.ts │ │ │ │ ├── classes.itest.ts │ │ │ │ ├── conditions.itest.ts │ │ │ │ ├── damageTypes.itest.ts │ │ │ │ ├── equipment.itest.ts │ │ │ │ ├── equipmentCategories.itest.ts │ │ │ │ ├── feats.itest.ts │ │ │ │ ├── features.itest.ts │ │ │ │ ├── languages.itest.ts │ │ │ │ ├── magicItems.itest.ts │ │ │ │ ├── magicSchools.itest.ts │ │ │ │ ├── monsters.itest.ts │ │ │ │ ├── proficiencies.itest.ts │ │ │ │ ├── races.itest.ts │ │ │ │ ├── ruleSections.itest.ts │ │ │ │ ├── rules.itest.ts │ │ │ │ ├── skills.itest.ts │ │ │ │ ├── spells.itest.ts │ │ │ │ ├── subclasses.itest.ts │ │ │ │ ├── subraces.itest.ts │ │ │ │ ├── traits.itest.ts │ │ │ │ └── weaponProperties.itest.ts │ │ │ └── server.itest.ts │ │ ├── support/ │ │ │ ├── db.ts │ │ │ ├── index.ts │ │ │ ├── requestHelpers.ts │ │ │ └── types.d.ts │ │ ├── util/ │ │ │ └── data.test.ts │ │ └── vitest.setup.ts │ └── util/ │ ├── RedisClient.ts │ ├── awsS3Client.ts │ ├── data.ts │ ├── environmentVariables.ts │ ├── index.ts │ ├── modelOptions.ts │ ├── prewarmCache.ts │ └── regex.ts ├── tsconfig.json ├── vitest.config.integration.ts └── vitest.config.ts