DEV Community

Pokedex Oracle
Pokedex Oracle

Posted on

Designing Pokemon evolution-route data that does not lose the trigger

Evolution data is easy to oversimplify.

If a note only says:

Eevee evolves into Vaporeon.
Enter fullscreen mode Exit fullscreen mode

it is missing the most useful part of the fact: the route.

For apps, guides, AI tools, and collection notes, the trigger matters as much as the target species.

I keep the public evolution workflow here:

This is part of the same DEV series as
the auditable Pokemon reference-stack note.
The companion type-modeling note is here:
Modeling Pokemon type matchups without hard-coding chart mistakes.

Eevee official artwork

The route is the data

The evolved species is only one field.

The route can include:

  • level
  • item or stone
  • trade
  • trade plus held item
  • friendship
  • time of day
  • known move
  • location
  • gender
  • regional form
  • game or generation context

When those are flattened into a sentence, the note becomes harder to test and easier to misquote.

A simple route object

For most evolution notes, I want a shape like this:

{
  "baseSpecies": "eevee",
  "targetSpecies": "vaporeon",
  "method": "item",
  "item": "water-stone",
  "context": {
    "routeFamily": "branching",
    "notes": "One of several Eevee item or condition routes."
  },
  "reference": "https://pokedexoracle.neocities.org/eevee-evolutions"
}
Enter fullscreen mode Exit fullscreen mode

This lets a UI or article explain both the result and the condition.

Why branching families need special care

Eevee is a good stress test because one base species can lead to many outcomes.

That makes a few bad content patterns obvious:

  • storing only one "evolves_to" value
  • treating every route as a level route
  • dropping the item name
  • ignoring type changes after evolution
  • failing to distinguish a family page from an individual species page

The Eevee evolution notes are designed as a small example of how to keep those branches readable.

Evolution data connects to type data

Evolution is not isolated.

When a species evolves, type context can change, collection context can change, and TCG notes may need to point at a different species page.

That is why evolution notes should link sideways to type notes when relevant:

Pokemon type matchup notes

A good route note can answer:

  • what is the base species?
  • what is the target species?
  • what triggers the change?
  • does type context change?
  • where can the reader verify the route?

Reference

For the canonical Pokemon reference layer, use Pokedex.me.

The goal of the local evolution cluster is not to be exhaustive. It is to keep the structure of evolution facts visible enough that a developer or writer can reuse them without guessing.

Top comments (0)