full diff

fm.freemix.license.grant

From
bafyreigs3f7a3erhwdg2mwjz6jf5xpttydrwgprv3ltwge2gzrlluibexm indexed 2026-06-13 06:29 UTC View this version
To
bafyreieaguassv3wh5xtnxlj7mgbqksaflz5ops3a5y5qnpwhsh5qfkaqm indexed 2026-10-05 21:43 UTC View this version

Compatibility

backward compatible Backward compatible. 2 non-breaking changes.

Non-breaking changes (2)
  • AddedVertex AddedVertex { vertex_id: "fm.freemix.license.grant#modifiers.shareAlikeStems" }
  • AddedEdge AddedEdge { src: "fm.freemix.license.grant#modifiers", tgt: "fm.freemix.license.grant#modifiers.shareAlikeStems", kind: "prop", name: Some("shareAlikeStems") }

Migration guidance

Added

  • AddedVertex { vertex_id: "fm.freemix.license.grant#modifiers.shareAlikeStems" }

Notes

  • Non-breaking: AddedEdge { src: "fm.freemix.license.grant#modifiers", tgt: "fm.freemix.license.grant#modifiers.shareAlikeStems", kind: "prop", name: Some("shareAlikeStems") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "grants": {
55 "description": "Machine-readable permissions granted by this license",
66 "properties": {
77 "aiTraining": {
88 "description": "Can use for AI/ML training",
99 "type": "boolean"
1010 },
1111 "commercialUse": {
1212 "description": "Commercial use allowed",
1313 "type": "boolean"
1414 },
1515 "djEdit": {
1616 "description": "Can create DJ edits (extended intros/outros, instrumentals)",
1717 "type": "boolean"
1818 },
1919 "djPerformance": {
2020 "description": "Public DJ performance allowed",
2121 "type": "boolean"
2222 },
2323 "mixDistribution": {
2424 "description": "Can distribute recorded mix",
2525 "type": "boolean"
2626 },
2727 "mixInclusion": {
2828 "description": "Can include in continuous DJ mix",
2929 "type": "boolean"
3030 },
3131 "redistribute": {
3232 "description": "Can redistribute full track",
3333 "type": "boolean"
3434 },
3535 "remix": {
3636 "description": "Can create remixes",
3737 "type": "boolean"
3838 },
3939 "sample": {
4040 "description": "Can sample portions",
4141 "type": "boolean"
4242 },
4343 "stemAccess": {
4444 "description": "Stems available for use",
4545 "type": "boolean"
4646 }
4747 },
4848 "required": [
4949 "remix",
5050 "sample",
5151 "redistribute",
5252 "commercialUse",
5353 "stemAccess",
5454 "djPerformance",
5555 "djEdit",
5656 "mixInclusion",
5757 "mixDistribution",
5858 "aiTraining"
5959 ],
6060 "type": "object"
6161 },
6262 "main": {
6363 "description": "A FreeMix license grant defining permissions for a track or stem",
6464 "key": "tid",
6565 "record": {
6666 "properties": {
6767 "createdAt": {
6868 "description": "Record creation timestamp",
6969 "format": "datetime",
7070 "maxLength": 100,
7171 "type": "string"
7272 },
7373 "grants": {
7474 "description": "Machine-readable permissions granted by this license",
7575 "ref": "#grants",
7676 "type": "ref"
7777 },
7878 "legalText": {
7979 "description": "URI to the full license legal text",
8080 "format": "uri",
8181 "maxLength": 3000,
8282 "type": "string"
8383 },
8484 "modifiers": {
8585 "description": "Optional license modifiers",
8686 "ref": "#modifiers",
8787 "type": "ref"
8888 },
8989 "requires": {
9090 "description": "Obligations required when using this content",
9191 "ref": "#requires",
9292 "type": "ref"
9393 },
9494 "restrictions": {
9595 "description": "Restrictions on use",
9696 "ref": "#restrictions",
9797 "type": "ref"
9898 },
9999 "tier": {
100100 "description": "License tier: open (public domain), remix (full rights), noncommercial (NC use), stems (stems for creative use), dj (DJ edits/performance), samples (sample packs, 0% royalty)",
101101 "knownValues": [
102102 "open",
103103 "remix",
104104 "noncommercial",
105105 "stems",
106106 "dj",
107107 "samples"
108108 ],
109109 "maxLength": 100,
110110 "type": "string"
111111 }
112112 },
113113 "required": [
114114 "tier",
115115 "modifiers",
116116 "grants",
117117 "requires",
118118 "restrictions",
119119 "createdAt"
120120 ],
121121 "type": "object"
122122 },
123123 "type": "record"
124124 },
125125 "modifiers": {
126126 "description": "License modifiers that can be combined with tiers",
127127 "properties": {
128128 "credit": {
129129 "default": false,
130130 "description": "Attribution required",
131131 "type": "boolean"
132132 },
133133 "mix": {
134134 "default": false,
135135 "description": "Inclusion in DJ mixes allowed",
136136 "type": "boolean"
137137 },
138138 "noAI": {
139139 "default": false,
140140 "description": "Excludes from AI/ML training",
141141 "type": "boolean"
142142 },
143143 "royaltyRate": {
144144 "description": "Royalty on derivative sales, in BASIS POINTS (x100 of percent): 250 = 2.5%, 500 = 5%, 10000 = 100%. FM-426: scaled to an integer because ATProto has no float type and creators may set fractional rates (e.g. 2.5%); matches the royalty_sales/royalty_legs bps convention. The human percent is rendered in the canonical license string (e.g. Royalty(2.5%)) and the DB licenseModifiers jsonb stays float percent — convert at this PDS-record boundary only. Not active until Phase 3 but recorded from day one.",
145145 "maximum": 10000,
146146 "minimum": 1,
147147 "type": "integer"
148148 },
149149 "shareAlike": {
150150 "default": false,
151151 "description": "Derivatives must carry a FreeMix license",
152152 "type": "boolean"
153 },
154 "shareAlikeStems": {
155 "default": false,
156 "description": "FM-464: strengthens shareAlike — Remix derivatives must also include stems. Requires shareAlike to also be true. Additive; existing records omit it (defaults false).",
157 "type": "boolean"
153158 }
154159 },
155160 "type": "object"
156161 },
157162 "requires": {
158163 "description": "Obligations required when using this content",
159164 "properties": {
160165 "attribution": {
161166 "description": "Must credit original creator",
162167 "type": "boolean"
163168 },
164169 "attributionCascade": {
165170 "description": "Attribution required through full remix chain",
166171 "type": "boolean"
167172 },
168173 "negotiateCommercial": {
169174 "description": "Commercial use requires separate agreement",
170175 "type": "boolean"
171176 },
172177 "royalty": {
173178 "description": "Royalty payment required on derivative sales (rate specified in modifiers.royaltyRate)",
174179 "type": "boolean"
175180 },
176181 "shareAlike": {
177182 "description": "Derivatives must carry FreeMix license",
178183 "type": "boolean"
179184 },
180185 "tracklist": {
181186 "description": "Mixes must include timestamped tracklist",
182187 "type": "boolean"
183188 }
184189 },
185190 "required": [
186191 "attribution",
187192 "attributionCascade",
188193 "tracklist",
189194 "royalty",
190195 "shareAlike",
191196 "negotiateCommercial"
192197 ],
193198 "type": "object"
194199 },
195200 "restrictions": {
196201 "description": "Restrictions on use",
197202 "properties": {
198203 "noAiTraining": {
199204 "description": "Cannot use for AI/ML training",
200205 "type": "boolean"
201206 },
202207 "noFullTrackRedistribution": {
203208 "description": "Cannot redistribute full track (StemsOnly, DJ)",
204209 "type": "boolean"
205210 },
206211 "noSourceRedistribution": {
207212 "description": "Cannot redistribute source files (DJ)",
208213 "type": "boolean"
209214 },
210215 "nonCommercialOnly": {
211216 "description": "Only non-commercial use (NonCommercial)",
212217 "type": "boolean"
213218 }
214219 },
215220 "required": [
216221 "noFullTrackRedistribution",
217222 "noSourceRedistribution",
218223 "nonCommercialOnly",
219224 "noAiTraining"
220225 ],
221226 "type": "object"
222227 }
223228 },
224229 "id": "fm.freemix.license.grant",
225230 "lexicon": 1
226231}

Compare other versions