full diff

fm.freemix.group.stems

From
bafyreigknnmb6mqy3xoszv3xvgoqafgdm6ppdcl2b2slrqwc4xfyp4bjdi indexed 2026-07-26 20:07 UTC View this version
To
bafyreie3buvlrassadyjq7yq2mk7py66zneqopcbwji2wfuvwp2z62zy64 indexed 2026-09-29 18:38 UTC View this version

Compatibility

backward compatible No changes detected.

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
5 "description": "A stems group: a structural grouping of stems that is downloadable/sellable as a unit, independent of any release (FM-549 s38). First record under the net-new group.* segment (named group.stems, not group.stemsGroup — the segment already says 'group') (for sets that fit neither collection.* — the curatorial lens — nor release — the put-out work). Points DOWN at its member stems; the sold-product name lives here.",
5 "description": "A stems group: a structural grouping of stems that is downloadable/sellable as a unit, independent of any release (FM-549 s38). First record under the net-new group.* segment (named group.stems, not group.stemsGroup — the segment already says 'group') (for sets that fit neither collection.* — the curatorial lens — nor release — the put-out work). Points DOWN at its member stems; the sold-product name lives here. RELATIONSHIP TO fm.freemix.release: a release is a separate 'put-out work' wrapper that MAY include this record as one of its members; this record is the structural group itself, not the release.",
66 "key": "tid",
77 "record": {
88 "properties": {
99 "coverArtUrl": {
1010 "description": "URL to cover art image.",
1111 "format": "uri",
1212 "maxLength": 3000,
1313 "type": "string"
1414 },
1515 "createdAt": {
1616 "description": "Record creation timestamp.",
1717 "format": "datetime",
1818 "maxLength": 100,
1919 "type": "string"
2020 },
2121 "currency": {
2222 "description": "ISO-4217 currency code. Phase 1 = USD only. INLINE sellability shape — keep in sync across sellable types.",
2323 "knownValues": [
2424 "USD"
2525 ],
2626 "maxLength": 3,
2727 "type": "string"
2828 },
2929 "description": {
3030 "description": "Stems-group description.",
3131 "maxLength": 5000,
3232 "type": "string"
3333 },
3434 "members": {
3535 "description": "Ordered member stems (container points DOWN at members). AT-URI refs to fm.freemix.stem records. Stems also carry an optional parentGroup back-ref (the only upward ref).",
3636 "items": {
3737 "properties": {
3838 "cid": {
3939 "description": "CID of the member stem (pins to exact version). Optional.",
4040 "format": "cid",
4141 "maxLength": 200,
4242 "type": "string"
4343 },
4444 "position": {
4545 "description": "Display order within the group (0-indexed).",
4646 "minimum": 0,
4747 "type": "integer"
4848 },
4949 "uri": {
5050 "description": "AT URI of the member stem record.",
5151 "format": "at-uri",
5252 "maxLength": 3000,
5353 "type": "string"
5454 }
5555 },
5656 "required": [
5757 "uri"
5858 ],
5959 "type": "object"
6060 },
6161 "maxLength": 200,
6262 "type": "array"
6363 },
6464 "parentTrack": {
6565 "description": "AT URI of the track these stems derive from, when the group is the stems FOR a specific track (S1 upload scenario: track/remix uploaded with stems). Optional — absent for a standalone stems-only group (S2 scenario).",
6666 "format": "at-uri",
6767 "maxLength": 3000,
6868 "type": "string"
6969 },
7070 "priceCents": {
7171 "description": "On-network price in integer cents (FM-549: price on-network; offer public, sale private). 0 or absent = free. The bundle price: one price covers the whole stems group (no per-stem pricing — that's deferred, FM-546). Hard price floor enforced in app. INLINE sellability shape — authored identically in fm.freemix.release and fm.freemix.group.stemsGroup; keep in sync (s41).",
7272 "minimum": 0,
7373 "type": "integer"
7474 },
7575 "seller": {
7676 "description": "parties.seller (s39): the single account DID that owns and sells this stems group. Charge/entitlement read THIS field. INLINE — keep in sync.",
7777 "format": "did",
7878 "type": "string"
7979 },
8080 "title": {
8181 "description": "The stems-group name = the sold-product name buyers see (e.g. 'Midnight Drive — Stems').",
8282 "maxLength": 300,
8383 "type": "string"
8484 }
8585 },
8686 "required": [
8787 "title",
8888 "seller",
8989 "createdAt"
9090 ],
9191 "type": "object"
9292 },
9393 "type": "record"
9494 }
9595 },
9696 "id": "fm.freemix.group.stems",
9797 "lexicon": 1
9898}

Compare other versions