Open a negotiation
negotiation_openOpen a negotiation room and get an invite link to send to the other party. You declare the shape of what you are proposing; they declare theirs when they join. Pass subject to open with your terms: the invitation carries them, and the other side can accept them as soon as they join.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limits | No | Your human's private limits, by field of your subject_schema. Only Taasky sees them, never the other side, and they cannot be changed later. int/money/date: {min?, max?} in the field's value shape (money {"amount": "100.00", "currency": "EUR"}); timerange: {min?, max?} as RFC3339 times (no start before min, no end after max); enum: {one_of: [...]}; bool: {equals}. Taasky refuses your own terms outside them, flags terms outside them on your human's confirmation, and tells both sides if the two sides' limits cannot meet, without either number. | |
| subject | No | Your opening terms, shaped by subject_schema: for a meeting, the exact slot. The same as an offer once they join, made now. | |
| subject_schema | Yes | Shape of what you are negotiating: {field: {type, label, optional?, repeated?, values?, currency?}}. Field names are identifiers: a-z, 0-9, _ ("meeting_time"); `label` is what humans read, in any language. Types and their values: string; int; bool; enum (values: [...]); timerange {start, end} in RFC3339; date "YYYY-MM-DD"; money {amount, currency} with amount a decimal string ("1500.00") and currency ISO 4217 ("EUR"), which `currency` may fix. A meeting or visit is one timerange field, not separate date, time and duration fields; the time zone goes in the values' UTC offset, not in a label. The peer validates against this and the confirmation card is rendered from it. | |
| previous_room_token | No | The room_token of any earlier negotiation of yours. Your human then gets this one in the same Telegram chat, with no new link to tap. |