Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ jobs:
persist-credentials: false
- name: Validate public-readiness contracts
run: bash tests/scripts/public-readiness-contract-tests.sh
- name: Validate MPL licensing contracts
run: bash tests/scripts/licensing-contract-tests.sh
- name: Validate website localization contracts
run: bash tests/scripts/website-localization-contract-tests.sh
- name: Validate public Wiki contracts
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Thank you for helping make HitTheKit more reliable, accessible, and useful.

Before participating, read the [Code of Conduct](CODE_OF_CONDUCT.md),
[support guide](SUPPORT.md), and [project governance](GOVERNANCE.md).
HitTheKit is intended to remain available under both an open-source GPL license
and a possible separate commercial-license path. That model requires clear
copyright permissions for every substantial contribution.
HitTheKit is intended to remain available under both the open-source MPL-2.0
Community license and a possible separate commercial-license path. That model
requires clear copyright permissions for every substantial contribution.

## Current contribution policy

Expand Down
2 changes: 1 addition & 1 deletion FUNDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ help without creating a recurring commitment:
accessibility, and focused development time a meaningful one-time boost.

Custom monthly and one-time support remains available through GitHub Sponsors.
Rewards are digital, low-maintenance, privacy-conscious and independent of GPL
Rewards are digital, low-maintenance, privacy-conscious and independent of MPL
rights. Sponsorship does not purchase guaranteed features, roadmap control,
private GoMyRO access, commercial-song rights or a commercial HitTheKit license.

Expand Down
1,047 changes: 373 additions & 674 deletions LICENSE

Large diffs are not rendered by default.

92 changes: 47 additions & 45 deletions LICENSING.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,68 @@
# HitTheKit Licensing

HitTheKit is intended to be available under a dual-licensing model.

This repository currently grants the Community license under version 3 of the
GNU General Public License. No project-specific "or any later version" grant
was found during the licensing audit, so the current grant is treated as
GPL-3.0-only. The complete, unmodified license text is in [`LICENSE`](LICENSE).
HitTheKit uses a dual-licensing model.

## Community license

The Community edition may be used, studied, modified, shared, and used
commercially under the GNU General Public License version 3, provided that the
applicable GPL obligations are respected.
Unless a file or directory says otherwise, original HitTheKit source code is
available under the [Mozilla Public License 2.0](LICENSE) (MPL-2.0).
Third-party components, Unity packages, generated engine material, trademarks,
and content retain their own terms; see
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md), [NOTICE](NOTICE), and
[TRADEMARKS.md](TRADEMARKS.md).

The MPL permits personal, educational, community, and commercial use. When
MPL-covered source files are modified and distributed, those covered files
must remain available under the MPL. A larger work may contain separate files
under other terms, provided the MPL requirements for covered files are met.
The full license text controls; this overview does not replace it.

## Unity players and other executable distributions

In particular, conveying modified or combined covered works may require
providing corresponding source code and licensing the covered work under the
GPL. Consult the full GPL text for the actual terms; this overview does not
replace it.
MPL-2.0 permits covered HitTheKit code to be distributed in a larger executable
under different terms while preserving recipients' rights to the MPL-covered
source. This removes the former GPL whole-work copyleft concern for a player
that incorporates the proprietary Unity Runtime.

It does not itself approve a particular binary release. Every macOS or Windows
candidate must still satisfy the applicable Unity terms, dependency notices,
asset and content rights, signing requirements, platform testing, and the
project release checklist. Unity and third-party technology are not relicensed
by HitTheKit.

## Commercial license

A separate commercial license may be available for organizations or
individuals that want to use HitTheKit under terms incompatible with the GPL,
including use within proprietary or closed-source products. Possible use cases
include:
A separate commercial license may be available to organizations or individuals
that need terms different from MPL-2.0, including:

- proprietary desktop or mobile applications;
- closed-source training platforms;
- commercial hardware integrations;
- bundled products;
- private-label or white-label distributions; and
- redistribution without GPL copyleft obligations for HitTheKit code.
- keeping modifications to MPL-covered HitTheKit files proprietary;
- proprietary hardware or software integrations;
- bundled, private-label, or white-label distribution; or
- separately negotiated support, warranty, or maintenance terms.

