# Asset Attribution

## Hero magic redraw and reused hydra cel (2026-10-05)

The current fire, ice, lightning and Holy effect cels are original OPRN art written
as explicit palette-symbol rows and pixel placements in `flame_cels.py`,
`crystal_cels.py`, `lightning_cels.py`, `aether_cels.py`, and `water_band_cels.py`
under `scripts/asset-gen/pixel-fx/`. `hero_magic_rework.py` selects the active cels;
`snes_study_redraw.py` packs them and expands `hand-authored/*.study.px.json`.
Ten layer sheets and four background cel copies live in `generated/pixel-fx/`.
The backgrounds place authored 128px water bands over repeated flat 32px tiles.
The summon body reuses the first 96px cel of existing OPRN artwork
`generated/pixel-enemies/hydra-three.png`, with explicitly selected palette
substitutions recorded in `hand-authored/summon-hydra-reuse.json`. Pixel positions
and transparency are retained; it is placed at (16,16) in a 128px cel and held for
1,400ms. It is not a newly drawn dragon or new attack pose.
No FF6 sprites or audio were extracted, and no sprite tweening was used.
SNES FF6 footage and public animation
analysis informed timing and composition, documented in
`docs/experiments/ff6-reference-study-20261005/README.md`.
Repository artwork terms apply. The user approved integration of this revision;
`review-decision.json` binds that decision to the source and PNG hashes.
Current scope and reproduction: `docs/experiments/hero-magic-rework-20261005/README.md`.

The 24 hand effect sheets and both hand-authored dragon versions were rejected by
the user and removed from common defaults. Their original OPRN artwork and source
snapshots are preserved under `docs/experiments/shared-hand-fx-20261005/`.
The subsequent `snes-study-redraw-20261005` five-skill study was also rejected by
the user and archived in that folder's `rejected-release/`. Current magic cels
and the reused hydra body replace that study; its old silhouettes are not quality references.
Existing EasyRPG sound assets retain their separate attribution.

`generated/pixel-fx/mage_fire_burst.png`, `mage_blizzard.png`, `mage_chain_bolt.png`
are original OPRN artwork authored as explicit native
palette-symbol rows. Editable sources: `scripts/asset-gen/pixel-fx/hand-authored/`.
Repository code/asset policy applies. FF6/SNES battle effects are the requested
visual inspiration; these cels contain no extracted FF6 sprites. The sparse
source expands mechanically to a complete grid, with no shape generation or tweening.

## Runtime window skin

- File: `ui/windowskin-default.png`
- Source: procedurally generated by `scripts/generate-window-skin.mjs`
- License: original generated project asset (this project). Renamed 2026-08-21 from
  `windowskin-rm2003.png` — the file is our own generated 9-slice, not third-party art.
- Notes: 96x96 RGBA 9-slice window skin with 24px corners for runtime game windows.

## EasyRPG RTP bundled object charsets

- Files:
  - `easyrpg-charset-object1.png` from `CharSet/Object1.png`
  - `easyrpg-charset-object2.png` from `CharSet/Object2.png`
- Repository: https://github.com/EasyRPG/RTP
- License: Creative Commons Attribution 4.0 International for EasyRPG RTP materials
- Upstream asset attribution:
  - `CharSet/Object1.png` by Tom Lemmens and Blarumyrran, CC0 original chest, https://github.com/lemtom
  - `CharSet/Object2.png` by Verdant_Jack, CC0, https://community.easyrpg.org/t/test-for-new-rtp/1067/8
- Notes: This is an open replacement RTP material, not the proprietary RPG Maker 2000/2003 RTP.
- 2026-10-07: the EasyRPG ChipSet sheets (Exterior/Dungeon/Interior/Ship/World/retro_*) and the forest-village, climate, biome and dungeon
  sheets derived from them were deleted from the repository. Correction (2026-10-22): the Beodeul city, architecture, forms
  and reviewed sheets, the vehicle sheet and the world-map icons still contain RTP-derived cells. They are credited
  under «EasyRPG RTP material in the Beodeul sheets and the vehicle sheet» below.

## Scarloxy — Monster Taming Game Essentials (MyPixelWorld Special Packs #01)

- Files: `scarloxy/*.png` (battle backdrops, monster battlers/icons, battle effect strips, chipsets, charsets, stat icons)
  except the generated monster sprites listed in the section below.
- Author: Scarloxy (Ismael Garcia)
- Source: https://scarloxy.itch.io/mpwsp01 (purchased copy)
- License: Creative Commons Attribution 4.0 International — commercial use allowed with attribution
- Notes: originals are vendored at `vendor/scarloxy-mpwsp01/` (2x/4x upscaled distribution).
  `scripts/import-scarloxy-pack.py` downscales them back to native pixel resolution and repacks
  tilesets/characters into RM2K3-compatible ChipSet (480x256, 16px) and CharSet (288x256, 24x32)
  sheets. Fonts from the pack are not bundled (Latin-only).

## Generated monster sprites (not part of the Scarloxy pack)

- Files:
  - `scarloxy/scarloxy-monster-mossling.png`, `scarloxy/scarloxy-monster-icon-mossling.png`
  - `scarloxy/scarloxy-monster-emberkit.png`, `scarloxy/scarloxy-monster-icon-emberkit.png`
  - `scarloxy/scarloxy-monster-puddlup.png`, `scarloxy/scarloxy-monster-icon-puddlup.png`
- Origin: synthesized with an image generation model, then downscaled to the pack's native
  96x96 battler / 32x32 icon format (magenta key removed, alpha bleed cleared, palette reduced).
- Author: none of the above sprites are Scarloxy (Ismael Garcia) artwork. They live under the
  `scarloxy/` prefix only so the demo project resolves them from one bundled asset directory.
- Notes: these files must not be represented as pack content. If the Scarloxy pack license or
  attribution changes, it does not apply to them; conversely the CC-BY 4.0 credit above does not
  cover them. Review generated-asset terms before shipping commercially.

## EasyRPG RTP scoped runtime import

- Files:
  - `easyrpg/charset/*.png` from upstream `CharSet/*.png`
  - `easyrpg/faceset/*.png` from upstream `FaceSet/*.png`
  - `easyrpg/music/*.mid` from upstream `Music/*.mid`
  - `easyrpg/sound/*.wav` from upstream `Sound/*.wav`
  - `easyrpg/AUTHORS.md` and `easyrpg/COPYING`
- Repository: https://github.com/EasyRPG/RTP
- Pinned source commit: `993d88cbc78c658d348bbfa74a3b424d393d27e5`
- License: Creative Commons Attribution 4.0 International for EasyRPG RTP materials
- Upstream asset attribution: see `public/assets/easyrpg/AUTHORS.md`; license text is mirrored at `public/assets/easyrpg/COPYING`.

## CC0 배경음악 (OpenGameArt) — 2026-07-26 추가

