Repository navigation
docs(license): add MPL-2.0 LICENSE for TIWCG software - #7
Conversation
RIGHTS-AUDIT Phase 1.4: tiwcg never had a LICENSE. Add the canonical MPL-2.0 text and a README License section scoping it to the software (engine/, render/, mobile/). Rules text and card data stay hmmm pending the Phase 2 rules-text license split.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1de370d560
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| `MPL-2.0`). The full text is in [`LICENSE`](LICENSE). "Software" here means | ||
| `engine/`, `render/`, `mobile/` and `scared-sacred_msdmd.ts`. The skills under |
There was a problem hiding this comment.
Exclude the card-data source from the software grant
Licensing all of engine/ also licenses the card data that this section says is still pending: engine/weimar_data.py declares itself the set's executable-data source, and engine/cards_export.py copies those dictionaries into base-game/**/*.json nearly verbatim. Once this grant is distributed, that content has already been made available under MPL-2.0 even if the generated JSON directory is nominally excluded, defeating the intended licensing split; carve the data-bearing engine modules out of this grant or move the data outside the licensed software boundary first.
Useful? React with 👍 / 👎.
| Usage: when you reuse TIWCG code, keep the MPL-2.0 notice and publish your | ||
| changes to MPL-covered files under MPL-2.0. This section is a licensing map, |
There was a problem hiding this comment.
Limit the source-sharing instruction to distribution
For users who only modify or use the code privately, this instruction incorrectly says they must publish their changes. MPL-2.0 Sections 3.1–3.2 impose source-availability requirements when covered software is distributed, and even then the source may be supplied to recipients rather than published publicly; qualify this guidance accordingly so it does not materially overstate users' obligations.
Useful? React with 👍 / 👎.
Review follow-up: REUSE.toml (REUSE spec 3.x, no per-file headers) marks engine/, render/, mobile/, scared-sacred_msdmd.ts, .github/, .gitignore and .agents/ as MPL-2.0, and LICENSES/MPL-2.0.txt provides the REUSE copy. README lists the remaining unlicensed paths (rules text, card data, docs/, PLAN.md, README.md).
Review nit: the MPL-2.0 text now lives only at LICENSES/MPL-2.0.txt (REUSE layout). README points there. licensee still detects MPL-2.0 and reuse lint output is unchanged.
The final commit of #7 dropped the root LICENSE and kept only LICENSES/MPL-2.0.txt. GitHub's license detection reads only the repo root, so tiwcg showed no license. Add a root LICENSE byte-identical to LICENSES/MPL-2.0.txt (the official MPL-2.0 text).
What was wrong
tiwcghas never had a LICENSE, so by default all rights are reserved. Erin's 2026-09-26 rights audit of the org's repos found no license grant in tiwcg's history. The target is MPL-2.0 for the software (engine/,render/,mobile/) and, in a later step, a Creative Commons share-alike license for the rules text. The software license comes first. Rules text and card data wait.What changed
LICENSES/MPL-2.0.txt(new): canonical MPL-2.0 text from https://www.mozilla.org/media/MPL/2.0/index.txt, in the REUSE layout. (Second follow-up) The rootLICENSEthis PR first added was removed on review, so this is now the only copy of the text.REUSE.toml(new, follow-up): the scope from README in machine-readable form, per REUSE Specification 3.x[[annotations]], with no per-file headers:MPL-2.0,SPDX-FileCopyrightText = "2026 Erin Spencer":engine/**,render/**,mobile/**,scared-sacred_msdmd.ts,.github/**,.gitignore,REUSE.toml;MPL-2.0:.agents/**(skill copies from The-Interdependency/skill-lib).README.md## License: states the scope, points toLICENSES/MPL-2.0.txtandREUSE.toml, and lists every path that is still unlicensed:canon/,base-game/(rules text and*.jsoncard data),expansions/,funding/,PLAN.md,docs/(icon artwork) andREADME.md..github/and.gitignoreare MPL-2.0 (tooling).README.mdis left unlicensed because it carries game content (the L1–L3 layer descriptions and The Litany) alongside the licensing map, and the README scoping keeps game content out of MPL.mobile/android/*.gradle.ktshas none).Verification
cmp LICENSES/MPL-2.0.txt <(curl -sL https://www.mozilla.org/media/MPL/2.0/index.txt): identical.LICENSEleftreuse lintoutput byte-for-byte unchanged (diffof the before/after output is empty), because REUSE ignores rootLICENSEfiles.reuse lint(reuse 6.2.0): 46/146 files carry license and copyright information. The 100 files it reports as missing are exactlybase-game/(93),canon/(2),expansions/(1),funding/(1),PLAN.md,README.mdanddocs/icon.svg, as intended. No missing, unused or invalid licenses. The overall result is "not compliant" on purpose until the rules-text license is chosen..github/workflows/test.yml, re-run on headb6e871d:python -m compileall -q engine renderOK.engine: 50 tests OK (includestest_plan_contract.py, which reads README.md).render: 4 tests OK.b6e871d:testand CodeQL all green.License detection
licensee detect .(licensee 10.1.0) on this branch's checkout (headb6e871d):On
main,gh api repos/The-Interdependency/tiwcg/licensecurrently returns 404. Detection updates only after merge tomain.hmmm
base-game/*.json, 88 files) is undecided and needs Erin's decision. When it is made, adding a[[annotations]]block for those paths inREUSE.toml, plus the license text underLICENSES/, will makereuse lintpass.REUSE.tomlrecords a 2026 Erin Spencer copyright on the software. AI-assisted commits (Claude, Codex) are part of the history, and their copyright status is a separate question.