mantimon-tcg/backend/app/core
Cal Corum cbc1da3c03 Add visibility filter for client-safe game state views
SECURITY: Implement hidden information filtering to prevent cheating.

- Create VisibleGameState, VisiblePlayerState, VisibleZone models
- get_visible_state(game, player_id): filtered view for a player
- get_spectator_state(game): filtered view for spectators

Hidden Information (NEVER exposed):
  - Opponent's hand contents (count only)
  - All deck contents and order
  - All prize card contents
  - Energy deck order

Public Information (always visible):
  - Active and benched Pokemon (full details)
  - Discard piles (full contents)
  - Energy zone (available energy)
  - Scores, turn info, phase
  - Stadium in play

- 44 security-critical tests verifying no information leakage
- Tests check JSON serialization for hidden card ID leaks
- Also adds test for configurable burn damage

Completes HIGH-008 and TEST-012 from PROJECT_PLAN.json
Updates security checklist: 4/5 items now verified
2026-01-25 13:11:06 -06:00
..
effects Add effects system with configurable weakness/resistance 2026-01-25 00:25:38 -06:00
models Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00
__init__.py Add game engine foundation: enums, config, and RNG modules 2026-01-24 22:14:45 -06:00
config.py Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00
rng.py Add game engine foundation: enums, config, and RNG modules 2026-01-24 22:14:45 -06:00
rules_validator.py Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00
turn_manager.py Add turn manager with phase state machine and between-turn effects 2026-01-25 13:02:56 -06:00
visibility.py Add visibility filter for client-safe game state views 2026-01-25 13:11:06 -06:00
win_conditions.py Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00