am.noz.at.spl.item
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"equalSplit": {
"properties": {
"participants": {
"items": {
"format": "did",
"type": "string"
},
"maxLength": 250,
"minLength": 1,
"type": "array"
}
},
"required": [
"participants"
],
"type": "object"
},
"exactSplit": {
"properties": {
"allocations": {
"items": {
"ref": "lex:am.noz.at.spl.item#moneyAllocation",
"type": "ref"
},
"maxLength": 250,
"minLength": 1,
"type": "array"
}
},
"required": [
"allocations"
],
"type": "object"
},
"main": {
"description": "A line item belonging to one immutable expense revision.",
"key": "tid",
"record": {
"properties": {
"amountMinor": {
"description": "Exact signed amount in the parent expense's currency minor units. Negative values represent discounts.",
"type": "integer"
},
"category": {
"knownValues": [
"food",
"transport",
"accommodation",
"entertainment",
"groceries",
"utilities",
"shopping",
"tax",
"tip",
"discount",
"other"
],
"maxLength": 64,
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"expenseId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"itemId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"label": {
"maxGraphemes": 200,
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"owed": {
"description": "Canonical rounded minor-unit allocations. These, rather than recomputed percentages, drive balances.",
"items": {
"ref": "lex:am.noz.at.spl.item#moneyAllocation",
"type": "ref"
},
"maxLength": 250,
"minLength": 1,
"type": "array"
},
"quantityMilli": {
"description": "Optional quantity in thousandths, avoiding floating-point values.",
"minimum": 1,
"type": "integer"
},
"revisionId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"schemaVersion": {
"const": 1,
"type": "integer"
},
"splitRule": {
"closed": true,
"refs": [
"lex:am.noz.at.spl.item#equalSplit",
"lex:am.noz.at.spl.item#exactSplit",
"lex:am.noz.at.spl.item#percentSplit",
"lex:am.noz.at.spl.item#sharesSplit"
],
"type": "union"
}
},
"required": [
"schemaVersion",
"expenseId",
"revisionId",
"itemId",
"label",
"amountMinor",
"splitRule",
"owed",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"moneyAllocation": {
"properties": {
"amountMinor": {
"type": "integer"
},
"did": {
"format": "did",
"type": "string"
}
},
"required": [
"did",
"amountMinor"
],
"type": "object"
},
"percentAllocation": {
"properties": {
"did": {
"format": "did",
"type": "string"
},
"partsPerMillion": {
"maximum": 1000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"did",
"partsPerMillion"
],
"type": "object"
},
"percentSplit": {
"properties": {
"allocations": {
"items": {
"ref": "lex:am.noz.at.spl.item#percentAllocation",
"type": "ref"
},
"maxLength": 250,
"minLength": 1,
"type": "array"
}
},
"required": [
"allocations"
],
"type": "object"
},
"shareAllocation": {
"properties": {
"did": {
"format": "did",
"type": "string"
},
"shares": {
"maximum": 1000000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"did",
"shares"
],
"type": "object"
},
"sharesSplit": {
"properties": {
"allocations": {
"items": {
"ref": "lex:am.noz.at.spl.item#shareAllocation",
"type": "ref"
},
"maxLength": 250,
"minLength": 1,
"type": "array"
}
},
"required": [
"allocations"
],
"type": "object"
}
},
"id": "am.noz.at.spl.item",
"lexicon": 1
}
Metadata
- DID
-
did:plc:lmkzmvv6sdxntwtyxpg7fqqq - CID
-
bafyreihjmrpzdgz6ddmln4hpj5t7zahzrhomfqjlkxutdgjingtk2tm6ju - Indexed At
- 2026-08-29 22:23 UTC
- AT-URI
-
at://did:plc:lmkzmvv6sdxntwtyxpg7fqqq/com.atproto.lexicon.schema/am.noz.at.spl.item
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
am.noz.at.spl.expense record
An immutable expense revision header. Items are stored in am.noz.at.spl.item records with the same expenseId and revisionId.
-
am.noz.at.spl.defaultSplit record
A reusable split rule for a group or recurring expense.
-
am.noz.at.spl.recurring record
A recurring expense template. Occurrences are materialized as ordinary immutable expenses.