One sim's elicited ballot in a funding-mechanism run (S-Process, Quadratic Voting, …). Ballots are the public, replayable elicitation layer of a run: anyone can recompute the outcome by feeding a run's ballots through the mechanism's deterministic aggregator. The `payload` union carries the mechanism-specific ballot shape; new mechanisms extend the union without breaking existing readers. Written by the run initiator; the sim that cast the ballot is attributed via `simUri`. Fixed-point convention: fields ending in `Milli` store real numbers ×1000 (lexicons have no float type).
tid
Timestamp-based ID
Properties
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
gatheringUri
string
Required
Scope identifier: usually the AT-URI of an org.simocracy.gathering record; a sentinel string for built-in scopes (e.g. "ftc-sf:tower").
mechanism
string
Required
Versioned mechanism id that elicited this ballot, e.g. "s-process@1" or "quadratic-voting@1".
maxLength: 64 bytespayload
union
Required
Mechanism-specific ballot content.
round
integer
Optional
Deliberation round this ballot was cast in (0-based). Omitted for single-round runs.
minimum: 0run
string
Required
Run identifier this ballot belongs to. Matches the run's org.simocracy.history `hearingId` and the published decision's `runId`.
maxLength: 64 bytessimName
string
Optional
Display name of the sim at cast time (denormalised for cheap rendering).
maxLength: 200 bytessimUri
string
Required
AT-URI of the org.simocracy.sim that cast this ballot.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"run",
"mechanism",
"gatheringUri",
"simUri",
"payload",
"createdAt"
],
"properties": {
"run": {
"type": "string",
"maxLength": 64,
"description": "Run identifier this ballot belongs to. Matches the run's org.simocracy.history `hearingId` and the published decision's `runId`."
},
"round": {
"type": "integer",
"minimum": 0,
"description": "Deliberation round this ballot was cast in (0-based). Omitted for single-round runs."
},
"simUri": {
"type": "string",
"description": "AT-URI of the org.simocracy.sim that cast this ballot."
},
"payload": {
"refs": [
"#mvfBallot",
"#creditsBallot"
],
"type": "union",
"description": "Mechanism-specific ballot content."
},
"simName": {
"type": "string",
"maxLength": 200,
"description": "Display name of the sim at cast time (denormalised for cheap rendering)."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"mechanism": {
"type": "string",
"maxLength": 64,
"description": "Versioned mechanism id that elicited this ballot, e.g. \"s-process@1\" or \"quadratic-voting@1\"."
},
"gatheringUri": {
"type": "string",
"description": "Scope identifier: usually the AT-URI of an org.simocracy.gathering record; a sentinel string for built-in scopes (e.g. \"ftc-sf:tower\")."
}
}
},
"description": "One sim's elicited ballot in a funding-mechanism run (S-Process, Quadratic Voting, …). Ballots are the public, replayable elicitation layer of a run: anyone can recompute the outcome by feeding a run's ballots through the mechanism's deterministic aggregator. The `payload` union carries the mechanism-specific ballot shape; new mechanisms extend the union without breaking existing readers. Written by the run initiator; the sim that cast the ballot is attributed via `simUri`. Fixed-point convention: fields ending in `Milli` store real numbers ×1000 (lexicons have no float type)."
}