# Asset Licenses & Provenance

Mancala Bloom ships only assets that are original, generated for this project, or licensed under a permissive license that allows redistribution. No unlicensed Megascans/Fab content is included.

## Surface scans — ambientCG (CC0 1.0 Universal)

ambientCG publishes its PBR materials under CC0. The following sets were downloaded as 2K/4K JPG packages and imported into `/Game/Textures/*`.

| Asset ID | Use in game | Resolution | Source | License |
|---|---|---|---|---|
| `Wood051` | Carved board, spine | 4K | https://ambientcg.com/a/Wood051 | CC0 |
| `Marble023` | Plinth, stone accents | 2K | https://ambientcg.com/a/Marble023 | CC0 |
| `Metal048A` | Brass/gold inlay and trim | 2K | https://ambientcg.com/a/Metal048A | CC0 |
| `Fabric061` | Velvet pit/store liners | 2K | https://ambientcg.com/a/Fabric061 | CC0 |
| `Concrete035` | Ritual chamber floor | 2K | https://ambientcg.com/a/Concrete035 | CC0 |

CC0 text: https://creativecommons.org/publicdomain/zero/1.0/

## HDRI — Poly Haven (CC0)

| Asset | Use | Resolution | Source | License |
|---|---|---|---|---|
| `dikhololo_night` | Star field / night sky HDRI, sky light cubemap | 2K HDR | https://polyhaven.com/a/dikhololo_night | CC0 |

A tone-mapped equirectangular derivative (`T_Sky_Equirect`) is generated from the HDR for the sky dome material. The original HDR is imported as a TextureCube for the SkyLight.

## Typefaces — Google Fonts (SIL Open Font License 1.1)

| Font | Use | Source | License |
|---|---|---|---|
| Orbitron (variable) | Display/title type | https://fonts.google.com/specimen/Orbitron | OFL 1.1 |
| Rajdhani (Bold/SemiBold/Medium/Regular) | UI and body type | https://fonts.google.com/specimen/Rajdhani | OFL 1.1 |

OFL license texts: `RawAssets/fonts/OFL.txt` (Rajdhani) and the Orbitron OFL text from the same Google Fonts directory.

## Original assets generated for this project

| Asset | Authoring method | Files |
|---|---|---|
| Carved board, trim, runes, liners, plinth, ritual ring, monoliths, planet, planet ring, bead, spark, glint, highlight ring, store glow | Blender Python procedural modelling (`Tools/build_meshes.py`) | `RawAssets/meshes/*.fbx`, `/Game/Meshes/*` |
| Wood/stone/gold/fabric/glass/neon/particle/sky/planet material graphs and material instances | Unreal Python material authoring (`Tools/build_assets.py`) | `/Game/Materials/*` |
| UI icon set, logo mark, glow/ring/gradient/noise/vignette/hex textures, planet albedo | PIL generation (`Tools/build_ui_textures.py`) | `/Game/Textures/UI/*` |
| 120 BPM adaptive score, capture/UI SFX | Procedural C++ synthesizer, composed per-frame (`UMancalaSynth`) | `Source/MancalaBloom/MancalaSynth.*` |
| Gameplay, AI, UI, checkpoints, daily seeding, trailer direction | Original C++ | `Source/MancalaBloom/*` |

## Megascans / Fab status

The brief called for real Megascans/Fab assets. The build environment had no Epic/Fab account entitlement, and Fab's asset endpoints are behind an authenticated, Cloudflare-protected session. Rather than ship unlicensed rips or obvious placeholder checkerboards, the project uses a complete, redistributable library of real scan-derived PBR materials and a real photographic HDRI.

If a Megascans/Fab license is later available:
1. Import the new textures/meshes through `Tools/build_assets.py` (or the Unreal Content Browser).
2. Point the corresponding `MI_*` material instances at the new texture parameters.
3. Re-run the asset pipeline and cook.

No gameplay code changes are required; material slots and asset paths are centralized in `Tools/build_assets.py` and `AMancalaBoardActor`.

## Third-party engine content

The build references basic engine shapes (`/Engine/BasicShapes/Sphere`, `Plane`) and engine fonts only as fallbacks. No paid Marketplace/Fab content is redistributed.
