> For the complete documentation index, see [llms.txt](https://docs.pokeb.ag/data-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pokeb.ag/data-sdk/undefined.md).

# Introduction

[![](https://img.shields.io/npm/v/@pokebag/data-sdk.svg?style=flat-square)](https://npmjs.com/package/@pokebag/data-sdk) [![](https://img.shields.io/npm/l/@pokebag/data-sdk.svg?style=flat-square)](https://github.com/Pokebag/data-sdk/tree/17a41de8a20235a0b47bf00ea15da5e8e8c6b0c9/LICENSE/README.md) [![](https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square)](/data-sdk/other-important-stuff/code_of_conduct.md) [![](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/Pokebag/data-sdk/tree/17a41de8a20235a0b47bf00ea15da5e8e8c6b0c9/CONTRIBUTING.md) &#x20;

[![](https://img.shields.io/github/workflow/status/Pokebag/data-sdk/Release?style=flat-square\&label=release)](https://github.com/pokebag/data-sdk/actions/workflows/release.yml) [![](https://img.shields.io/github/workflow/status/Pokebag/data-sdk/Test?style=flat-square\&label=tests)](https://github.com/pokebag/data-sdk/actions/workflows/test.yml) [![](https://img.shields.io/coveralls/Pokebag/data-sdk.svg?style=flat-square)](https://coveralls.io/github/Pokebag/data-sdk) [![](https://img.shields.io/david/Pokebag/data-sdk?style=flat-square)](https://david-dm.org/Pokebag/data-sdk) [![](https://img.shields.io/codeclimate/maintainability/Pokebag/data-sdk.svg?style=flat-square)](https://codeclimate.com/github/Pokebag/data-sdk)

[![](https://img.shields.io/github/watchers/Pokebag/data-sdk.svg?style=social)](https://github.com/Pokebag/data-sdk/watchers) [![](https://img.shields.io/github/stars/Pokebag/data-sdk.svg?style=social)](https://github.com/Pokebag/data-sdk/stargazers) [![](https://img.shields.io/twitter/url/https/github.com/Pokebag/data-sdk.svg?style=social)](https://twitter.com/intent/tweet?text=Check%20out%20@pokebag/data-sdk%20by%20%40PokebagApp%20https%3A%2F%2Fgithub.com%2FPokebag%2Fdata-sdk%20%F0%9F%91%8D)

## Why Does the Dataset Need Its Own SDK?

This data SDK exists to make it easy to work with [Pokébag](https://pokeb.ag)'s Pokémon UNITE dataset ([`@pokebag/pokemon-unite-data`](https://github.com/pokebag/pokemon-unite-data)). The dataset is built with the expectation that the data will undergo *cumulative transclusion* before being used.

### WTF is Cumulative Transclusion?

Cumulative transclusion is a process wherein a complete dataset is compiled by applying ordered patches to a base dataset. This means that, other than the base dataset in `@pokebag/pokemon-unite-data`, no part of the dataset is complete. Rather, all patches beyond the base dataset include only the changes that were made in that patch.

As a contrived example:

* The base dataset contains a data file with a complete view of Charizard.

  ```javascript
    {
      "displayName": "Charizard",
      "stats": {
        "attack": 15,
        "defense": 20
      },
    }
  ```
* In the base dataset, Charizard's attack is 15.
* In patch 1.1.1.8, Charizard's attack is increased to 20.
* For patches 1.1.1.1 through 1.1.1.7, there will be no data for Charizard.
* In patch 1.1.1.8, there will be a file for Charizard. The only data in the file will be empty, except for the upgrade to Charizard's attack.

  ```javascript
    {
      "stats": {
        "attack": 15
      },
    }
  ```

This expectation of cumulative transclusion makes it impossible to just retrieve the files for a single patch. Instead, the base dataset must be compiled, then **all** of the patch files must applied to the base dataset to get a complete view of the dataset for a specific patch.

## What's Pokébag?

[Pokébag](https://pokeb.ag) is a website for Pokémon fans! We're currently focused on providing really great content for Pokémon UNITE players, but we'll eventually expand to cover far more Pokémon games. Check it out at <https://pokeb.ag>.

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

| <p><a href="http://trezy.com/"><img src="https://avatars.githubusercontent.com/u/442980?v=4?s=100" alt=""><br><strong>Trezy</strong></a><br><a href="https://github.com/Pokebag/pokemon-unite-data/commits?author=trezy">💻</a> <a href="/data-sdk/undefined.md#data-trezy">🔣</a></p> |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
