Appearance
Règles de jeu et formats
Cette section décrit les règles de construction de deck et les formats de tournoi des TCG que Snag couvre pour le jeu : Pokémon (JCC) et One Piece Card Game. Elle sert de référence au futur validateur de decks et au recommandeur (plateforme v2, volet jeu, tâche T38). Elle ne décrit pas de code applicatif.
État au 7 novembre 2026. Chaque règle cite sa source officielle et la date de consultation. Une information qui n'a pas pu être vérifiée sur une source officielle est marquée « à confirmer » ; elle ne doit pas être codée comme une certitude. La relecture par un expert de chaque TCG est la condition d'acceptation de cette section.
Pourquoi une section à part
Les règles de gestion décrivent les objets de collection : impressions, numéros, séries, produits scellés. Le jeu raisonne autrement : un deck contient des cartes de jeu, et le joueur choisit ensuite l'impression qu'il pose sur la table. Une même carte de jeu peut exister en dix impressions (langues, rééditions, versions alternatives, promos) ; à l'inverse, deux impressions de même nom peuvent être deux cartes de jeu différentes.
La carte de jeu (identité fonctionnelle)
Définition proposée. Une carte de jeu est l'ensemble des impressions qu'un règlement officiel traite comme la même carte pour construire un deck et jouer. Elle porte le texte de jeu de référence et les attributs dont le validateur a besoin. Une impression est une ligne du catalogue (langue, série, numéro, variante visuelle) ; elle appartient à exactement une carte de jeu.
Deux notions ne coïncident pas et doivent rester séparées dans les données :
| Notion | Sert à | Pokémon | One Piece |
|---|---|---|---|
| Clé de limite de copies | compter les exemplaires dans un deck | le nom de la carte, défini par sa traduction anglaise | le numéro de carte |
| Carte de jeu | regrouper les impressions interchangeables, porter le texte et la légalité | même nom et texte fonctionnellement identique | même numéro de carte |
Pour Pokémon, plusieurs cartes de jeu peuvent partager un même nom (deux « Pikachu » aux attaques différentes) : elles sont distinctes pour la légalité et le texte, mais comptent ensemble dans la limite de 4 copies. Le validateur compte donc par nom, et vérifie la légalité par carte de jeu.
Règles d'identité proposées (à valider par les experts, cas limites dans les questions ouvertes) :
- Pokémon : deux impressions sont la même carte de jeu si elles ont le même nom (traduction anglaise) et un texte « fonctionnellement identique » au sens du règlement de tournoi (§4.1.3 du TCG Tournament Handbook : une formulation différente au même effet reste identique ; « 1 marqueur de dégâts » et « 10 dégâts » ne le sont pas). Les impressions de langues différentes d'un même numéro sont la même carte de jeu.
- One Piece : deux impressions sont la même carte de jeu si elles portent le même numéro de carte (
OP09-001), quelles que soient la langue, la version (_p1,_r1…) et le produit de distribution. C'est déjà la règle de la console (identity_id: onepiece:OP09-001). Une nouvelle carte au texte différent reçoit un nouveau numéro (exemple : le Leader de remplacement P-163 de Dracule Mihawk, voir la page One Piece). - Errata : le texte de jeu de référence est le texte après errata officiel, pas celui imprimé ; l'impression garde son texte imprimé pour l'affichage.
Comment ces règles seront encodées
Principe du volet jeu : les règles sont des données versionnées, le moteur est du code par TCG.
- Données versionnées (base applicative, migration réservée
0077, éditables depuis la console, avec date d'effet) :game_formats(tcg, code, label, rules, valid_from, valid_to, status): un format à une période donnée.rules(jsonb) porte les paramètres déclaratifs : taille du deck, limite de copies, marques de régulation ou blocs autorisés, langues admises, limites par drapeau (ACE SPEC : 1 par deck…).format_card_rules(format_code, game_card_id, status, max_copies, valid_from, valid_to): bannie, restreinte ou limitée, par carte de jeu et par période.- Ajout proposé : les paires interdites de One Piece (deux cartes qui ne peuvent pas être dans le même deck) n'entrent pas dans
format_card_rules. Proposition : une tableformat_card_pair_rules(format_code, game_card_a, game_card_b, valid_from, valid_to)ou une entréebanned_pairsdansgame_formats.rules. À trancher en T40. - Chaque ligne garde sa source (URL officielle) et sa date de consultation, comme dans ces pages.
- Moteur par TCG (
decks/rules/pokemon.ts,decks/rules/onepiece.ts, tâche T40) : ce qui ne se réduit pas à un paramètre. Pokémon : regroupement par nom, exception des Énergies de base, comptage des drapeaux (ACE SPEC total, Radieux total, Prisme Étoile par nom), présence d'un Pokémon de base. One Piece : Leader unique, couleurs du Leader, paires interdites, effets de cartes qui modifient la construction. - Données de carte (gold
game_cards,game_card_printings, tâche T39) : les attributs listés dans chaque page TCG. Le validateur ne lit jamais une impression directement. - Sortie : liste d'erreurs structurées (
code,game_card_id, message fr/en). Chaque règle de ces pages devient au moins un code d'erreur et un cas de test (acceptation T40).
Toute mise à jour (nouvelle liste de bannissement, rotation) se fait en ajoutant des lignes datées, jamais en réécrivant une ligne passée : un deck doit pouvoir être revalidé « à la date d'un tournoi ».
Formats proposés pour la V1
Proposition du volet jeu, à confirmer par les experts : Pokémon Standard et Étendu, One Piece Standard. L'Illimité Pokémon et l'Extra Regulation One Piece seraient des ajouts simples une fois le moteur en place.