The commercial license is not automatically granted by this repository.
Commercial terms require a separate written agreement with a copyright holder
who has authority to license the relevant code. Such an agreement covers only
the rights that licensor controls; it does not replace licenses or commercial
terms for Unity or any other third-party component.
The commercial license is not automatically granted and is not required merely
because an activity generates revenue. It requires a separate written agreement
with a copyright holder authorized to license the relevant code. It cannot
replace Unity's terms or the licenses of third-party components.

## Personal, educational, and commercial use
## Existing GPL copies

Personal, educational, and community use is welcome under the GPL Community
license. No commercial license is required merely because an activity
generates revenue, provided that the use and any distribution comply with the
GPL.
Copies validly received under GPL-3.0-only before the MPL relicensing remain
available to their recipients under GPL-3.0-only. The MPL change does not revoke
rights already granted. A recipient must use the license offered for the exact
copy or version they received.

## Contributions

Contributions require separate governance rules so that the project can remain
eligible for dual licensing. See [`CONTRIBUTING.md`](CONTRIBUTING.md).
Future contribution terms must preserve a clear rights chain for both the MPL
Community edition and any separate commercial licensing. Until that mechanism
has been reviewed and adopted, follow [CONTRIBUTING.md](CONTRIBUTING.md).

## No trademark permission

The software license does not automatically grant permission to use the
HitTheKit name, logo, or branding to market a modified or competing product.
Trademark rights, if any, are separate from copyright licensing. See
[`TRADEMARKS.md`](TRADEMARKS.md).

## Contact

Commercial licensing inquiries: open a private inquiry with the copyright
holder. A dedicated contact address will be published later.
MPL-2.0 does not grant permission to use the HitTheKit name, logo, or branding
to market a modified or competing product. Truthful attribution remains
permitted. See [TRADEMARKS.md](TRADEMARKS.md).

This document is a project licensing overview, not legal advice and not a
substitute for the full GPL text or a signed commercial agreement.
substitute for the MPL text or a signed commercial agreement.
14 changes: 7 additions & 7 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ HitTheKit public source notice
Copyright (c) 2026 HitTheKit contributors and the respective rightsholders
identified in COPYRIGHT.md.

Original HitTheKit source code is made available under GPL-3.0-only. See
LICENSE. Third-party software and tools retain their own licenses and notices;
see THIRD_PARTY_NOTICES.md.
Unless stated otherwise, original HitTheKit source code is made available under
MPL-2.0. See LICENSE and LICENSING.md. Third-party software and tools retain
their own licenses and notices; see THIRD_PARTY_NOTICES.md.

This source repository contains no commercial recordings, stems, MIDI files,
lyrics, transcriptions, album artwork, or download links. Player-owned local
content is outside the repository and remains the player's responsibility.

The initial public publication is source-and-website only. No Unity player
binary is approved for public distribution. Unity-runtime redistribution and
the proposed separate commercial-license path remain subject to qualified
legal review and are not granted by this notice.
No Unity player binary is approved merely by this notice. Each binary candidate
must independently pass the Unity terms, dependency, provenance, signing,
platform-testing, and release gates. The proposed separate commercial-license
path requires a written agreement and is not granted by this notice.

HitTheKit is independent and is not sponsored, endorsed, certified by, or
affiliated with Unity Technologies, Apple Inc., or referenced hardware
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<p align="center">
<img alt="Version 0.5.0 pre-release" src="https://img.shields.io/badge/version-0.5.0--pre--release-ff4fa3">
<img alt="License GPL-3.0-only" src="https://img.shields.io/badge/license-GPL--3.0--only-2fe0ff">
<img alt="License MPL-2.0" src="https://img.shields.io/badge/license-MPL--2.0-2fe0ff">
<img alt="Unity 6" src="https://img.shields.io/badge/Unity-6000.5.6f1-ffffff">
<img alt="MIDI support macOS only" src="https://img.shields.io/badge/MIDI-macOS%20CoreMIDI-f6a623">
<a href="https://github.com/sponsors/Codewriter90x"><img alt="Sponsor HitTheKit" src="https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-EA4AAA?logo=githubsponsors&logoColor=white"></a>
Expand Down Expand Up @@ -176,8 +176,9 @@ hardware result, improve documentation or pick a
## Licensing and content boundary