**왜 추가했는가:** 이 프로젝트에 등록돼 있던 음악 리소스 30곡은 전부 EasyRPG RTP 의 `.mid` 였고,
브라우저 `HTMLAudioElement` 는 MIDI 를 재생하지 못한다. 그래서 게임은 실제로 **완전 무음**이었다
(2026-07-26 브라우저 실측). 아래 5곡이 이 프로젝트에서 실제로 재생 가능한 최초의 음악이다.

- License: **CC0 1.0 Universal** (public domain dedication). 표기 의무는 없으나 출처 재검증을 위해 남긴다.
- Local files under `public/assets/cc0/audio/bgm/`:
  - `field-of-dreams.mp3` — "The Field Of Dreams" by **pauliuw**, CC0, https://opengameart.org/content/the-field-of-dreams
  - `town-theme.mp3` — "Town Theme RPG" by **cynicmusic** (cynicmusic.com / pixelsphere.org), CC0, https://opengameart.org/content/town-theme-rpg
  - `inn-old-tower.mp3` — "Medieval: The Old Tower Inn" by **RandomMind**, CC0, https://opengameart.org/content/medieval-the-old-tower-inn
  - `cave-theme.ogg` — "Cave Theme" by **Brandon Morris** (Brandon75689), CC0 (dual-listed OGA-BY 3.0 / CC0), https://opengameart.org/content/cave-theme
  - `battle-theme-a.mp3` — "Battle Theme A" by **cynicmusic** (cynicmusic.com / pixelsphere.org), CC0, https://opengameart.org/content/battle-theme-a
- Registered in `src/assets/cc0AudioAssets.ts` (자동으로 리소스 프로필/에디터 피커에 노출된다).
- Notes: "8-bit Music Pack (Loopable)" by CodeManu 는 **CC-BY 3.0 이라 채택하지 않았다**.
  "Boss Battle Music" (SubspaceAudio, CC0) 는 CC0 지만 원본이 21.8MB WAV 이고 이 환경에 ffmpeg 가
  없어 트랜스코딩할 수 없어 보류했다 — 보스 곡은 아직 비어 있다.


## CC0 오리지널 BGM 카탈로그 (281곡) — 2026-08-21 추가

**왜 추가했는가:** 기존 재생 가능한 BGM 은 위 OpenGameArt 5곡뿐이었다. 장면 수는 수십 개인데
곡이 5개면 감독은 같은 곡을 계속 재사용할 수밖에 없다. 이 카탈로그는 장면 분류별로 곡을 갖춘
**에디터의 기본 BGM 세트**다.

- License: **CC0 1.0 Universal** (public domain dedication). 표기 의무는 없으나 출처 재검증을 위해 남긴다.
- 전곡 무보컬 오리지널 창작(`vocals: none`, `originalComposition: true`) — 제3자 샘플/기성곡 없음.
- 원본 리뷰 카탈로그: `https://bgmreview-h4zeq64k.manus.space/` (승인 비밀번호 필요)
- 규모: 281곡 / 총 11시간 32분 / 1.21GB. mp3 273곡(918MB) + wav 루프 마스터 8곡(326MB).
  266곡은 심리스 루프 마스터, 15곡은 앞뒤 페이드가 있는 컷.
- 릴리스 구성:
  - `first-fifteen-2026-08-18.4` — 15곡
  - `first-twenty-2026-08-18.5` — 5곡
  - `first-thirty-five-2026-08-18.6` — 15곡
  - `ambient-fifty-five-2026-08-19.7` — 20곡
  - `expansion-eighty-five-2026-08-19.8` — 30곡
  - `completion-one-fifteen-2026-08-19.9` — 30곡
  - `main-theme-one-2026-08-20.1` — 1곡
  - `main-theme-variations-one-2026-08-20.2` — 7곡
  - `queue-q0116-q0282-2026-08-21.1` — 158곡

**파일은 이 레포에 없다.** 1.21GB 를 git 에 담을 수 없어 정본은 CDN(DigitalOcean Spaces)이고,
레포에는 카탈로그(`src/assets/bgmCatalog.ts` — 파일명·길이·BPM·조성·sha256·태그)만 둔다.
예외로 기본 프로젝트가 CDN 없이도 소리를 내야 하므로 스타터 3곡만 함께 커밋한다
(`public/assets/cc0/audio/catalog/`, `src/assets/bgmStarterTracks.ts`).

- sha256: 221곡은 원본이 준 해시를 대조해 검증했다. 나머지 60곡
  (`expansion-eighty-five` / `completion-one-fifteen` 릴리스)은 원본 카탈로그의 `sha256` 필드에
  해시 대신 `"release-manifest"` 리터럴이 들어 있어 대조할 수 없다 — 이 곡들은 다운로드 시점에
  계산한 해시를 카탈로그에 남겨 이후 변조는 잡을 수 있게 했다.
- 재현 경로: `scripts/fetch-bgm-catalog.mjs` → `scripts/build-bgm-catalog.mjs` → `scripts/upload-bgm-to-spaces.mjs`
- 배선 문서: `openwiki/bgm-catalog.md`


## CC0 효과음 카탈로그 (635개) — 2026-08-21 추가, 2026-08-24 보강

**왜 추가했는가:** 기존 효과음은 EasyRPG RTP 96개(`public/assets/easyrpg/sound/*.wav`)뿐이었다.
그건 재생은 되지만 **CC-BY 4.0 이라 표기 의무가 있고**, RM2K 전투 표준 세트라 UI·문·발소리·폴리가
비어 있었다. 게다가 라벨이 `EasyRPG RTP Absorb1 Sound` 같은 영어 파일명뿐이라 감독이 한국어로
찾을 수 없었다. 이 카탈로그는 **전량 CC0** 이고 장면·슬롯별로 한국어 라벨이 붙는다.

- License: **CC0 1.0 Universal** (public domain dedication). 표기 의무는 없으나 출처 재검증을 위해 남긴다.
- 규모: 635개 / 23.35MB. 원본 8개 팩에서 696개를 받아 61개를 제외했다.
- 로컬 경로 `public/assets/se/` 하위 (팩별 디렉터리로 분리 — `metal_01` 처럼 팩 간 파일명이
  충돌하는 사례가 있어 평면 배치가 불가능하다):

| 디렉터리 | 개수 | 원본 | 출처 |
| --- | --- | --- | --- |
| `oga-rpg-pack/` | 96 | **artisticdude** — RPG Sound Pack | https://opengameart.org/content/rpg-sound-pack |
| `oga-rpg-sfx/` | 80 | **rubberduck** — 80 CC0 RPG SFX | https://opengameart.org/content/80-cc0-rpg-sfx |
| `oga-sfx/` | 82 | **rubberduck** — 100 CC0 SFX | https://opengameart.org/content/100-cc0-sfx |

- 2026-10-07: Kenney 5팩(377개)은 저작권 정리로 지웠다. 남은 것은 OpenGameArt 3팩 258개다.
- 포맷: OGA 팩은 Ogg Vorbis(44.1/48kHz), artisticdude 팩만 WAV PCM16/24(15.3MB 중 대부분).
  이 환경에 ffmpeg 가 없어 **트랜스코딩하지 않고 원본 바이트를 그대로 커밋했다** — BGM 의 wav
  루프 마스터와 같은 판단이다(sha256 재검증이 가능한 쪽을 택함).

