@sechael/pta-data
v0.5.5
Published
PTA catalog JSON datasets (Pokémon, moves, items, weapons, afflictions, type chart, mega variants, trainer pools). Gigantamax slice ships separately.
Readme
@sechael/pta-data
Canonical PTA catalog JSON for the pta-app compendium: Pokémon, moves, items, weapons, afflictions, type chart, mega variants, and trainer move pools. Gigantamax / Dynamax datasets live under lib/gmax/ in git only (not published on npm until a separate package ships).
| | |
|--|--|
| npm | @sechael/pta-data |
| Source | github.com/Sechael/pta-data |
Layout (lib/ + schemas/)
| File | Purpose |
|------|----------------|
| pokemon.json | Species / forms |
| moves.json | Moves (mechanics bundle; see schemas/moveschema.json) |
| items/*.json | Split item catalogs by category (mechanics + conditions) |
| weapons.json | Trainer weapons |
| afflictions.json | Affliction rules |
| type-chart.json | Type effectiveness |
| trainer-class-move-pools.json | Object | Class move pools (e.g. Martial Form) |
| pokemon-mega.json | Mega forms |
| gmax/*.json | Gigantamax Pokémon, G-Max moves, related items — not in the npm tarball (see .npmignore) |
| Path (schemas/) | Purpose |
|---------------------|---------|
| itemschema.json | JSON Schema for forward-looking item rows + mechanics |
| moveschema.json | JSON Schema for moves.json entries |
| Downtime.md | Source notes for downtime job income bands used in economy balancing |
| Economic Baseline.md | Working affordability baseline that compares item prices to downtime income |
Data samples
Pokémon (lib/pokemon.json)
{
"id": "bulbasaur",
"base_species_id": "bulbasaur",
"form_name": "default",
"variant_name": "default",
"type_1": "grass",
"type_2": "poison",
"egg_group": "['grass', 'monster']",
"hatch_time": 10,
"is_temporary": false,
"gmax_move": null,
"hp": 30.0,
"atk": 5.0,
"def": 4.0,
"spec_atk": 7.0,
"spec_def": 7.0,
"speed": 5.0,
"evolution_stage": 1.0,
"evolves_from": null,
"skills": "['sprouter', 'threaded']",
"passives": "['growl', 'overgrow']",
"proficiencies": "['grass', 'poison', 'floral']",
"inherent_moves": ["tackle", "leech-seed", "vine-whip"],
"habitats": "['forest', 'jungle']",
"diets": "['phototroph']",
"national_dex_number": 1.0,
"name": "Bulbasaur",
"description": "…",
"sprite": "sprites/pokemon/1.png",
"evolves_to": ["ivysaur"],
"evolves_next_naturally": true,
"generation": 1,
"rarity": "Rare",
"size_class": "Small",
"weight_class": "Light"
}Item (lib/items/medical.json)
{
"type": "item",
"id": "potion",
"category": "Medical",
"rarity": "Common",
"price": 25,
"is_consumable": true,
"conditions": ["POKEMON", "CONSCIOUS"],
"mechanics": [
{ "type": "HEAL", "target": "SELECTED", "value": 10, "resource": "HP" }
],
"sprite_url": "https://…",
"description": "Spray-type medicine that heals 10 HP for a Pokémon.",
"name": "Potion",
"sprite": "items/potion.png",
"size": "1x1"
}Item mechanics schema outline
Items are now mechanics-first (see schemas/itemschema.json and lib/items/*.json).
{
"id": "wiki-berry",
"name": "Wiki Berry",
"description": "…",
"category": "Berry",
"rarity": "Uncommon",
"price": 850,
"is_consumable": true,
"size": "1x1",
"sprite": "items/wiki-berry.png",
"sprite_url": "https://…",
"flavors": ["Dry"],
"mechanics": [
{ "type": "HEAL", "target": "SELECTED", "value": "33%", "resource": "HP" },
{
"type": "CONDITION",
"target": "SELECTED",
"value": "CURE",
"resource": "CONFUSION",
"params": { "exception": "POKEMON_TASTE_LIKE_FLAVORS" }
}
],
"container": {
"capacity": 12,
"unit": "BALL",
"allowed": { "categories": ["Pokeball"] }
}
}Move (lib/moves.json)
{
"type": "move",
"id": "absorb",
"name": "Absorb",
"move_type": "Grass",
"category": "Special",
"description": "On hit, you regain HP equal to half of the damage dealt.",
"proficency": ["Grass", "Parasitic"],
"contest": { "stat": "Clever", "keyword": "Good Show!" },
"mechanics": {
"frequency": 3,
"accuracy": 0,
"attack_type": "melee",
"target": "Single",
"target_range": 0,
"effect_radius": 0,
"move_keyword": null,
"effects": [
{
"type": "DAMAGE",
"target": "FOE",
"value": "2d8",
"resource": "HP",
"damage": { "kind": "Dice", "value": "2d8" }
},
{
"type": "HEAL",
"target": "SELF",
"value": "half_damage_dealt",
"resource": "HP",
"damage": { "kind": "None", "value": "" }
}
]
}
}Version history
0.5.5
- Weapons readability update (
lib/weapons.json): Reworked weapon descriptions to include the full combat profile inline (move type/category, attack type + target + range, damage dice, accuracy, and frequency) for faster lookup during play. - Firearm ammo normalization (
lib/weapons.json): Adjustedammo_maxvalues to more realistic capacities for equivalent real-world weapon classes and synchronized matchingspecial/description text (Pistol,Hunting Rifle,Assault Rifle,Taser,Machine Gun). - Move mechanics correction (
lib/moves.json): Replaced the previous placeholder move effect block with explicitHEALand targetedRESTORE_USESmechanics (includingmove_ids) for catalog-driven execution consistency.
0.5.4
- Berry coverage: Added
Haban,Kasib,Kebia,Occa,Passho, andPayapaberries tolib/items/berry.jsonas uncommon type-resist entries. - Supplies and equipment economy: Rebalanced Pokémon Food and Trainer Ration price points in
lib/items/supplies.json, updated theRebreatherdescription, and added vehicle catalog rows inlib/items/trainer-equipment.json. - Economy docs: Added
schemas/Downtime.mdandschemas/Economic Baseline.mdto capture downtime income assumptions and a first-pass affordability baseline for the item catalog.
0.5.3
- Campaign data fix: Corrected catalog rows tied to Rest-move campaign data in
lib/moves.jsonand aligned related species entries inlib/pokemon.json. - Validation hardening: Expanded
scripts/validate.mjschecks to guard the affected move/pokemon data shape and catch similar regressions earlier.
0.5.2
- Trainer equipment (
lib/items/trainer-equipment.json): Camera bag is a container (one camera body,ITEMunit) allow-listed to digital/film camera catalog ids; added camera tier items; expanded outdoor/camp tooling (tent, folding knife, crowbar, duct tape, flashlight, flask, gas mask, grappling hook, claw and sledge hammer); added Gardener's Kit (₽350). - Medical (
lib/items/medical.json): Added Revival Herb (full heal for fainted Pokémon, consumed on use; loyalty rule in description text).
0.5.1
- Monolithic items file removed from the repo:
lib/items.jsonis deleted; consumers use split bundles underlib/items/*.jsononly (this completes the change described for 0.5.0 in documentation). - Validation:
scripts/validate.mjsnow checks everylib/items/*.jsonfile instead of a singlelib/items.json(addresses the 0.5.0 “Open” follow-up). - Items data:
pokeball-containerincludes structuredcontainermetadata (12 units,BALL, Pokeball category) perschemas/itemschema.json.lib/items/medical.json— Hyper Lemonade sprite URL fix, rarity pass (Iron, Max Potion, Revive, Super Potion).lib/items/supplies.json—pokemon-foodandpokemon-food-bagprices aligned to current app/economy defaults.
0.5.0
- Items split finalized: Documented removal of legacy
lib/items.jsonin favor of splitlib/items/*.jsonas the item source; package exports already targeted split paths. - Medical tuning pass: Updated selected
lib/items/medical.jsonentries (including rarity alignment and sprite URL correction) to match current mechanics-first usage in the app. - Docs refresh: README examples and item model notes now describe the active mechanics-first structure (
HEAL/CONDITION/STAT_MOD) and split catalog layout.
0.4.0
- Moves (
lib/moves.json): optional tacticalmove_keywordon eachmechanicsblock (Binding,Coat,Hazard,Multi-turn,Priority,Reaction,Scatter,Terrain,Weather, ornull), placed beforeeffects; validated byschemas/moveschema.json. Tagging maintained byscripts/augment_move_keywords.py. - Schemas: JSON Schemas live under
schemas/(itemschema.json,moveschema.json); removed duplicatelib/itemschema.json. Published tarball includesschemas/; exports expose./schemas/itemschema.jsonand./schemas/moveschema.json. - Tooling:
scripts/migrate_moves_catalog_to_v2.pydocuments the legacy → mechanics-bundle migration path. - npm:
0.4.0is published as@sechael/pta-data. In consuming apps, runnpm installsopackage-lock.jsonpins0.4.0and the registryintegrityhash.
0.3.0
- Pokémon (
lib/pokemon.json): catalog row shape updates (e.g. nestedsprites.default/sprites.shinywith local paths and PokéAPIsprite_urlvalues), stat/evolution/id field alignment. - Moves (
lib/moves.json): migrated to the mechanics bundle shape (mechanics.frequency,accuracy, ranges,effects[]); validated byschemas/moveschema.json. - Items: mechanics / schema alignment across
lib/items/*.jsonandschemas/itemschema.json. - Publishing:
lib/pokemon-gmax.jsonremoved from the published package; Gigantamax datasets live underlib/gmax/in git and are omitted from the npm tarball (.npmignore).package.jsonexports include./lib/items/*and no longer export the removed gmax JSON entry. - Other catalogs: updates to
afflictions.json,type-chart.json,weapons.json, andtrainer-class-move-pools.jsonwhere the app expects newer shapes. - Tooling: maintenance scripts under
scripts/(including Pokémon catalog migration andwire_pokemon_json_sprites.py) andvalidate.mjsadjustments.
0.2.0
- Added
lib/items/per-category items split (staged migration away from monolithicitems.json). - Added item JSON Schema (
schemas/itemschema.json) and began migrating item rows to amechanics[]model (targets, affects, uses, and container metadata). - Open todo: Check Berries, trainer-equipment Held-items, evolution items, key-items for consistencies (Medical, Pokeball, supplies, tm are valid).
