# Open-source game integration register

Last reviewed: 2026-07-14

This file is the source of truth for third-party games shown inside Mahjong Hub. A public GitHub repository is not sufficient by itself: every entry must have an explicit license, a working browser build, compatible framing headers, and an attribution trail for bundled artwork.

## Approved

| Game | Repository | Hosted build | License | Integration | Review notes |
|---|---|---|---|---|---|
| Mah - Mahjong Solitaire | https://github.com/ffalt/mah | https://ffalt.github.io/mah/ | MIT for the main project; upstream credits list third-party asset licenses | `open-mahjong-solitaire.html` | Active project; 84 layouts, 13 tile sets, 37 languages, local saves. Hosted page returned no `X-Frame-Options` or CSP `frame-ancestors` restriction on 2026-07-14. Changelog includes an iframe-specific scrolling fix. Keep visible upstream and license attribution. |

## Reviewed but not integrated

| Project | Reason |
|---|---|
| `danbeck/green-mahjong` | Code is GPLv3, but artwork is CC-BY-NC and explicitly cannot be used in commercial products. This conflicts with the site's advertising and commerce plans. |
| `ScriptRaccoon/mahjong-solitaire` | App code is MIT, but the tile source is GPLv2. The license chain needs additional distribution and notice work, while the experience substantially overlaps the approved game. |
| `dmitriylogunov/mahjong` | Repository declares MIT, but the root license attribution and asset provenance are not sufficiently clear for production redistribution. It also duplicates the same classic solitaire slot. |
| GitHub repositories without a license | Not eligible. Public visibility permits viewing and forking on GitHub; it does not grant general rights to reproduce, distribute, or commercialize the game. |

## Operating rules

1. Recheck the hosted URL, response headers, repository license, and attribution files before each release.
2. Do not add advertising inside or over the embedded game surface.
3. Keep visible credit and direct links to the repository and license.
4. If the upstream page redirects, injects unrelated ads, or blocks framing, disable the card and use the full-screen upstream link as fallback.
5. Prefer self-developed games for daily challenges, progression, scores, and monetization. Treat external games as credited guest experiences.