- EasyRPG RTP SE 96개는 **유지한다.** 피커에서 CC0 카탈로그가 앞에 오고 RTP 가 뒤에 온다
  (BGM 과 같은 서열) — 기존 프로젝트의 `easyrpg-sound-*` 참조가 깨지지 않는다.

## Shared blue-haired traveler expressions (2026-09-15)

- User-provided 16-expression image, derived from the existing EasyRPG Actor1 portrait, explicitly supplied for the app common resource library.
- Original supplied master: `shared/faceset/source/blue-traveler-expressions.png`.
- Runtime sheet: `shared/faceset/blue-traveler-expressions.png`; standalone faces: `shared/faceset/blue-traveler-expressions/00.png` through `15.png`.
- Imported by per-cell nearest-neighbor center sampling, without facial repainting. User expression order and labels are retained.

## Restored common expression library (2026-09-17)

- 76 user-supplied expression masters: Actor1/Actor2/People1/People2 (16 each), Monster (1–12).
- Preserved originals: `shared/faceset/source/*-expressions.png`.
- Source filenames, SHA-256 hashes, base face mapping and stable stems: `scripts/shared-face-expression-sources.json`.
- Preparation: `node scripts/prepare-shared-faceset.mjs --all`, then `node scripts/slice-faceset-sheets.mjs`.
- Each master yields a 192×192 sheet and 16 standalone 48×48 PNGs. Per-cell nearest-neighbor sampling; no repainting or invented expressions.
- These are supplied derivatives of the existing EasyRPG portraits; the existing EasyRPG attribution remains applicable. User supply does not establish a new license.

## Generated paired faces for walking sprites without a portrait (2026-09-28)

- AI-generated (Codex built-in image generation) at the user's request, so every human/monster walking sprite has a matching dialogue face.
- Inputs: front-facing crops of the bundled walking sprites (EasyRPG People2/People4/People5/Actor3/Animal/Monster3, Scarloxy people1/people2) as identity references, and EasyRPG FaceSet/People1 and People2 as style references.
- Reduced masters: `generated/faceset/source/missing-people-master.png`, `missing-scarloxy-master.png`, `missing-animal-monster-master.png` (628×628 of the 1254×1254 output).
- Runtime sheets: `generated/faceset/missing-people.png`, `missing-scarloxy.png`, `missing-monster.png`; standalone faces `generated/faceset/missing-*/00.png`–`15.png` via `node scripts/slice-faceset-sheets.mjs`.
- Pairing: `src/assets/sharedCharacterGraphics.json` (`generated-faceset-missing-*`). Blank cells are registered but hidden from authoring lists.
- Style follows EasyRPG portraits; the EasyRPG and Scarloxy attributions above still apply to the referenced sprites. Generation does not establish a new license.


## Generated bust and full-body portraits for the common expression library (2026-10-01)

- AI-generated with god-tibo-imagen (MDC image API) at the user's request, so every one of the 76 common expression sets (`shared/faceset/*-expressions`) has a dialogue bust and a full-body portrait.
- One generation per expression draws the full figure and the bust together on one sheet, so both stay consistent. Inputs per sheet: a house-style bust as style reference, the set's face cell, the paired walking sprite (front + side, as ground truth for headwear, clothing and body plan) and a proportion mannequin (about 8 heads for adults, 6 for children, 7–7.5 for elders; animals and monsters keep their natural body).
- Expressions: all 16 face cells — base (00), smile (01), happy (02), content (03), surprised (04), embarrassed (05), doubtful (06), serious (07), annoyed (08), angry (09), sad (10), crying (11), worried (12), determined (13), shy (14), wink (15); expression sheets are edits of the base sheet.
- Files: `shared/portraits/<stem>/{bust,full}-<expression>.png`, 2432 files (magenta key removed, trimmed, 128-colour PNG).
- The EasyRPG and supplied-expression attributions above still apply to the referenced faces and sprites. Generation does not establish a new license.
## EasyRPG RTP material in the Beodeul sheets and the vehicle sheet (corrected 2026-10-22)

Earlier entries in this file called the Beodeul sheets "project-owned" with "no third-party pixels". That was wrong.
A pixel audit on 2026-10-21/22 against the upstream EasyRPG RTP ChipSet sheets (pinned commit
`993d88cbc78c658d348bbfa74a3b424d393d27e5`) found exact RTP pixels, including flipped copies, in the sheets listed below. The Beodeul city
pipeline (`scripts/content/lib/city_v6/`) cut its brick walls, blue and orange roof tiles, planks, road cobbles, plaza
flagstones and some dirt from `scripts/content/lib/city_v6/assets/jungle-chipset-v6.png`. That sheet is a repaint of the
earlier forest-village atlas, which itself was assembled from EasyRPG RTP `ChipSet/retro_Exterior.png` and
`ChipSet/retro_World.png` (plus non-RTP material, see the next section).

- Upstream: EasyRPG RTP, https://github.com/EasyRPG/RTP — Creative Commons Attribution 4.0 International
  (https://creativecommons.org/licenses/by/4.0/). Licence text: `easyrpg/COPYING`. Full credit table: `easyrpg/AUTHORS.md`.
- Credit lines for the upstream sheets these derivatives use (from `easyrpg/AUTHORS.md`):
  - `ChipSet/retro_Exterior.png` (2017): MrBeast [CC-BY]; Stephen Challener (Redshrike) [CC-BY] (commissioned by OpenGameArt);
    Carl Olsson (surt) [CC0]; Ogrebane [CC0]; Garrett Wessner (Gwes) [CC0]; Dmytro Kushnariov (jikmok) [CC0]; Tom Lemmens [CC0];
    marianognu [WTFPL]. Sources: https://opengameart.org/content/town-tiles, https://opengameart.org/content/forest-tiles,
    https://opengameart.org/content/worldmapoverworld-tileset, https://opengameart.org/content/16x16-tiles,
    https://opengameart.org/content/16x16-indoor-rpg-tileset-the-baseline, https://opengameart.org/content/m13-cave-tileset,
    https://community.easyrpg.org/t/basis-png-by-marianognu/121
  - `ChipSet/Ship.png`, `ChipSet/Exterior.png`, `ChipSet/Dungeon.png`, `ChipSet/Interior.png`, `ChipSet/World.png` (2022):
    JasonPerry [CC0], https://finalbossblues.itch.io/
- Changes were made: cells were recoloured, repainted, cut, flipped and re-composited into new buildings, streets and
  vehicles alongside this project's own pixels. The upstream authors do not endorse these derivatives.
- Licence: the RTP-derived parts keep CC BY 4.0. This project's own edits follow the OPRN default-asset terms (free in games,
  no standalone redistribution; `openwiki/licensing.md`). This section is part of the exported `assets/ATTRIBUTION.md`.
