Skip to content

Problem.voted

Emitted each time a Problem is voted.

Problem.vote emits Problem.voted when it completes on a Problem.

PropertyValue
Emitted byProblem.vote
NounProblem
WakesNone.

Payload

Each delivery is an Event record. data holds what Problem.vote returns.

FieldTypeRequiredDescription
namestringrequiredProblem.voted.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.problemProblemrequiredThe Problem, with the vote counted.
data.problem.statementtextrequiredThe struggle, in the words of the ICP.
data.problem.costPerPeriodjsonWhat the Problem costs the ICP per period: hours times wage, or the spend on what they hire today.
data.problem.addressjsonThe opportunity map cell it sits on: an occupation, a task it performs, and an industry.
data.problem.momenttextThe moment the job starts, with the observable trigger that marks it.
data.problem.progresstextThe progress the ICP wants, from the state before to the state after.
data.problem.hiredTodayjsonWhat the ICP hires for the job today, by kind and cost: software, a Service, their own hands, or nothing.

Example

JSON
{
  "$id": "https://api.sb/leaseline.app/events/evt_gdsloSZcL7",
  "$type": "Event",
  "name": "Problem.voted",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "problem": {
      "$id": "https://api.sb/leaseline.app/problems/problem_UzvXXfKsJB",
      "$type": "Problem",
      "statement": "Tracks lease renewals for small property managers.",
      "costPerPeriod": {},
      "address": {},
      "moment": "Example moment",
      "progress": "Example progress",
      "hiredToday": {}
    }
  },
  "seq": 1890
}