Unlucky-Launcher (ULL)
Copyright 2026 AskaEth (YeiJ)

本产品采用 Apache License 2.0（见 LICENSE）。

--------------------------------------------------------------------------
第三方组件声明
--------------------------------------------------------------------------

1. Slint（https://slint.dev）——**历史源码，不随任何产物分发**

   本产品**当前发布的 GUI 框架是 iced**（见第 3 节），二进制里不含任何 Slint 代码。
   仓库里仍保留 Slint 版 GUI 的源码（`crates/app`），仅作历史参考：它已被 cargo workspace
   `exclude`，不参与构建、测试与发布，也不会进入本项目的任何 Release 资产。

   因此 Slint Royalty-Free 2.0（LicenseRef-Slint-Royalty-free-2.0）**对当前产物不适用**；它适用的是
   此前已发布、且确实链接了 Slint 的 `v0.1.0` 构建——义务挂在每一次「随应用分发」上，而不是挂在某个
   版本号上。上游许可 §2 给出两种形式：(a) 在可从顶层菜单进入的「关于」页/对话框里显示官方
   `AboutSlint` 部件（没有该页时改为启动画面）；(b) 在可下载该二进制的公开网页上显示官方归属徽章。
   **`v0.1.0` 的设置页「关于」分组里内置了 `AboutSlint` 部件**（`crates/app/ui/pages/settings.slint`，
   从侧栏进入）；该部件是否满足 §2(a) 的全部条件、以及 `v0.1.0` 发布页上那是文字链接而不是 §2(b) 点名的
   官方徽章图这两点，**本文件不作法律判断**，具体以 Slint 官方许可原文为准。`v0.1.0` 的 NOTICE、发布页
   说明与本文件这一节**都只是记录，不构成履行声明**。后续版本不再链接 Slint，该义务不随新产物新增；
   本文件保留这一节，是为了不让这段历史丢失，而不是声明本产品依赖 Slint。

   若将来重新把 `crates/app` 纳入构建并发布链接 Slint 的二进制，该义务随之恢复——届时需同时恢复
   AboutSlint 部件/徽章与本节的现行声明。Slint 的其余许可分支（GPL-3.0-only / Slint Software
   License 3.0）本项目始终不适用。

2. Google Material Color Utilities（https://github.com/material-foundation/material-color-utilities）

   本产品的色彩令牌（crates/design 的 color 模块）是 Material 3 色彩算法（HCT 色彩空间 +
   ColorSpec2021 调色板/角色映射）的 **Rust 重写移植**，依据 Apache License 2.0 使用，未把其任何语言的源码作为依赖
   引入；除下面注明的那张生成常数表外，也没有复制其代码文件。

   实际移植的部分（均为纯算法，逐函数对照后以 Rust 重写）：

   - `hct/Cam16.java`、`hct/ViewingConditions.java`、`hct/Hct.java` → `crates/design/src/color/cam16.rs`、
     `viewing_conditions.rs`、`hct.rs`（CAM16 色相/彩度 + CIELAB `L*` 亮度）
   - `hct/HctSolver.java` → `crates/design/src/color/hct_solver.rs` + `critical_planes.rs`
     （色域映射求解器；其中 255 项 `CRITICAL_PLANES` 常数表是原样搬运的生成数据）
   - `utils/ColorUtils.java`、`utils/MathUtils.java` → `crates/design/src/color/space.rs`
   - `palettes/TonalPalette.java`、`dynamiccolor/ColorSpec2021.java`、`dynamiccolor/DynamicScheme.java`
     → `crates/design/src/color/tonal.rs`、`palettes.rs`、`scheme.rs`（Tonal Spot 变体的彩度常数与
     49 个角色的 tone 映射）

   对齐验证：`crates/design/tests/official_baseline.rs` 与 `tests/official_accent.rs` 的期望色值，
   是把上述官方 Java 实现（Apache-2.0）在本机编译运行后输出的结果抄本——合计 290 项逐通道
   比对（baseline 49 角色 × 2 模式 = 98 项；强调色 8 个种子 × 12 个强调族角色 × 2 模式 = 192 项），
   误差上限 1（实测为 0）。两文件的表头各写着自己的分项口径。

   Apache License 2.0 全文见 https://www.apache.org/licenses/LICENSE-2.0
   上游版权声明：Copyright Google LLC。

3. Rust crates 生态

   当前 GUI 框架：iced 0.14（MIT），连同 winit（Apache-2.0）、wgpu（MIT OR Apache-2.0）、
   tiny-skia（BSD-3-Clause）——它们都在下面的白名单内。
   cargo-deny 白名单见 deny.toml：Apache-2.0 / MIT / BSD-2-Clause / BSD-3-Clause / Zlib / BSL-1.0 / ISC /
   CC0-1.0 / MIT-0 / Unlicense / Unicode-3.0 / CDLA-Permissive-2.0 / Apache-2.0 WITH LLVM-exception。
   GPL 系（含 AGPL、LGPL 静态链接、SSPL）依赖不得进入主干。

4. 参考实现致谢

   本项目设计参考自 HMCL（https://github.com/HMCL-dev/HMCL）与 PCL2
   （https://github.com/Meloong-Git/PCL），两者均为 GPL-3.0，特此致谢。
