UmweltDocs
Reference/Commands/transmit
transmitcommandsince 0.1

One holder tells another something they hold, honestly or deceptively.

Request
umwelt call story.umw transmit '{
  "projectId": "ball",
  "attemptId": "lie",
  "from": "bob",
  "to": "duchess",
  "sourceRecordId": "bob-did",
  "intent": "deceptive",
  "distortedClaim": {
    "subject": "bob",
    "predicate": "stole",
    "object": { "kind": "entity", "id": "necklace" },
    "polarity": false
  },
  "attitude": "believes",
  "confidence": 0.8,
  "position": { "tick": 3 },
  "recordId": "duchess-told"
}'
Request
const result = await client.transmit({
  projectId: 'ball',
  attemptId: 'lie',
  from: 'bob',
  to: 'duchess',
  sourceRecordId: 'bob-did',
  intent: 'deceptive',
  distortedClaim: {
    subject: 'bob',
    predicate: 'stole',
    object: { kind: 'entity', id: 'necklace' },
    polarity: false,
  },
  attitude: 'believes',
  confidence: 0.8,
  position: { tick: 3 },
  recordId: 'duchess-told',
});
Request
var result = engine.Transmit(new TransmitInput
{
    ProjectId = "ball",
    AttemptId = "lie",
    From = "bob",
    To = "duchess",
    SourceRecordId = "bob-did",
    Intent = Intent.Deceptive,
    DistortedClaim = new Claim
    {
        Subject = "bob",
        Predicate = "stole",
        Object = new ClaimObject.Entity { Id = "necklace" },
        Polarity = false,
    },
    Attitude = Attitude.Believes,
    Confidence = 0.8,
    Position = new Position { Tick = 3 },
    RecordId = "duchess-told",
});
Response
{
  "eventId": "01a1cbd8-63e1-79d0-b8d5-e4ba0f31c843",
  "recordIds": ["duchess-told"],
  "transitionIds": [],
  "version": 4,
  "warnings": []
}

Payload

FieldTypeDescription
projectIdrequiredstringThe project to write to.
attemptIdrequiredstringMakes a retry safe: the same request with the same attempt id is applied once.
fromrequiredstringWho tells.
torequiredstringWho is told.
sourceRecordIdrequiredstringThe teller’s own Holding being told. It must be active at position.
intentrequired"honest" | "deceptive" | "unknown"honest, deceptive or unknown. The engine records it; it decides nothing.
distortedClaimClaimWhat the recipient is told, when it differs from the source: a lie, a rumour gone wrong.
attitude"knows" | "believes" | "suspects" | "remembers"default "believes"How the recipient holds it.
confidencerequirednumberThe recipient’s confidence, between 0 and 1.
positionrequiredPositionWhere the generated event stands on the main axis: { "tick": n }.
recordIdstringThe id of the recipient’s new Holding. Generated when absent.
onobjectPositions of the generated event on additional axes, such as { "reading": 12 }.
textstringWhat was said, in words, for search.
timelineIdstringdefault "main"The timeline to write to.

Result

FieldTypeDescription
eventIdalwaysstringThe event written, with the id given or generated.
recordIdsalwaysstring[]The records written, in order.
transitionIdsalwaysstring[]The transitions written, in order.
versionalwaysintegerThe version this commit received. Reads at an earlier asOfVersion do not see it.
warningsWarning[]UNKNOWN_PREDICATE (open vocabulary) or SECRET_BREACH. Warnings never block a write.

Rules

One commit, built for you. An event of type umwelt:transmit and the recipient’s Holding, acquired told-by the teller with the source record, so trace can follow the chain.

A lie is a valid belief. The recipient holds what they were told, even when canon says otherwise; contradictions reports it.

Secrets are never blocked. Telling a secret outside its circle succeeds with the warning SECRET_BREACH, listed by breaches.

The intent stays with the narrator. Whether a telling was honest is not something the recipient knows. Reads made for a holder (perspective, holdings, compare, and search with a holder) show the acquisition with intent: "unknown"; record, trace and breaches show what was recorded. Build a character’s prompt from the first kind, never from the second.

Errors

VALIDATION_FAILEDThe payload is malformed, the source is not a Holding of from, or it is not active at position.
NOT_FOUNDThe project, a holder, the source record or the timeline does not exist.
CONFLICTThe attemptId was already used with a different request.
INVALID_STATEThe timeline is a draft that was promoted or discarded, and accepts no more writes.
HANDSHAKE_REQUIREDOver the protocol, hello was not sent first.

Every code is listed in Errors.

See also

Was this page helpful?