feat: import Minchiate Fiorentine 1860-1890 deck assets (98 PNGs, alpha-channel transparent bg) + naming convention v2 + pngquant optimization tooling. Public-domain 1860-1890 lithograph scans sourced from Wikimedia (single download series + trump 11 Il Gobbo individually-sourced from same era series); user removed white backgrounds in Photoshop to leave irregular card-shape with transparent canvas. Filenames v2-conformant per [[reference-card-image-naming-convention]] (revised from v1 of 2026-05-24): deck slug carries -1860-1890 publication-year suffix so future Minchiate Fiorentine variants from different publishers/eras coexist cleanly; courts use rank-number-prefix (batons-11-page not batons-page) for linear sort key; trumps carry both numeric rank AND italian-name suffix (trumps-01-papa-uno, trumps-11-il-gobbo) for forensic identification across variant decks the user plans to sell. Il Matto (unnumbered Fool in Minchiate tradition) assigned rank 00 to give it a sortable position. Five trump filenames had elided-apostrophe slugs restored from the download source (-lacqua → -l-acqua etc.). Card-back at <deck-slug>-back.png sorts alphabetically before all suit categories — no separate card-back/ subdir needed. pngquant 2.17.0 installed at C:\Users\adamc\AppData\Local\Programs\pngquant\, added to user PATH (effective next session) for future deck imports; ran with --quality=65-85 --speed=1 --strip --skip-if-larger for 57.6% size reduction (86.6 MB → 36.7 MB total, 935 KB → 383 KB avg). Second pass at --quality=40-65 hit pngquant's floor (only 0.5% further reduction — re-quantizing an already-quantized image has little headroom). Il Gobbo from Wikimedia was a dimensional outlier (1426x2366 vs siblings ~620x1024) — resized via System.Drawing HighQualityBicubic to 620x1029 before optimization. Format32bppArgb alpha channel verified intact across samples after optimization pass. Visually validated by user: cards must fill entire screen before any pixelization visible. Sprint A precursor — DeckVariant.has_card_images toggle + image-rendering template branch per [[project-image-based-deck-face-rendering]] follows in subsequent commits, will consume these assets in 6 surfaces (my_sign, my_sea, both billboard applets, room, game_kit). Asset set also unblocks downstream Sprint C+B [[project-deck-segment-model]] (admin form will require image upload + enforce naming convention) and Sprint D [[project-card-deck-icon]] (uses -back.png as the deck-stack icon's repeating card-face). Future: when Sprint B's admin form ships, wire pngquant into an optimize_card_images management command so admin uploads auto-optimize on save. Gitignore line src/apps/epic/static/apps/epic/images/cards-faces/minchiate-fiorentine/ dropped — v1 staging dir deleted (was only ever the rename-staging set; superseded by v2-named optimized set). Total disk delta: +36.7 MB binary content. No code changes — pure asset + convention import
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3
.gitignore
vendored
@@ -1,9 +1,6 @@
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/django
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=django
|
||||
|
||||
### Remove this once images renamed ###
|
||||
src/apps/epic/static/apps/epic/images/cards-faces/minchiate-fiorentine/
|
||||
|
||||
### Claude ###
|
||||
.claude
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 359 KiB |
|
After Width: | Height: | Size: 383 KiB |
|
After Width: | Height: | Size: 363 KiB |
|
After Width: | Height: | Size: 348 KiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
After Width: | Height: | Size: 412 KiB |
|
After Width: | Height: | Size: 412 KiB |
|
After Width: | Height: | Size: 428 KiB |
|
After Width: | Height: | Size: 426 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 367 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
After Width: | Height: | Size: 384 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 300 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
After Width: | Height: | Size: 372 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
After Width: | Height: | Size: 417 KiB |
|
After Width: | Height: | Size: 421 KiB |
|
After Width: | Height: | Size: 422 KiB |
|
After Width: | Height: | Size: 446 KiB |
|
After Width: | Height: | Size: 339 KiB |
|
After Width: | Height: | Size: 386 KiB |
|
After Width: | Height: | Size: 379 KiB |
|
After Width: | Height: | Size: 373 KiB |
|
After Width: | Height: | Size: 342 KiB |
|
After Width: | Height: | Size: 315 KiB |
|
After Width: | Height: | Size: 309 KiB |
|
After Width: | Height: | Size: 316 KiB |
|
After Width: | Height: | Size: 329 KiB |
|
After Width: | Height: | Size: 369 KiB |
|
After Width: | Height: | Size: 381 KiB |
|
After Width: | Height: | Size: 346 KiB |
|
After Width: | Height: | Size: 402 KiB |
|
After Width: | Height: | Size: 398 KiB |
|
After Width: | Height: | Size: 364 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
After Width: | Height: | Size: 389 KiB |
|
After Width: | Height: | Size: 374 KiB |
|
After Width: | Height: | Size: 316 KiB |
|
After Width: | Height: | Size: 342 KiB |
|
After Width: | Height: | Size: 355 KiB |
|
After Width: | Height: | Size: 365 KiB |
|
After Width: | Height: | Size: 365 KiB |
|
After Width: | Height: | Size: 374 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
After Width: | Height: | Size: 401 KiB |
|
After Width: | Height: | Size: 395 KiB |
|
After Width: | Height: | Size: 411 KiB |
|
After Width: | Height: | Size: 371 KiB |
|
After Width: | Height: | Size: 388 KiB |
|
After Width: | Height: | Size: 362 KiB |
|
After Width: | Height: | Size: 345 KiB |
|
After Width: | Height: | Size: 407 KiB |
|
After Width: | Height: | Size: 373 KiB |
|
After Width: | Height: | Size: 355 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
After Width: | Height: | Size: 370 KiB |
|
After Width: | Height: | Size: 402 KiB |
|
After Width: | Height: | Size: 363 KiB |
|
After Width: | Height: | Size: 354 KiB |
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 447 KiB |
|
After Width: | Height: | Size: 435 KiB |
|
After Width: | Height: | Size: 447 KiB |
|
After Width: | Height: | Size: 409 KiB |
|
After Width: | Height: | Size: 418 KiB |
|
After Width: | Height: | Size: 424 KiB |
|
After Width: | Height: | Size: 432 KiB |
|
After Width: | Height: | Size: 402 KiB |
|
After Width: | Height: | Size: 398 KiB |
|
After Width: | Height: | Size: 382 KiB |
|
After Width: | Height: | Size: 382 KiB |
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 422 KiB |
|
After Width: | Height: | Size: 395 KiB |
|
After Width: | Height: | Size: 387 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
After Width: | Height: | Size: 358 KiB |
|
After Width: | Height: | Size: 386 KiB |
|
After Width: | Height: | Size: 401 KiB |
|
After Width: | Height: | Size: 390 KiB |
|
After Width: | Height: | Size: 388 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
After Width: | Height: | Size: 372 KiB |
|
After Width: | Height: | Size: 383 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
After Width: | Height: | Size: 396 KiB |
|
After Width: | Height: | Size: 364 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 392 KiB |
|
After Width: | Height: | Size: 399 KiB |