Files
Ferrous-Solitaire/CREDITS.md
T
funman300 b98cb8a99f feat(assets): swap card art to hayeah/playing-cards-assets (MIT)
Replaces the previous xCards-derived card faces (LGPL-3.0) with
hayeah/playing-cards-assets, which itself derives from the
public-domain vector-playing-cards Google Code project. The whole
package is MIT now — see CREDITS.md for the new attribution table
and the simpler license summary.

solitaire_engine/assets/themes/default/
  52 face SVGs (clubs/diamonds/hearts/spades × ace/2-10/jack/queen/
  king) — copied from hayeah, renamed to the canonical
  `{suit}_{rank}.svg` form `CardKey::manifest_name` produces. The
  bundled default theme manifest references each by the same name.
  back.svg — original midnight-purple-themed card back, hand-written
  to match the project's design tokens (BG_BASE / BG_ELEVATED /
  ACCENT_PRIMARY / ACCENT_SECONDARY). MIT, original work.

assets/cards/faces/{RANK}{SUIT}.png
  52 PNGs regenerated from the new SVGs at 750-tall via resvg 0.47.
  These remain the legacy backwards-compat path that
  `card_plugin::load_card_images` reads at startup; once the runtime
  theme system finishes loading the embedded default theme, the
  CardImageSet's face handles are overwritten with the SVG-rendered
  variants and these PNGs become moot. Keeping them in place avoids
  a brief blank-card flash before the async theme load completes.

solitaire_engine/src/assets/sources.rs
  embed_default_svg!() macro + DEFAULT_THEME_SVGS table that bundles
  every face + the back into the binary at compile time via
  include_bytes!. populate_embedded_default_theme now iterates the
  table so the EmbeddedAssetRegistry is populated under the same
  asset paths the manifest references.

CREDITS.md
  License summary collapses from MIT + LGPL-3.0 + OFL-1.1 to MIT +
  OFL-1.1 (the OFL still applies to FiraMono). The hayeah upstream
  URL replaces the previously-blank xCards entry.

cargo build / clippy --workspace --all-targets -- -D warnings / test
--workspace all green (960 passed, 0 failed, 9 ignored).
2026-05-01 16:06:58 +00:00

5.9 KiB
Raw Blame History

Credits

Solitaire Quest is MIT-licensed (see LICENSE). It is built on top of the work of many open-source projects and a small handful of third-party assets. This file lists every component that ships in the binary or in the assets/ directory.


Code & Framework

Component License Role
Bevy 0.18 MIT OR Apache-2.0 Game engine, ECS, rendering, UI
kira 0.12 MIT OR Apache-2.0 Audio playback (mixer, sub-tracks, looping ambient)
serde / serde_json MIT OR Apache-2.0 Serialization for save files and the sync API
tokio MIT Async runtime for the sync client and server
axum 0.8 MIT HTTP framework for the self-hosted sync server
sqlx 0.8 MIT OR Apache-2.0 Compile-time-checked SQLite access on the server
reqwest 0.13 MIT OR Apache-2.0 HTTP client for the sync provider
jsonwebtoken 10 MIT JWT issuance and validation
bcrypt 0.19 MIT Password hashing on the server
keyring 4 MIT OR Apache-2.0 OS keychain integration for credential storage
tower-governor 0.8 MIT Rate limiting on /api/auth/*
chrono MIT OR Apache-2.0 Date / time handling
uuid MIT OR Apache-2.0 User and session identifiers
thiserror MIT OR Apache-2.0 Error type derive
rand 0.9 MIT OR Apache-2.0 Seeded shuffler in solitaire_core
png 0.17 MIT OR Apache-2.0 PNG encoder used by solitaire_assetgen
ab_glyph 0.2 Apache-2.0 Glyph rasterization for generated card art

The full transitive dependency tree (several hundred crates) is captured in Cargo.lock and reachable via cargo tree. Every crate brought in is MIT, Apache-2.0, BSD-style, or a dual-licensed combination thereof — no copyleft code is statically linked into the game binary.


Assets

Card artwork

File(s) Source License
solitaire_engine/assets/themes/default/{suit}_{rank}.svg (52 SVGs) hayeah/playing-cards-assets MIT
solitaire_engine/assets/themes/default/back.svg Original — Solitaire Quest MIT (this project)
assets/cards/faces/{RANK}{SUIT}.png (52 PNGs) Pre-rendered from the same playing-cards-assets SVGs MIT (passed through from hayeah)
assets/cards/backs/back_0.png back_4.png Original — generated by solitaire_assetgen::gen_art MIT (this project)

The face SVGs come from Howard Yeh's playing-cards-assets repository, which is itself derived from the public-domain vector-playing-cards Google Code project. The art is redistributed under the MIT license — see the upstream repository for the full notice. The files ship unmodified in the bundled default theme; user-supplied themes can override them per-installation through the runtime SVG theming system documented in CARD_PLAN.md.

The default card back is original work by this project, midnight-purple themed to match the rest of the UI palette.

Backgrounds

File(s) Source License
assets/backgrounds/bg_0.png bg_4.png Original — generated by solitaire_assetgen::gen_art MIT (this project)

Typography

File Source License
assets/fonts/main.ttf (FiraMono-Medium) mozilla/Fira SIL Open Font License 1.1

The OFL permits redistribution and embedding in software so long as the font file itself is not sold standalone. The file ships unmodified.

Audio

All six WAV files in assets/audio/ are original work — there are no third-party audio samples in this project. They are synthesized programmatically by solitaire_assetgen/src/bin/gen_sfx.rs, which writes 44.1 kHz mono 16-bit PCM WAVs using a hand-rolled WAV writer (no hound or dasp dependency). The synthesis stack is entirely additive: sine / square waves, layered harmonics, deterministic LCG noise, AR envelopes, and a slow LFO for the ambient track.

File Synthesis approach
card_deal.wav Filtered LCG noise with a sweeping low-pass cutoff for a "whoosh"
card_flip.wav High-passed LCG noise under a fast AR envelope
card_place.wav 120 Hz sine body + filtered noise click
card_invalid.wav Two dissonant square tones (196 Hz + 207.65 Hz) beating against each other
win_fanfare.wav C-major arpeggio (C5 / E5 / G5 / C6) with sine + 2nd harmonic
ambient_loop.wav 55 Hz fundamental with 2nd and 3rd harmonics, modulated by a 0.2 Hz LFO; loop length is chosen so the tone and LFO both complete an integer number of cycles for seamless looping

Audio files are MIT-licensed alongside the rest of this project.


License Summary

  • Project code: MIT — see LICENSE.
  • Card face artwork (52 SVGs from hayeah/playing-cards-assets, plus the pre-rendered PNGs in assets/cards/faces/): MIT, redistributed unmodified. The original vector-playing-cards line art is itself public domain.
  • FiraMono-Medium font: SIL Open Font License 1.1, redistributed unmodified.
  • All other assets (backgrounds, the default back.svg, generated card backs, every audio file) are original work covered by this project's MIT license.

If you redistribute Solitaire Quest, you must ship this CREDITS.md and the LICENSE file alongside the binary so the LGPL and OFL notices remain visible to end users.