feat(preview): sampling, metrics, governance, server mana data

Preview endpoint + fast caches; curated pins + role quotas + rarity/overlap tuning; catalog+preview metrics; governance enforcement flags; server mana/color identity fields; docs/tests/scripts updated.
This commit is contained in:
matt 2025-09-23 09:19:23 -07:00
parent 8f47dfbb81
commit c4a7fc48ea
40 changed files with 6092 additions and 17312 deletions

View file

@ -0,0 +1,30 @@
from __future__ import annotations
from typing import List, Optional
from pydantic import BaseModel, Field
class ThemeSummary(BaseModel):
id: str
theme: str
primary_color: Optional[str] = None
secondary_color: Optional[str] = None
popularity_bucket: Optional[str] = None
deck_archetype: Optional[str] = None
description: Optional[str] = None
synergies: List[str] = Field(default_factory=list)
synergy_count: int = 0
# Diagnostics-only fields (gated by flag)
has_fallback_description: Optional[bool] = None
editorial_quality: Optional[str] = None
class ThemeDetail(ThemeSummary):
curated_synergies: List[str] = Field(default_factory=list)
enforced_synergies: List[str] = Field(default_factory=list)
inferred_synergies: List[str] = Field(default_factory=list)
example_commanders: List[str] = Field(default_factory=list)
example_cards: List[str] = Field(default_factory=list)
synergy_commanders: List[str] = Field(default_factory=list)
# Diagnostics-only optional uncapped list
uncapped_synergies: Optional[List[str]] = None