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.
tid
Timestamp-based ID
Properties
coverArtUrl
string
uri
Optional
URL to cover art image.
maxLength: 3000 bytescreatedAt
string
datetime
Required
Record creation timestamp.
maxLength: 100 bytescurrency
string
Optional
ISO-4217 currency code. Phase 1 = USD only. INLINE sellability shape — keep in sync across sellable types.
maxLength: 3 bytesUSDdescription
string
Optional
Stems-group description.
maxLength: 5000 bytesmembers
array
of
object
Optional
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).
maxLength: 200 itemsparentTrack
string
at-uri
Optional
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).
maxLength: 3000 bytespriceCents
integer
Optional
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).
minimum: 0seller
string
did
Required
parties.seller (s39): the single account DID that owns and sells this stems group. Charge/entitlement read THIS field. INLINE — keep in sync.
title
string
Required
The stems-group name = the sold-product name buyers see (e.g. 'Midnight Drive — Stems').
maxLength: 300 bytesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"seller",
"createdAt"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300,
"description": "The stems-group name = the sold-product name buyers see (e.g. 'Midnight Drive — Stems')."
},
"seller": {
"type": "string",
"format": "did",
"description": "parties.seller (s39): the single account DID that owns and sells this stems group. Charge/entitlement read THIS field. INLINE — keep in sync."
},
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"uri"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"maxLength": 200,
"description": "CID of the member stem (pins to exact version). Optional."
},
"uri": {
"type": "string",
"format": "at-uri",
"maxLength": 3000,
"description": "AT URI of the member stem record."
},
"position": {
"type": "integer",
"minimum": 0,
"description": "Display order within the group (0-indexed)."
}
}
},
"maxLength": 200,
"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)."
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO-4217 currency code. Phase 1 = USD only. INLINE sellability shape — keep in sync across sellable types.",
"knownValues": [
"USD"
]
},
"createdAt": {
"type": "string",
"format": "datetime",
"maxLength": 100,
"description": "Record creation timestamp."
},
"priceCents": {
"type": "integer",
"minimum": 0,
"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)."
},
"coverArtUrl": {
"type": "string",
"format": "uri",
"maxLength": 3000,
"description": "URL to cover art image."
},
"description": {
"type": "string",
"maxLength": 5000,
"description": "Stems-group description."
},
"parentTrack": {
"type": "string",
"format": "at-uri",
"maxLength": 3000,
"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)."
}
}
},
"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."
}