- Check: `python3 scripts/content/rtp-attribution/rtp_check.py` scans every bundled chipset with a hashes-only fingerprint
  of the upstream sheets (no upstream image is stored). It fails only when a sheet with RTP pixels is missing from
  the list below. Bake scripts call the same check.

Sheets that contain EasyRPG RTP pixels (paths under `public/assets/`; RTP cells found by the check on 2026-10-22):

<!-- rtp-derived-sheets:begin -->
- `beodeul-city/beodeul-city-chipset.png` (Beodeul v6 city): 779 cells, retro_Exterior (walls, roofs, planks, road, plaza, dirt). The bd-house, bd-block and district kits built on them carry the same credit.
- `beodeul-architecture/chipset.png`: 94 cells, retro_Exterior (brick walls, blue roof tiles)
- `beodeul-forms/chipset.png`: 86 cells, retro_Exterior (brick, orange roof tiles, planks)
- `beodeul-reviewed/chipset.png`: 54 cells, retro_Exterior (brick, blue and orange roof tiles)
- `atlas-scenes/vehicles.png`: 163 cells, Ship, Exterior, Dungeon and Interior (JasonPerry, CC0); details in `atlas-scenes/CREDITS.txt`
- `worldmap-icons/worldmap-selected.png`: 464 cells, World, Exterior, Dungeon and Interior (JasonPerry, CC0); details in `worldmap-icons/ATTRIBUTION.md`
<!-- rtp-derived-sheets:end -->

Learning images and reference renders made from these sheets (`beodeul-*/` PNGs, `tiledata/beodeul-*`) show the same
pixels and carry the same credit. The raw source copy `scripts/content/lib/city_v6/assets/jungle-chipset-v6.png` is kept
because the city pipeline reads it. Its RTP cells carry this credit; its other cells are covered by the next section.

## Beodeul trees and forest ground: redrawn by hand (2026-10-22)

The broadleaf trees, the forest canopy and some ground cells in the Beodeul sheets used to come from the earlier
forest-village atlas's vegetation, which the 2026-09-18 entry described as "user-reference-derived forest edits made
using god-tibo-imagen". The reference image was never recorded, so those pixels had no clear licence. On 2026-10-22
they were replaced by new hand-pixel art drawn in code in this repository (no image-generation service, no third-party
image):

- Five broadleaf designs (two oaks, three bushes) and five ground cells: `scripts/content/beodeul-redraw/`
  (`draw_trees_a.py`, `draw_trees_b.py`, `draw_ground_c.py`, output in `art/`). The ground script samples the credited
  EasyRPG RTP grass and dirt cells of the Beodeul city sheet (CC BY 4.0, previous section).
- Every old tree in the Beodeul sheets was found by exact pixel match and replaced in place by the matching new design
  at the same position, tint and mirror, so saved maps keep their cell numbers: the `bd-tree-*`, `bd-mpart-bush-*`,
  woodland and grove kits in `beodeul-city/beodeul-city-chipset.png`, the tree cells of `beodeul-ground/chipset.png`,
  `scripts/content/beodeul-foliage/source-tiles.png`, and the learning images and reference renders made from them.
- The tree studies (`tiledata/beodeul-ground/tree-studies/`, `tree-palette-studies/`) are regenerated by their own
  scripts from the new city kits. The four shared woodland groups are rebuilt from the new tree bodies at the catalog
  anchors (`scripts/content/beodeul-redraw/rebuild_woodland.py`), and `beodeul-warm-trees/chipset.png` is rebuilt from
  them by `scripts/content/build-beodeul-warm-trees.py` with the warm lookup in
  `tiledata/beodeul-ground/tree-palette-studies/warm-redrawn-lookup.json` (the user-approved warm look, measured on the
  earlier lookup and applied to the new colours).
- The cast shadows of the tree and bush kits in `beodeul-nature/chipset.png` are redrawn from the new silhouettes by
  `scripts/content/beodeul-redraw/reshadow_trees.py` (same cells).
- The broadleaf forest canopy in `beodeul-nature/chipset.png` is rebaked from the new bush kits by
  `scripts/content/append-beodeul-forest-canopy.py` (in place, same cell numbers).
- Jungle ground cells 7 and 302 became our own lawn tile (`city_v6/assets/lawn16.png`,
  `harness-data/charset-actor/lawn16.png`); 129 and 160 became the Beodeul cobble cell 544; 363, 365, 393, 394 and
  423 became the new hand-pixel ground. The other old cells of `city_v6/assets/jungle-chipset-v6.png` that were not
  RTP were cleared.
- The Joseon tree crowns now use hand-authored leaf tones (`scripts/content/lib/joseon/leaf_tones.json`) instead of a
  texture sampled from the old jungle sheet.
- The world-map sheets are a separate, user-approved exception and were not changed.

## Opening mood stills (2026-09-22)