Original project code is licensed under
[GPL-3.0-only](LICENSE). A possible separate commercial-license path is under
preparation and remains subject to legal review; see [LICENSING.md](LICENSING.md).
[MPL-2.0](LICENSE). A separate commercial-license path remains available only
through a written agreement; see [LICENSING.md](LICENSING.md). Existing copies
previously received under GPL-3.0-only retain those rights.

The public repository does not include commercial songs, recordings, charts,
lyrics or artwork. Third-party names describe compatibility only. HitTheKit is
Expand Down
4 changes: 2 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ documented, and represented honestly in the release notes.
reduced motion;
- publish screenshots, checksums, known limitations, and reproducible release
notes from the exact candidate commit; and
- complete professional review of GPL, Unity distribution, contribution, and
commercial-licensing terms.
- validate the MPL-based Unity distribution, contribution, and
commercial-licensing terms for the exact release candidate.

## Next: broader compatibility and confidence

Expand Down
4 changes: 2 additions & 2 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ provenance is recorded separately in

| Component | Version | Declared license or terms | Role | Redistributed by this repository? | Review status / action |
| --- | --- | --- | --- | --- | --- |
| Unity Editor and built-in Unity modules | Editor 6000.5.6f1; modules 1.0.0 | Unity Terms of Service and Unity Editor Software Terms | Authoring, compilation, runtime APIs | Editor and module source/binaries are not tracked; a future player build may contain Unity runtime components | **Legal review required:** confirm current plan eligibility, player redistribution, GPL interaction, and separate Unity permission for embedded systems. |
| Unity Editor and built-in Unity modules | Editor 6000.5.6f1; modules 1.0.0 | Unity Terms of Service and Unity Editor Software Terms | Authoring, compilation, runtime APIs | Editor and module source/binaries are not tracked; a future player build may contain Unity runtime components | Confirm current plan eligibility, player redistribution terms, required notices, and separate Unity permission for embedded systems for every candidate. MPL-2.0 does not relicense Unity. |
| Unity Test Framework | 1.7.0 | Unity Companion License v1.4 | EditMode and PlayMode testing | Package source is resolved by Unity Package Manager, not tracked or intended for player distribution | Preserve the package license and copyright notice if substantial package portions are redistributed. |
| Unity Custom NUnit (`com.unity.ext.nunit`) | 2.1.0, based on NUnit 3.5 | Unity Package Distribution License v2.1; bundled NUnit portions under MIT | Transitive Unity test dependency | Resolved by Unity Package Manager, not tracked or intended for player distribution | Preserve Unity package terms and the bundled NUnit MIT notice when applicable. |
| .NET SDK | 8.0.411 requested by `global.json` | MIT plus the distribution's third-party notices | Build tooling | No | Build tool only; follow the license and notices of the installed distribution. |
Expand All @@ -21,7 +21,7 @@ provenance is recorded separately in

## Verified sources

- GNU GPL version 3: <https://www.gnu.org/licenses/gpl-3.0.html>
- Mozilla Public License 2.0: <https://www.mozilla.org/MPL/2.0/>
- Unity terms: <https://unity.com/legal/terms-of-service>
- Unity Companion License: <https://unity.com/legal/licenses/unity-companion-license>
- Unity Package Distribution License:
Expand Down
6 changes: 3 additions & 3 deletions TRADEMARKS.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# HitTheKit Name and Branding

The GPL license for HitTheKit source code does not itself grant trademark
The MPL-2.0 license for HitTheKit source code does not itself grant trademark
rights in the HitTheKit name, logo, or other project branding. No claim that a
mark is registered is made here.

The GPL permits recipients to copy, modify, and distribute covered code under
MPL-2.0 permits recipients to copy, modify, and distribute covered code under
its terms. A fork may identify the code it came from in a truthful, descriptive
way, but should not imply sponsorship, endorsement, certification, or official
status that has not been granted.
Expand All @@ -14,7 +14,7 @@ brand for a modified, competing, private-label, or commercial product. Any
separate branding permission should be documented in writing.

