mantimon-tcg/backend/data/raw/a1a/036-flabebe.json
Cal Corum 934aa4c443 Add CardService and card data conversion pipeline
- Rename data/cards/ to data/raw/ for scraped data
- Add data/definitions/ as authoritative card data source
- Add convert_cards.py script to transform raw -> definitions
- Generate 378 card definitions (344 Pokemon, 24 Trainers, 10 Energy)
- Add CardService for loading and querying card definitions
  - In-memory indexes for fast lookups by type, set, pokemon_type
  - search() with multiple filter criteria
  - get_all_cards() for GameEngine integration
- Add SetInfo model for set metadata
- Update Attack model with damage_display field for variable damage
- Update CardDefinition with image_path, illustrator, flavor_text
- Add 45 tests (21 converter + 24 CardService)
- Update scraper output path to data/raw/

Card data is JSON-authoritative (no database) to support offline fork goal.
2026-01-27 14:16:40 -06:00

38 lines
909 B
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"id": "a1a-036-flabebe",
"name": "Flabébé",
"set_code": "a1a",
"set_name": "Mythical Island",
"card_number": 36,
"rarity": "Common",
"card_type": "pokemon",
"image_url": "https://assets.pokemon-zone.com/game-assets/CardPreviews/cPK_10_002510_00_FLABEBE_C.webp",
"image_file": null,
"source_url": "https://www.pokemon-zone.com/cards/a1a/36/flabebe/",
"hp": 40,
"pokemon_type": "psychic",
"stage": "basic",
"evolves_from": null,
"is_ex": false,
"abilities": [],
"attacks": [
{
"name": "Hypnotic Gaze",
"cost": [
"psychic"
],
"damage": null,
"damage_modifier": null,
"effect_text": "Your opponents Active Pokémon is now Asleep.",
"effect_id": null
}
],
"weakness": {
"type": "metal",
"value": 20
},
"resistance": null,
"retreat_cost": 1,
"flavor_text": null,
"illustrator": "Cona Nitanda"
}