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": 1226231
}