generated/opening/*.png contains five cinematic opening stills (farm-golden,
snow-village, desert-ruin, kingdom-day, dark-citadel) generated with the project
god-tibo-imagen path (Google Antigravity, gemini-3.1-flash-image) from text prompts
authored in this repository. No third-party reference images were used. They are
project-original generated assets, registered as the oprn-still-* resource ids in
src/assets/generatedAssetResourceResolver.ts with mood search terms in
src/assets/openingStillMoods.ts. The remaining oprn-still-* ids point at existing
bundled artwork (welcome poster slides and title art) whose provenance is
documented in their sections above; this section registers no new claim for those
files.

## Opening still release pack v1 (2026-09-22)

The `oprn-pack-still-*` catalog images are original text-to-image outputs from the
project's tibo Imagen path (Google Antigravity, gemini-3.1-flash-image), with no
third-party reference images. Authored prompts, labels, tags and dimensions are
recorded in `assets/opening-stills-source-v1.json`; delivered file hashes are pinned
in `assets/stills-release-v1.json`. Full-frame JPEG conversions preserve the native
composition and resolution. Images are distributed separately in the `stills-v1`
GitHub Release, installed at `assets/stills/pack/`, and included in game exports
only when referenced. This provenance statement does not replace the licenses of
other bundled assets documented above.

## 손 도트 실내 v5 `atlas-interior/interior-chipset.png` (2026-09-29)

`tex_atlas_biome_interior` / `atlas_biome_interior` (family `oprn-atlas`). Every cell is cut by
`scripts/content/hand-interior/build_tileset.py` from the hand-pixel interior kit in `tiledata/hand-interior/v5`
(pixels drawn in code in this repository, 2026-09-28; no third-party image). Some floor/wall surface textures in that
kit sample tile interiors of `atlas-biomes/jungle-chipset.png`. Correction (2026-10-22): that sheet was not purely our own; it repaints
EasyRPG RTP retro_Exterior/retro_World cells and earlier image-generation forest edits (the Beodeul copies were redrawn; see «Beodeul trees and forest ground»). The RTP attribution check finds no exact
RTP cells in `atlas-interior/interior-chipset.png`. Its conventions were
measured from the EasyRPG RTP (CC BY 4.0) as a visual reference only; no RTP pixels are pasted.
Reference renders in `hand-interior-references/` are renders of the bundled example maps from this sheet (nearest-neighbour only).

## Native enemy additions (2026-10-02)

- Native enemy additions (2026-10-02): the 100 original final-grid sheets in
  `generated/pixel-enemies/` are drawn by editable repository code in
  `scripts/asset-gen/pixel-enemy/retirement/{organic,arcane,humanoid}/`, extending
  this repository's pixel drawing helpers. No third-party image pixels, painted
  source shrink, tracing or smoothing is used. `generated/pixel-enemy-portraits/`
  contains exact idle-cell derivatives of the 140 native enemy sheets.
  `generated-enemy-sparkit-fire` reuses the existing human-selected collect sprite
  documented in `harness-data/monster-collect-species/ledger.json`.

## Common monster hand-pixel refresh (2026-10-03)

The latest follow-up replaces the rejected batch with 135 fresh drawings in
`scripts/asset-gen/pixel-enemy/redraw/`: organic44, arcane55, humanoid28 and bosses8.
The teal hydra and revised kappa, gray wolf, cave bat and skeleton knight retain
their exact approved reference pixels. All140 common species now use native64/96
cells (126 at64px and14 at96px), nine poses each. Source coordinates, joint motion
and separately painted fallen bodies are authored directly using Pillow; no
generative image tool or finished-bitmap resizing is used. Organic part fitting
transforms a complete source part around its attachment anchor before painting,
with explicit coordinate and stroke bounds; it does not clamp individual vertices.
Current source notes: `tiledata/monster-redraw-all/README.md`.
The following139-species paragraph describes the earlier rejected batch.

The 140 common battle species in `generated/pixel-enemies/` have 1,260 original
native-grid pose cells. The approved teal hydra is retained; the other 139 species
are newly drawn in `scripts/asset-gen/pixel-enemy/refresh/{organic,arcane,humanoid,bosses}.py`
and any focused helper modules in that folder. These are original OPRN pixel
artwork under the repository code/asset policy. No generative image model,
third-party pixels, resized painted source, traced raster or smoothing is used.
Portraits are exact copies of their first pose. Editable source cells and drawing
notes are in `tiledata/monster-refresh/`. Existing species IDs and native cell
dimensions were preserved for the initial batch. The human-selected collect sprite `sparkit-fire` is
separate from this battle-sheet refresh and retains its recorded source.

The revised kappa, gray wolf, cave bat and skeleton knight use new individually
authored 64px originals, nine poses per species. Source:
`scripts/asset-gen/pixel-enemy/kappa-redraw-draft.py`, `monster-redraw-studies.py`,
and the source-coordinate joint rig `study_motion.py`; build with
`build-study-battles.py`. Wolf and skeleton cells were changed from 48px to 64px
without downsampling. Documentation: `tiledata/monster-battle-four/README.md`.

## Three-headed hydra redraw (2026-10-03)

`generated/pixel-enemies/hydra-three.png` and its exact idle portrait in
`generated/pixel-enemy-portraits/hydra-three.png` are original OPRN pixel artwork,
drawn directly on the final 96px grid by `scripts/asset-gen/pixel-enemy/hydra-three.py`.
No source image or image-generation model is used. The humanoid batch generator
loads this same authoring source. Repository code/asset policy applies.
The later teal redesign uses 22 colors, independently posed heads and necks,
and a separately drawn fallen body across the same nine-cell battle contract.

## 새 지도 지형32px (2026-10-05)

`atlas-cartography/chipset.png`: 새 코드 도트 지형, 원본 `scripts/content/build-atlas-cartography.py`. 거점 그림은 기존 사람 승인 월드맵 아이콘의 원본 화소를 최근접2배로 재사용했다. 원본 해시/승인 기록은 `tiledata/atlas-cartography/sheet.json`, 원래 출처는 `atlas-cartography/ATTRIBUTION.md`와 `worldmap-icons/ATTRIBUTION.md`를 따른다.

## 버들항 문 열림 손 도트 시안

- Files: `beodeul-door/door-states.png`, `beodeul-door/door-0.png` through `door-7.png`.
- Source: this project's hand-pixel Beodeul city house `bd-house-h101_0`, source cells 5743 and 2333.
- New opening stages: Codex, explicitly authored pixel coordinates (2026-10-04), no image-generation service.
- Licensing: see «EasyRPG RTP material in the Beodeul sheets and the vehicle sheet» and «Beodeul trees and forest ground» (2026-10-22): native Beodeul cells are not all project-owned; the new door stages are project-authored.
- Rebuild source and provenance: `scripts/content/build-beodeul-door.py`, `tiledata/beodeul-door/README.md`.
- GIFs are artwork previews rather than recordings of game event playback.

## 버들항 기초·밑동·잔디 꾸미기 손 도트

- Files: `beodeul-ground/chipset.png` and recipe PNGs (16px cells, 8 columns, 48 slots).
- Author: Codex, explicit pixel coordinates, 2026-10-04; no image-generation service.
- Original house/tree references: this project's Beodeul city hand-pixel artwork.
- Source: `scripts/content/build-beodeul-ground.py`, `tiledata/beodeul-ground/`.
- Licensing: see «EasyRPG RTP material in the Beodeul sheets and the vehicle sheet» and «Beodeul trees and forest ground» (2026-10-22). The tree cells were redrawn by hand on 2026-10-22, and the neck and root cells of the ground sheet now carry the new trunk pixels. `tree-neck.png` and `roots.png` stay as drawn in code by `build-beodeul-ground.py`.
- Atlas and normal/error images are learning references, not separate game sprites.
- Later correction: `tree-neck.png` connects the crown and roots; appended source cell 41, preserving cells 0–40. The pack now has 42 painted cells and 16 recipes in the same 48 slots.
- Further foundation extension preserves all 48 original slots, including padding, and appends five native-house/church foundation recipes. Current sheet: 112 slots, 21 recipes.
- `small-village-native.png` is a learning reference rendered by the actual small-village tool and common ground dressing, using `scripts/content/prepare-beodeul-small-village-references.mts`. The earlier version used native Beodeul houses; the current version uses the 3/4 architecture source described below, so it shows the RTP-derived cells credited above.

## 버들항 3/4 탑뷰 민가·교회 손 도트

- Files: `beodeul-architecture/chipset.png`, six concept PNGs, `buildings.png`, `atlas.png`, `normal-error.png`.
- Author: native Beodeul artwork (contains credited EasyRPG RTP retro_Exterior cells); localized pixel edits by Codex, 2026-10-04; no image-generation service.
- Original footprint/collision source: native Beodeul h101_0/h104_0/h112_0/h109_1/h107_0/cathedral kits. Original roofs, silhouettes and pixel textures are preserved. Side walls are optional. Only duplicate doors, localized windows and a masonry tint are edited.
- Source: `src/harnesses/beodeul-architecture/node/build.py`, `tiledata/beodeul-architecture/`; harness seed in `harness-data/beodeul-architecture/seed.json`.
- Licensing: see «EasyRPG RTP material in the Beodeul sheets and the vehicle sheet» and «Beodeul trees and forest ground» (2026-10-22): native Beodeul cells are not all project-owned.
- The earlier wholesale projected redraw was rejected and superseded by the native artwork. Learning images are not additional game sprites. The small-village learning render now uses the new architecture source through real tile grafts.

## 버들항 원본 보존 일광 바닥 (2026-10-04)

- Files: beodeul-ground/light-*.png, chipset.png appended slots 112..303, lighting-preview.png, lighting-normal-error.png.
- Source: src/harnesses/beodeul-architecture/node/lightground.py. Explicit pixel ground shadows and subtle meadow patches by Codex; road variants retain the native Beodeul tile silhouettes and edit curb contrast only.
- Native artwork and its existing terms are preserved (road variants contain credited EasyRPG RTP cells). No new third-party pixels, image generation, or external photo copies. Saint11/SLYNYRD tutorials were consulted for lighting/grounding principles, with no artwork copied.

버들항 공용 ground의 작은 마을 흙/포석 경계·디딤돌·텃밭(hamletground.py, 2026-10-04)은 프로젝트 원본 잔디/포석과 코드 손 도트로 저작했다. 원본 버들항 출처/라이선스는 기존 항목을 따른다. SLYNYRD의 Top Down Tiles Part 2는 연결 원리 참고이며 그림 픽셀은 복사하지 않았다.

버들항 공동마당 배치 학습 그림(courtyard-native.png, 2026-10-04)은 공용 원본 민가 5채·교회·나무·지면을 실제 도구로 조립한 표본이다. 새로운 외부 그림 픽셀은 포함하지 않는다. CrossCode 공식 마을 설계 글과 The 5 Ingredients of Game Town Design의 공간 구성 원리를 참고했다.

버들항 식생 깊이 공용 조각(woodland.py, 2026-10-04)은 프로젝트 원본 나무 수관/목/뿌리를 지면 접점 순서로 합성한 것이다. 풀 군락과 연결 울타리/모서리는 코드 손 도트로 추가했다. stone 집 박공은 원본 정면 돌 질감으로 통일했다. 이번 합성에 새 외부 그림 픽셀이나 생성 이미지 서비스는 쓰지 않았다. 원본 나무는 예전 생성 이미지 편집에서 나온 것이라 2026-10-22 에 손 도트로 다시 그려 같은 자리에 바꿨다(「Beodeul trees and forest ground」 절).

Beodeul stone gable correction (2026-10-04): project-authored triangular masonry wall and centred round window from native Beodeul facade pixels; generated by the beodeul-architecture harness. Native roof pixels restored. No additional third-party artwork.

Beodeul river-town learning composition (2026-10-04): 41 native building kits, three native bridges, common ground/forest artwork, assembled by scripts/content/lib/beodeul-river-town.mts. The user-supplied town diagram informed road hierarchy and district relationships only; none of its pixels are included. Rendered learning images follow the existing Beodeul artwork terms.

Beodeul palette standard (2026-10-05): user-selected warm yellow-green from native Beodeul tree RGB variants, with native grass/house/road material roles. Reference comparison and the deliberately recoloured-ground error use native Beodeul source pixels (credited RTP cells and the redrawn trees; see 2026-10-22 sections). scripts/content/prepare-beodeul-palette-standard.mjs; existing Beodeul artwork terms apply.
# Beodeul warm tree palette (2026-10-05)

`beodeul-warm-trees/chipset.png` is a recolour of the Beodeul tree bodies and shared woodland compositions, which were redrawn by hand on 2026-10-22 (see «Beodeul trees and forest ground»). The user chose the `warm` look beside a native house. For the new colours that look is kept by `warm-redrawn-lookup.json`. Pixel positions and alpha follow the source groups, the ground shadows are unchanged, and existing cell numbers are kept. No external artwork was copied. Reproduction: `scripts/content/build-beodeul-warm-trees.py`. Lookup: `tiledata/beodeul-ground/tree-palette-studies/palettes.json` (`warm`). Whole-map learning source: `tiledata/beodeul-ground/VILLAGE50.md`.


Beodeul structural families (2026-10-05): `beodeul-forms/chipset.png` and six families assemble native Beodeul roof/wall/dormer/porch pixels (including credited EasyRPG RTP retro_Exterior cells) at 1:1 scale, with project-authored local panes, contact foundations and ground shadows. Existing Beodeul attribution terms apply. Source: beodeul-architecture harness `node/forms.py`, seed.structuralFamilies; catalog and reference source: `tiledata/beodeul-forms/`. CrossCode, Stardew Valley and Sea of Stars screenshots informed architecture observations only; no external game artwork is included in these assets.

Beodeul building review round 3 (2026-10-05): `beodeul-architecture/review-r3-building-*-roof.png` assembles this project's native Beodeul building pixels at 1:1 resolution. Explicit roof palette lookups preserve texture coordinates; selected mill foundation pixels use native masonry. `review-sign-*.png` are project-authored 16×24 wood/iron sign grids with independent 8×8 pictograms. Reproduction: `src/harnesses/beodeul-building-review/node/author_round3_details.py`; pixel/coordinate source: `harness-data/beodeul-building-review/round3-detail-sources.json`. Final Fantasy, Stardew Valley, Chrono Trigger and Secret of Mana informed facility identification and shape observations only; no game artwork is copied. Existing Beodeul source/attribution terms apply to native parts. These are review candidate sources; runtime bundle installation requires human approval.

- `beodeul-architecture/review-r4-mill-wood-roof.png`: 버들항 원본 제분소 몸체와 민가 기와 입자를 사용하고, 사용자 요청에 따라 낮은 목재 너와 지붕의 도트·처마·재질 색상을 보정한 검수 후보. 출처 좌표와 전체 팔레트 격자는 `harness-data/beodeul-building-review/round4-mill-roof.json`. 게임 설치는 사람의 해당SHA Allow 후 진행한다.

- Beodeul mill round roof revision (review candidate only): native shingle pixels from the existing Beodeul source, explicitly selected curved scanlines/courses and authored eave pixels. Source grid and palette: `harness-data/beodeul-building-review/round5-mill-roof.json`; reproducer: `src/harnesses/beodeul-building-review/node/bake_round5_mill_roof.py`. Tower body, entrance, foundation and grain-sack sign preserved. Not installed in the runtime bundle before human approval.

- Beodeul building diversity candidates, round 6 (review only): original Beodeul native roof/facade pixels at 1:1 scale; authored roof scanline outlines, selected material palette lookups and illumination bands, explicit oculus/sign grids. Ten exact final palette grids and coordinate provenance: `harness-data/beodeul-building-review/round6-detail-sources.json`. Author: `src/harnesses/beodeul-building-review/node/author_round6.py`; reproducer: `bake_round6.py`. Existing approved candidate PNGs preserved. Human approval is required before runtime installation.

- Round 6 curved roof correction: four hand-authored 4px shingle cels compared against the native tile relief, staggered course origins, and individually chosen curved courses in `src/harnesses/beodeul-building-review/node/round6_courses.py`; original Beodeul roof colors, directional face shading, final palette-index grids retained. Private failed texture iterations remain in the harness provenance and are not published as candidates.

- Beodeul house candidates, round 7 (review only): 25 explicit native-pixel assemblies, preserving the original Beodeul texture scale and current human-approved round 6 roof parts. Arched glazed windows, shuttered windows and balcony rails are authored palette grids. Complete final grids and native rectangle provenance: `harness-data/beodeul-building-review/round7-detail-sources.json`; author/reproducer: `src/harnesses/beodeul-building-review/node/author_round7.py`, `bake_round7.py`. Chrono Trigger, FF6, Secret of Mana and Breath of Fire II screenshots informed massing observations only; no foreign game pixels are asset inputs. Existing native attribution terms apply. New candidates require human approval before runtime installation.


## Silver-haired swordswoman (2026-10-03)

`generated/charset-battlers/silver-swordswoman.png` and
`generated/charset-battlers/cast/silver-swordswoman.png` are original OPRN pixel
artwork, drawn directly on the final 48px grid by
`scripts/asset-gen/charset-battler/silver-swordswoman.py`. All 24 battle cells and
21 cast cells use 16 opaque colors and binary alpha. No source image or
image-generation model is used. Repository code/asset policy applies.

## Battle trainer sprites (OPRN monster-collect trainer art, generated image, smooth downscale to 128x128)

`battle-trainers/<role>/{front,back}.png` (14 pictures: hero m/f back + front, boy, girl, fisher, hiker, bug_catcher, gym_rock, gym_water, scientist, punk, elder) are repository-owned original artwork for the monster-collect
genre: a built-in image-generation model draws an original character per role (prompted as original, no imitation of existing Nintendo characters, no ball motif),
using repository-owned monster-collect battle-trainer pictures (`harness-data/battle-trainer-sprites/source/`, themselves generated originals) only as a
style sample, then (current method, user-selected 2026-10-15) the result is downscaled smoothly to a 128x128 transparent canvas (displayed 1x); the earlier 64x64 grid-pixelized candidates (p4) were not selected. They contain no EasyRPG Actor1 pixels
and no Nintendo artwork, and no sample is copied. Selection record: the method was chosen by the user; the hero, boy and girl pictures and the eight remaining roles were chosen by the supervisor under the user's explicit delegation ("pick whatever you recommend", 2026-10-15/16), recorded in `harness-data/battle-trainer-sprites/picks.json` (`by: user-delegated-to-supervisor`) and changeable by re-picking. Harness: `src/harnesses/battle-trainer-sprites/`.
License: OPRN default-asset terms (free in games, no standalone redistribution; `openwiki/licensing.md`).

## Heroes1 walking chips — CT/FF6-style class characters (2026-10-16)

`generated/charsets/Heroes1.png` (288×256, 8 characters × 3 patterns × 4 directions) holds eight walking chips from the `charset-actor` harness (`src/harnesses/charset-actor/`):
Amphibian Knight, Stone-age Girl, Spell Girl, Scrap Robot, Rogue Scout, Lavender Mage, Old General, Stage Singer.
**Each chip is derived from an EasyRPG RTP character sheet** (`CharSet/Actor1`, `Actor3`, `Actor4`, `People3`, `People4`): the harness keeps the base chip's face, body proportions, legs and walk poses
and rewrites only the hair, clothing, colours and carried gear inside region masks (edits by a model, `gemini-4-argon-high`, then verified frame-by-frame against the base).
The base chip per character is recorded in `src/assets/heroesCharsets.json` (`source.baseChip`).
- Upstream: EasyRPG RTP, https://github.com/EasyRPG/RTP — Creative Commons Attribution 4.0 International; credit lines: `public/assets/easyrpg/AUTHORS.md`. The CC BY 4.0 credit above applies to these derivatives and is part of the exported `assets/ATTRIBUTION.md`.
- Final pixel grids and edit commands: `harness-data/charset-actor/ct-ff6-pick6/<key>/` (`chip.chr.txt`, `edit.json`, `meta.json`); baked by `src/harnesses/charset-actor/install_ct_ff6.py` without redrawing (per-slot RGBA SHA-256 in the roster).
- Selection record: the eight were chosen from the harness candidate sheet by the supervisor under the user's explicit delegation ("pick-6 는 니 추천대로 해", 2026-10-16), `selection.by: user-delegated-to-supervisor` in the roster; changeable by re-picking.
- No Square Enix / Capcom artwork and no pixel of any other game is used; the character ideas are generic class archetypes (no existing character is copied).
License: OPRN default-asset terms for the derived edits (free in games, no standalone redistribution; `openwiki/licensing.md`); the RTP-derived parts keep CC BY 4.0.

## Modern1-3 walking chips — modern romance characters (2026-10-16)

`generated/charsets/Modern1.png`, `Modern2.png`, `Modern3.png` (288×256 each, 8 characters × 3 patterns × 4 directions, 24 chips) hold modern-life walking chips from the `charset-actor` harness (`src/harnesses/charset-actor/`):
school-uniform boys and girls (blazer, summer vest, sailor, cardigan, twin tails, bun, long hair), casual boys and girls (sweatshirt, hoodie, jacket, dress, blouse, striped tee), suits, cafe-apron staff, and teacher/professor.
**Each chip is derived from an EasyRPG RTP character sheet** (`CharSet/Actor2`, `Actor3`, `Actor4`, `People1`, `People5`): the harness keeps the base chip's face, skin, hands, body proportions, legs and walk poses
and rewrites only the hair and the top/bottom/shoe colours and shapes inside region masks (edits by a model, `gemini-4-argon-high`, then verified frame-by-frame against the base; no carried gear/props).
Three chips (cafe apron navy and olive, suit girl navy; `source.model` starts with `script-colorvar`) are scripted hue/value variants of a model-edited chip, produced without a model call and passed through the same verification.
The base chip per character is recorded in `src/assets/modernCharsets.json` (`source.baseChip`).
- Upstream: EasyRPG RTP, https://github.com/EasyRPG/RTP — Creative Commons Attribution 4.0 International; credit lines: `public/assets/easyrpg/AUTHORS.md`. The CC BY 4.0 credit above applies to these derivatives and is part of the exported `assets/ATTRIBUTION.md`.
- Final pixel grids and edit commands: `harness-data/charset-actor/romance-pick1/<key>/` (`chip.chr.txt`, `edit.json`, `meta.json`); baked by `src/harnesses/charset-actor/install_modern_romance.py` without redrawing (per-slot RGBA SHA-256 in the roster).
- Selection record: the 24 were filtered from 36 harness candidates by the author (chip-set grain match, torso, no clothing clipping, 12-frame identity) under the user's explicit delegation ("no picking, filter by your own criteria", 2026-10-16), `selection.by: user-delegated-to-supervisor` in the roster; changeable by re-picking.
- No image-generation output and no pixel of any other game is used.
License: OPRN default-asset terms for the derived edits (free in games, no standalone redistribution; `openwiki/licensing.md`); the RTP-derived parts keep CC BY 4.0.

## ScarloxyPeople1-13 walking chips — monster-collect people derived from Scarloxy People1-2 (2026-10-16)

`generated/charsets/ScarloxyPeople1.png` … `ScarloxyPeople13.png` (288×256 each, 8 character slots × 3 patterns × 4 directions, 90 chips; sheet 4 holds one chip, and sheet 5 slot 6 and sheet 8 slot 3 are empty — those slots stay blank because chip slots are append-only) hold people walking chips for monster-collecting games
(police officer, researcher, nurse, villager, villain grunts, angler, camper, hiker, bug catcher, forester, explorer, rival, trainers, schoolchildren, priestess, beach visitor, shop clerks, peddler, swimmers, sailor, lifeguard, elders, kids, fortune teller, gym leaders of 17 types, students, station attendant, courier, lighthouse keeper, contest participants, rancher, lab assistants, doctor, chef, ranger).
**Every chip is derived from the Scarloxy MPWSP01 People1/People2 character sheets** (`scarloxy/scarloxy-charset-people1.png`, `scarloxy-charset-people2.png`, ten characters) by (a) a script with no model call (52 chips: 30 + the 22 of sheets 11-13 below) and (b) real Argon (`gemini-4-argon-high`, via the 8318 CLIProxy) part-editing under the same region-mask harness (38 chips; hair/hat/clothes only, face/skin/hands/body proportions pixel-locked and verified on all 12 frames; `argon_http.py`, `scarloxy_draw.py`, `scarloxy_argon2.py`):
`src/harnesses/charset-actor/scarloxy_compose.py` (a) moves the head rows of one Scarloxy character (hat, hair, face) onto the body rows of another, frame by frame, and (b) shifts hues of hair/hat, top, bottom and shoe colours inside region masks.
Head and body donor (script chips) or base character (Argon chips) per chip are recorded in `harness-data/charset-actor/scarloxy-people/recipes*.json`, `scarloxy-people-chips/<key>/meta.json` and in `src/assets/scarloxyPeopleCharsets.json` (`source.baseChip`).
- Upstream: Scarloxy (Ismael Garcia), "Monster Taming Game Essentials" (MyPixelWorld Special Packs #01), https://scarloxy.itch.io/mpwsp01 — Creative Commons Attribution 4.0 International (see the Scarloxy section above). The CC BY 4.0 credit applies to these derivatives and is part of the exported `assets/ATTRIBUTION.md`. Changes were made (head transplants, recoloured clothing/hair, repainted hats/aprons/capes/robes within the region masks).
- Final pixel grids: `harness-data/charset-actor/scarloxy-people-chips/<key>/` (`chip.chr.txt`, `meta.json`, Argon `edit.json`); baked by `src/harnesses/charset-actor/install_scarloxy_people.py` without redrawing (per-slot RGBA SHA-256 in the roster).
- Selection record: sheets 1-4 (25 chips) were filtered by the author by eye under the user's delegation and approved by the user ("all fine, you may add more"); sheets 5-10 (43 chips: 34 real Argon + 9 script; ScarloxyPeople8#3 and ScarloxyPeople5#6 were removed after the user's review and left blank) were filtered from 48 Argon orders (43 passed the 12-frame harness) and about 30 script candidates by eye, a pixel-lock check on all 12 frames (face, skin and hands unchanged) and a nearest-chip distinctness check (at least 30 % different pixels); `selection.by: user-delegated-to-supervisor` in the roster; the user names the numbers to discard from `~/claude-viz/monster-people-chips-2.html`.
- Sheets 11-13 (22 chips, added 2026-10-17 at the user's decision after review of the char-gen gallery 4): **new sheets are combinations of existing Scarloxy characters' parts with colour shifts only** — the head rows (hair, hat, face) of one Scarloxy People1/People2 character are transplanted onto the body rows (clothes, arms, legs) of another, frame by frame, and hair/hat, top, bottom and shoe colours (and the eye colour, which follows the hair hue) are hue-shifted inside part masks. No model call, no newly drawn pixel; head donor and body donor per chip are recorded in `harness-data/charset-actor/scarloxy-people/gallery4.json` (`head`/`body`), the original recipes in `gallery4-recipes.json`, and the pixel hash of every installed chip in the roster (`source.slotRgbaSha256`). They passed a blind three-reviewer majority vote plus a set-level duplicate check before installation.
- No image-generation output and no pixel of any other game is used.
License: Scarloxy parts keep CC BY 4.0; the derived edits follow OPRN default-asset terms (free in games, no standalone redistribution; `openwiki/licensing.md`).

## Workshop character card sample (2026-10-22)

`workshop/char-gen-sample.png` (248×116, shown at 1× on the editor's 공방 「캐릭터」 card) is a composite of real char-gen output:
- Left, the base bust of the char-gen demo character "Harbor herbalist", reduced by an exact 1/7 block average (portrait drawn by an image model through the char-gen portrait step, then judged and picked; char-gen `docs/img/set-demo.png`).
- Right, front-facing walking frames (at 2×) of three char-gen chips (the herbalist, a travelling merchant, a harbor sailor). Each chip is a char-gen `edit.json` (written by Claude Opus) applied to a **Scarloxy People1** base chip (`scarloxy/scarloxy-charset-people1.png`) inside part masks; face, skin, hands and walk are pixel-locked to the base.
- Ground: a crop of `beodeul-ground/courtyard-native.png` at 2× (OPRN hand-pixel 버들항 courtyard).
- Upstream for the chip bodies: Scarloxy (Ismael Garcia), "Monster Taming Game Essentials" (MyPixelWorld Special Packs #01), https://scarloxy.itch.io/mpwsp01 — Creative Commons Attribution 4.0 International; changes were made (clothes, hair and hats recoloured/repainted).
License: Scarloxy parts keep CC BY 4.0; the rest follows OPRN default-asset terms (`openwiki/licensing.md`). The image-model portrait is AI-generated.

## Workshop generator stages (2026-10-22)

The editor's 공방 cards and generator windows show these as pixel "stages" (integer scaled):
- `workshop/char-gen-stage.png` (248×116) — `workshop/char-gen-sample.png` with the three chips removed (same ground and bust, same sources and license as above).
- `workshop/char-gen-walk.png` (192×192) — the same three char-gen chips' front walking frames (pattern 1·0·1·2, 2×), one row per chip; the card plays them in place. Same sources and license as the character card sample above (Scarloxy parts CC BY 4.0, changes made).
- `workshop/object-gen-stage.png` (124×62) — the three object-gen items of `workshop/object-gen-sample.png` (object-gen `docs/images/hero.png`, same organisation's art) with their card backing removed, standing on a wall and floor built from OPRN hand-pixel interior v5 tiles (`atlas-interior/interior-chipset.png`). OPRN default-asset terms (`openwiki/licensing.md`).
No image-generation output and no third-party art other than the Scarloxy chip bases noted above.
