# Attribution

Third-party assets shipped with this browser port, carried over from the original 2016 release
(`reference/readme.txt`) and cross-referenced against `spec/game/presentation.md`'s "Bundled
asset attribution" table. Every credited asset below is reproduced unmodified from the original
release; none of it was regenerated for the port.

## Audio (`public/sounds/`)

| File in `public/sounds/` | Original credited name | Author | Licence |
|---|---|---|---|
| `26875__cfork__cf-fx-batch-jingle-glock-n-kloing.aif`, `26875__cfork__cf-fx-batch-jingle-glock-n-kloing.wav` | `cf_FX_batch_jingle_glock_N--kloing.aif` | [cfork.net](http://www.cfork.net/) | [CC Attribution 3.0](http://creativecommons.org/licenses/by/3.0/) |
| `126418__cabeeno-rossley__button-select.wav` | `button select.wav` | Cabeeno Rossley, [FreeSound](http://www.freesound.org/people/Cabeeno%20Rossley/) | [CC Attribution 3.0](http://creativecommons.org/licenses/by/3.0/) |
| `80921__justinbw__buttonchime02up.wav` | `buttonchime02up.wav` | JustinBW, [FreeSound](http://www.freesound.org/people/JustinBW/) | [CC Attribution 3.0](http://creativecommons.org/licenses/by/3.0/) |
| `63001__radian__chime-0024.wav` | `chime-0024.wav` | radian, [FreeSound](http://www.freesound.org/people/radian/) | [CC Attribution 3.0](http://creativecommons.org/licenses/by/3.0/) |
| `11878__medialint__heavy-metal-spoon.wav` | `heavy_metal_spoon.wav` | medialint, [FreeSound](http://www.freesound.org/people/medialint/) | [CC Sampling+ 1.0](http://creativecommons.org/licenses/sampling+/1.0/) |
| `loops/36223__genghis-attenborough__lone-sleeper.mp3` | `Lone sleeper.mp3` | genghis attenborough, [FreeSound](http://www.freesound.org/people/genghis%20attenborough/) | CC Attribution-NonCommercial ([`reference/readme.txt`](../../reference/readme.txt) names this "2.0" but links `by-nc/3.0`; recorded here exactly as the original readme states it, mismatch and all — see `CLAUDE.md`'s rule against silently "fixing" the original) |
| `171697__nenadsimic__menu-selection-click.wav` | `menu-selection-click.wav` | nenadsimic, [FreeSound](http://www.freesound.org/people/nenadsimic/) | [CC0 Public Domain](http://creativecommons.org/publicdomain/zero/1.0/) |
| `198448__callum-sharp279__menu-scroll-selection-sound.wav`, `202757__callum-sharp279__menu-scroll-selection-sound.wav` | `menu-scroll-selection-sound.wav` (two separately-uploaded FreeSound assets share this display name — `spec/game/presentation.md` notes a third id, 198449, that has no physical file in this build) | callum-sharp279, [FreeSound](http://www.freesound.org/people/callum-sharp279/) | [CC0 Public Domain](http://creativecommons.org/publicdomain/zero/1.0/) |
| `191593__fins__menu-button.wav` | `menu-button.wav` (a second FreeSound upload with this same display name, id 172204, has no physical file in this build) | fins, [FreeSound](http://www.freesound.org/people/fins/) | [CC0 Public Domain](http://creativecommons.org/publicdomain/zero/1.0/) |
| `191754__fins__button-5.wav` | `button-5.wav` | fins, [FreeSound](http://www.freesound.org/people/fins/) | [CC0 Public Domain](http://creativecommons.org/publicdomain/zero/1.0/) |

One more shipped file has no entry in `reference/readme.txt` at all:

- `220211__gameaudio__button-casual-event.wav` — not individually credited by the original
  readme. `spec/game/presentation.md` records that only 14 of the game's 51 `DefaultSounds`
  resource paths are matched to a readme credit; this is one of the other 37. Licence unknown;
  shipped here only because it shipped in the original release.

`26875__cfork__cf-fx-batch-jingle-glock-n-kloing.wav` is not a separate asset: it is a lossless
PCM transcode of the `.aif` alongside it (`plans/web-effects-and-audio` Phase 4 — AIFF is
big-endian PCM in an IFF container, WAV is little-endian PCM in a RIFF container; both files
decode to the identical 168,021-frame/44.1kHz/16-bit/stereo sample data), committed because
browser AIFF decode support is inconsistent while WAV is universal. Same underlying credited work,
same licence; `web/src/audio/DefaultSounds.ts`'s `SOUND_CATALOGUE` resolves the `"Chime 5"` slot to
the `.wav`, not the `.aif`.

Every file actually present under `public/sounds/` (11) and `public/sounds/loops/` (1) — 12 files
in total, the transcoded `.wav` above making 13 physical files but still 12 catalogue *entries* —
has a row in this table or the note above it; `web/src/audio/DefaultSounds.ts`'s own doc comment
has the full accounting against `DefaultSounds.java`'s 51-entry catalogue (12 shipped, 39 absent).

## Graphics (`public/icons/`)

| File in `public/icons/` | Licence |
|---|---|
| `003_06.gif`, `003_06_1.gif`, `003_06_2.gif`, `003_11.gif`, `003_12.gif`, `003_16.gif`, `003_33.gif`, `003_75.gif`, `003_76.gif` | [CC Attribution 3.0](http://creativecommons.org/licenses/by/3.0/) — pre-sliced icons from `icojoy_pixel_icons_452.jpg` by [icojoy](http://www.icojoy.com/), per `reference/readme.txt` |

These are the nine distinct 18x18 GIFs `com.tfl.hexgrid.graphics.HexIcons` actually reads (from
`src/main/resources/com/tfl/hexgrid/resources/images/icons_18x18/gif/blue/normal/`) — `HexIcons`
declares 12 tinted `ImageSource` constants, but three of them (`FIRST_HEART_MEGA`,
`SECOND_HEART_MEGA`, `BOTH_HEARTS_MEGA`) reuse the same GIF file as their non-MEGA counterpart
with a different tint colour, so 12 constants resolve to 9 distinct files, not the 6 that
`plans/web-scaffold/plan.md` says — see `plans/web-scaffold/progress.md`'s Phase 3 notes for that
discrepancy (the actual `HexIcons.java` source and the physical GIF files agree with each other;
the plan prose is what's wrong). **Corrected in `spec/game/presentation.md`'s "Icons and image
sources" -> "`HexIcons`" section by `plans/web-effects-and-audio` Phase 4** — this note had flagged
the spec-side half of the same finding as outstanding; it is no longer.

## Font (`public/fonts/`)

- `Anita semi square.ttf` — licence **unknown**. It is not named anywhere in
  `reference/readme.txt`, nor anywhere else under `reference/`, and no other surviving artefact
  records its source or terms. This is stated here deliberately rather than guessed at; see
  `plans/web-scaffold/progress.md`'s risk R6.