This guidance is provisional and requires legal review. It does not restrict
the copyright permissions granted by the GPL.
the copyright permissions granted by MPL-2.0.

## Third-party names

Expand Down
3 changes: 2 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ without creating an unreviewed second source of truth.

- [Asset provenance](legal/ASSET_PROVENANCE.md)
- [Dual-licensing readiness report](legal/dual-licensing-readiness-report.md)
- [Dual-licensing decision record](governance/dual-licensing-decision.md)
- [MPL Community license decision](governance/mpl-community-license-decision.md)
- [Historical GPL dual-licensing proposal](governance/dual-licensing-decision.md)
- [Commercial-license draft](legal/COMMERCIAL-LICENSE-DRAFT.md)
- [Project governance](../GOVERNANCE.md)
- [License](../LICENSE)
Expand Down
4 changes: 3 additions & 1 deletion docs/development/macos-playtest-package.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ Build and package it with Unity `6000.5.6f1`:
The script builds the native plug-in, synchronizes Core, invokes the checked-in
Unity build method, embeds the arm64 plug-in, applies an ad-hoc signature,
verifies the bundle, and creates a resource-fork-safe ZIP under
`artifacts/game/`.
`artifacts/game/`. The application and ZIP include `Legal/` with the MPL text,
project and third-party notices, and `SOURCE-CODE.txt`, which identifies the
exact public Git revision corresponding to the build.

This playtest packaging is intentionally not a production distribution flow.
Unity gives the local build an ad-hoc signature, but downloading it on another
Expand Down
5 changes: 4 additions & 1 deletion docs/development/macos-signing-notarization.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ is the simpler and safer release procedure.
`build-macos-distribution-app.sh` builds the native arm64 CoreMIDI plug-in,
synchronizes the managed Core assembly, and asks Unity to create a non-
Development macOS player. The bundle identifier remains
`com.codewriter90x.hitthekit`.
`com.codewriter90x.hitthekit`. Before signing, it installs the MPL license,
project notice, third-party notices, licensing overview, and an exact-revision
`SOURCE-CODE.txt` under `Contents/Resources/Legal`. The final DMG exposes the
same `Legal/` directory at its top level.

`sign-macos-app.sh` signs a staged copy and replaces the input only after the
staged bundle passes strict verification. It signs every nested Mach-O first,
Expand Down
11 changes: 10 additions & 1 deletion docs/development/windows-playtest-package.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ Build and package with:

The script synchronizes the tested Core assembly, asks Unity for a clean
`StandaloneWindows64` player, rejects a package containing the CoreMIDI native
plug-in, adds player instructions, creates a ZIP, and prints its SHA-256.
plug-in, adds player instructions and a `Legal/` directory, creates a ZIP, and
prints its SHA-256. `Legal/SOURCE-CODE.txt` identifies the exact public Git
revision for the MPL-covered HitTheKit files in that executable distribution.
Generated output remains under the ignored `artifacts/game` directory.

The Windows player contains `HitTheKit.exe`, `HitTheKit_Data`, Unity runtime
Expand All @@ -41,6 +43,13 @@ test the exact ZIP on clean Windows 10 and Windows 11 machines:
6. confirm Device Setup states clearly that production MIDI is macOS-only; and
7. collect logs and screenshots without personal paths or third-party content.

## MIDI support

Installing Unity Windows Build Support enables player compilation only. It
does not provide production MIDI input. Windows electronic-drum support needs
a separately implemented and tested Windows MIDI backend; until then the
Windows player is keyboard-only.

## Signing and public distribution

The current script intentionally creates an **unsigned playtest**. It is not a
Expand Down
7 changes: 6 additions & 1 deletion docs/governance/dual-licensing-decision.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
# Dual-Licensing Decision Record

Status: `PROPOSED_PENDING_LEGAL_REVIEW`
Status: `SUPERSEDED_BY_MPL_COMMUNITY_LICENSE_DECISION`

Date: 2026-08-05

> Historical record. The project subsequently adopted MPL-2.0 as its Community
> license. See
> [MPL Community License Decision](mpl-community-license-decision.md). Existing
> GPL copies retain the rights already granted to their recipients.

## Decision

HitTheKit will preserve its Community edition under GNU General Public License
Expand Down
Loading
Loading