You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1c982e6
Browse filesBrowse the repository at this point in the historyBrowse files
catalog: added dates survive category moves; a waived BY credit is quoted
- Six entries had `added` reset when their files moved category, so the
feeds and "new" views showed them as new. Each is back to its file's
first commit (luizmelo x3 and creature-2d-runtimes 2026-07-19,
nasa-3d-resources 2026-07-19, nasa-image-video-library 2026-08-24).
`npm run check-added` (site/check-added.mjs) follows renames through one
git log and fails on any later date; CI runs it after unshallowing.
- filmmusic-ende waived credit on CC-BY-4.0 with no quote. Evidence now
quotes the "Attribution Optional" upgrade (read 2026-11-03), and V38
requires a dated waiver quote whenever attribution_required is false on a
licence that requires credit. The same page's note that the composer
"partly use[s] AI as a tool" is quoted and pointed at the AI guide.
Closes#185
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LpkeXRUqm7oDedPDk3QWtK
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ To add a starter stack (one pick per need for a kind of game), follow [`stacks/R
48
48
-`license`: the source's licence, written as one of the values in [`site/license-vocabulary.json`](site/license-vocabulary.json) (e.g. `CC0`, `CC-BY-3.0`, `SIL OFL`, `GPL-3.0-or-later`, `custom`, `varies`). If the source uses a licence the vocabulary lacks, add it there first, with its SPDX mapping and attribution class. For GPL, record `-only` or `-or-later` only when the project itself says which; otherwise use the bare `GPL-2.0` or `GPL-3.0`.
49
49
-`license_spdx`: the SPDX identifier the vocabulary maps your `license` to. The validator rejects a missing one when a mapping exists, and an invented one when it does not.
50
50
-`commercial`: `true` / `false` / `unknown` / `varies`. Use `varies` for aggregators where some files are commercial-ok and others are not. The site still shows these under Commercial OK, labeled **per-file review**, so they are not silently excluded and not silently treated as a blanket grant.
51
-
-`attribution_required`: `true` / `false` / `unknown`. If the licence normally requires credit (CC-BY) but the publisher waives it, set `false` and add a `- Attribution waived:` line in Notes saying so.
51
+
-`attribution_required`: `true` / `false` / `unknown`. If the licence normally requires credit (CC-BY) but the publisher waives it, set `false` and add a `- Attribution waived:` line in Notes saying so. The validator requires that waiver to be quoted on a dated Evidence line (V38).
52
52
-`attribution_string`: the copy-paste credit line. Required when `attribution_required` is `true`; optional otherwise. Where the source's line is a template, mark each part the reader fills in with braces, as `"{title}" by Kevin MacLeod`; the site highlights `{…}` fields, and the copy buttons and CREDITS export tell the reader to fill them in. Other styles (`[Font name]`, `<family>`, a bare `MM/YYYY`, `(sound page URL)`) are rejected (V35), since they would be copied into a game unmarked.
53
53
-`publisher`: optional. Name the **rights-holding publisher**, never the host. Set it whenever that publisher has more than one catalog entry, so each entry page names the same publisher and the validator can check that the group agrees; setting it on a publisher that currently has only one entry is also fine and saves a backfill later. Do not set it to a generic host or distributor (GitHub, Hugging Face, itch.io, OpenGameArt, the Internet Archive, Google Fonts) or to a distributor that does not hold the rights. Distinguish sibling organisations that are genuinely different rights holders: `blender.md` (the application, Blender Foundation) carries no `publisher`, while the asset bundles under `studio.blender.org` carry `Blender Studio`. Kenney, Quaternius, KayKit, LuizMelo, 0x72, Blender Studio, Material Maker, Alif Type, GGBotNet and 3dmodelscc0 are the largest groups in use today; treat that as illustrative, not as the permitted set.
54
54
-`subcategories`: lower-case kebab-case (`base-meshes`, `field-recordings`). Reuse a value already in the catalog before inventing one, and do not add a variant of an existing value that differs only in plural or spelling. Where both forms were in use, the more common one was kept (`characters`, `environment`, `interior`, `tileset`, `vectors`, `pixel`, `impulse-responses`, `base-meshes`). Retired spellings are listed in [`site/value-aliases.json`](site/value-aliases.json), which the validator enforces (V19); add a line there when you merge two values.
@@ -63,7 +63,7 @@ To add a starter stack (one pick per need for a kind of game), follow [`stacks/R
63
63
-`ue_versions`: optional, the Unreal Engine versions the source itself states, as `5.4`, `5.4-5.8` or `5.4+` (V23). Say in Notes where the range came from (README, `.uplugin`, release names, listing). Never infer it.
64
64
- Unreal plugins use `subcategories: [unreal, ...]` and `formats: [unreal-plugin]`; Unreal projects and content packs use `formats: [Unreal]`. The validator rejects a GPL or LGPL licence on either, because the Unreal Engine EULA forbids combining the engine with that code (see [`docs/unreal.md`](docs/unreal.md)).
65
65
-`url`: an `https://` address (`http://` only where the source has no https). Other schemes are rejected.
66
-
-`added`: ISO date (`YYYY-MM-DD`) the entry joined the catalog. `npm run new-entry` fills it in; it never changes afterwards (V26: a real date, not in the future). The "new sources" feed and the home page's "New in the last 30 days" line key on it, so a re-verification sweep does not look like a wave of new entries.
66
+
-`added`: ISO date (`YYYY-MM-DD`) the entry joined the catalog. `npm run new-entry` fills it in; it never changes afterwards (V26: a real date, not in the future). The "new sources" feed and the home page's "New in the last 30 days" line key on it, so a re-verification sweep does not look like a wave of new entries. Moving an entry to another category keeps its date: `npm run check-added` (run in CI) fails when `added` is later than the file's first commit, following renames.
67
67
-`verified`: ISO date (`YYYY-MM-DD`) of your last license check. It must be a real date, no later than tomorrow in UTC, and no newer than the newest date in `## Evidence` (V8): a new `verified` date needs a new dated Evidence line from the same check. Dates inside URLs do not count as Evidence dates.
68
68
-`status`: `active` | `needs-review` | `deprecated`. A `deprecated` entry needs a `- Deprecated:` line in its body giving the reason (V9). `active` means the licence, the commercial stance and the credit requirement are all settled: an `unknown` in `license`, `commercial` or `attribution_required` keeps an entry at `needs-review`. The validator enforces this (V14), and rejects `formats`, `subcategories` or `tags` values that differ only by case, punctuation or a trailing "s" from one already in use (V13).
69
69
- No other keys. An unknown key is rejected with the nearest allowed one (V33): `id`, `name`, `url`, `publisher`, `category`, `subcategories`, `license`, `license_spdx`, `commercial`, `attribution_required`, `attribution_string`, `formats`, `tags`, `added`, `verified`, `status`, `engine_lock`, `ue_versions`, `camera_perspective`, `grid_dimensions`, `maintenance`, `hardware_tags`, `preview` and `limits`. A typo such as `engine-lock` would otherwise drop the fact silently. Block-list items are indented under their key (` - item`), and every key needs a space after its colon.
- Attribution waived: the publisher layers an "Attribution Optional" upgrade over the CC BY 4.0 grant, which is why `attribution_required` is false on a CC-BY license
26
26
- Credit appreciated: `Music by Sascha Ende at ende.app`. Offered, not owed
27
+
- AI: the licence page's disclaimer says the composer "partly use[s] AI as a tool" without saying which tracks or how. If you ship on Steam, weigh that for the Content Survey's AI section ([AI assets guide](../../docs/ai-assets.md))
27
28
- Avoid ND music elsewhere — see high-risk
28
29
- Content ID: the standard license page (read 2026-09-23) forbids anyone from registering these tracks with "YouTube Content ID or similar systems" and explicitly allows monetised YouTube videos and Twitch streams. It does not say in so many words that the author never registers them, but it treats registration as the thing no one should do
29
30
30
31
## Evidence
31
32
32
33
- Live [Standard license](https://ende.app/en/standard-license) (2026-08-24): "CC BY 4.0"
33
34
- Same page (2026-08-24): "use it in videos, podcasts, or games. Commercially? Yes, absolutely!"
35
+
- Same page (2026-11-03), the waiver: "CC BY 4.0 – but with an upgrade from me."; "My gift to you: "Attribution Optional""; "You do NOT have to credit me."; and under Credit: "If you have room: credit me ("Music by Sascha Ende at ende.app"). I'd really appreciate it! If not: that's fine too."
36
+
- Same page (2026-11-03), disclaimer: "since I'm only human (and partly use AI as a tool), I cannot give a 100% worldwide guarantee"
0 commit comments