login
quiescence.eu
Skip to content

Capability reference

Every kind of real-world task that can be delegated, with the exact JSON Schema its spec must satisfy, what evidence comes back, how long it takes and what it costs. Generated from the live catalogue on every request.

Generated from the live catalogue — the same rows the API, the MCP tool schemas and the website read. There is no second copy of this table to go stale.

CapabilityWhat it isNeeds a placeExpected workFrom (net)What the price covers
human.callCall a business and get a documented answerno20 min€19.00One call to one number, up to 5 questions.
human.translateNative-speaker review of ambiguous contentno30 min€29.00Up to 5,000 characters of text — roughly 800 words, or two pages.
human.observeLook at a place and report what is true right nowyes45 min€39.00One place, one question, one visit.
human.visitAttend a location and report against a briefyes60 min€49.00One address, up to 15 checklist points.
human.photographPhotograph something, with provenanceyes50 min€39.00One subject at one address, up to 10 specified shots.
human.videoRecord a walk-through videoyes60 min€49.00One subject at one address, up to 600 seconds of video.
human.measureTake physical measurementsyes60 min€49.00One subject at one address, up to 12 measurements.
human.verifyConfirm a fact in the real worldyes60 min€49.00One claim about one subject, up to 8 supporting measurements.
human.testUse a real-world service and reportyes70 min€59.00One service at one address, up to 12 recorded steps.
human.collectObtain a public document in personyes90 min€79.00One document from one office. Official fees are paid on your behalf and charged at cost, with no VAT of ours on top.
human.inspectInspect the condition of a product, premises or assetyes90 min€89.00One asset at one address, up to 25 inspection criteria.
human.auditStructured retail or compliance audityes120 min€149.00One site, up to 60 protocol points.
human.interviewConduct a structured interview to a scriptno90 min€109.00One respondent, up to 30 scripted questions.
human.attendAttend an event or appointment and reportyes180 min€149.00One event at one address, up to 180 minutes. Admission is paid on your behalf and charged at cost, with no VAT of ours on top.
human.purchaseMake a purchase and return the evidenceyes75 min€59.00One item from one vendor. The item is paid for on your behalf and charged at cost, with no VAT of ours on top.
human.deliverCollect or deliver something locally, with proofyes60 min€49.00One item, one collection address, one delivery address.
human.signA presence-requiring act by a qualified professionalyes90 min€229.00One act in one jurisdiction, by a qualified professional.

Prices are NET of VAT and are the "standard" tier. Faster tiers multiply it: standard ×1, priority ×2, urgent ×4, premium ×7.5.

What a price covers

Every capability declares the scope its price includes, and the limit is the one the input schema enforces — not a separate promise that can drift from it. Fetch it from scope on the capabilities endpoint; a build asserts the published sentence and the schema agree.

An order outside the scope is **refused with the limit named**, before any money moves. It is never accepted and quietly re-scoped, and it is never accepted and absorbed.

Money we spend on your behalf

Three capabilities can pay something for you — an official fee (human.collect), an admission ticket (human.attend), or an item (human.purchase). **There is no ceiling on the amount.** You name a budget in the spec, and you pay it at checkout along with the fee.

What you are charged has two parts, and they are taxed differently:

PartVAT
Our fee for the taskNet, plus VAT per your place of supply
The purchase budget**None from us.** The vendor already charged VAT on that sale; adding ours would tax it twice

Both parts appear as separate lines on your invoice, and the disbursement line carries its own legend saying what it is. The split is not cosmetic — the VAT is computed on the fee alone, before the purchase amount is added, so merging them is not something a rounding change could do by accident.

What happens to the budget

Three rules, and each is enforced at the only moment it can be:

CaseWhat happens
The real cost is **within** your budgetThe difference is **reimbursed after the task ends** — not during, because the worker may still have something left to buy
The real cost **exceeds** your budget**The purchase is not made.** The system refuses to record an over-budget spend, so nobody is left out of pocket and nothing becomes a debt argued about later. We come back to you for a higher budget
You **withdraw** from the purchase within 14 daysYou are reimbursed **for the goods**. The fee stands, because the task was performed; and the return is a new action with its own price

The withdrawal case is worth reading twice. Somebody went, bought the thing and came back — that service happened and is not undone by a change of mind about the item. So the fee is not refunded, returning the item is charged as the work it is, and what comes back is the money paid for the goods.

What the person performing the task is paid

This is a matter between Quiescence and its suppliers rather than part of what you are buying, so it appears here once and nowhere else. Task fees are sized from a reference rate of €30.00 per hour of expected effort. **Nobody is paid by the hour** — a supplier accepts a fixed fee for a defined result, quoted per task and shown to them before they accept it. The reference rate exists so those fees are sized consistently.

It used to appear beside every price, in the API, on the pricing table and on each capability page. That made HumanOps read as a labour marketplace with a rate card, which is not what it is and not what the supplier terms say. See contracts/worker-es-1.0.md §4.

The schemas

Every capability declares a JSON Schema for its spec and one for its answer. Fetch them rather than transcribing them — they are what validation actually runs against, and a schema_violation names the failing path.

curl -s https://quiescence.eu/humanops/api/v1/capabilities | jq '.data.capabilities[] | {capability, input_schema}'

# or one of them
curl -s https://quiescence.eu/humanops/api/v1/capabilities/human.verify

human.call — Call a business and get a documented answer

A person phones the number, asks your question, and returns the answer with a recording or transcript.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Call a business and get a documented answer",
        "properties": {
            "target": {
                "type": "string",
                "description": "Who to call — business name, and the number if you have it.",
                "maxLength": 200
            },
            "phone": {
                "type": "string",
                "description": "Phone number in E.164 if known.",
                "maxLength": 24
            },
            "objective": {
                "type": "string",
                "description": "The single question to get answered. Be specific and answerable in one call.",
                "maxLength": 500
            },
            "questions": {
                "type": "array",
                "description": "Additional questions, in priority order.",
                "maxItems": 5,
                "items": {
                    "type": "string",
                    "maxLength": 200
                }
            },
            "language": {
                "type": "string",
                "description": "ISO 639-1 language to conduct the call in.",
                "maxLength": 8
            },
            "identify_as": {
                "type": "string",
                "enum": [
                    "member_of_public",
                    "researcher"
                ],
                "description": "How the caller introduces themselves. Impersonating anyone else is refused."
            }
        },
        "required": [
            "target",
            "objective"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "answered": {
                "type": "boolean",
                "description": "Was the question actually answered."
            },
            "answer": {
                "type": "string",
                "description": "The answer in the respondent's terms.",
                "maxLength": 500
            },
            "extra": {
                "type": "object",
                "description": "Answers to the additional questions, keyed by question."
            },
            "spoke_with": {
                "type": "string",
                "description": "Role of the person, never their name.",
                "maxLength": 120
            },
            "called_at": {
                "type": "string",
                "format": "date-time"
            },
            "attempts": {
                "type": "integer"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 0× audio, 1× statement.

human.translate — Native-speaker review of ambiguous content

A native speaker reads the content in context and tells you what it actually means, including what a machine translation missed.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Native-speaker review of ambiguous content",
        "properties": {
            "text": {
                "type": "string",
                "description": "The content to review.",
                "maxLength": 5000
            },
            "source_language": {
                "type": "string",
                "description": "ISO 639-1.",
                "maxLength": 8
            },
            "target_language": {
                "type": "string",
                "description": "ISO 639-1.",
                "maxLength": 8
            },
            "question": {
                "type": "string",
                "description": "What you actually need to know about it.",
                "maxLength": 500
            },
            "context": {
                "type": "string",
                "description": "Where this text came from and why it matters.",
                "maxLength": 500
            }
        },
        "required": [
            "text",
            "target_language",
            "question"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "translation": {
                "type": "string",
                "description": "Faithful translation.",
                "maxLength": 5000
            },
            "answer": {
                "type": "string",
                "description": "The answer to your question.",
                "maxLength": 500
            },
            "ambiguities": {
                "type": "array",
                "items": {
                    "type": "string",
                    "maxLength": 300
                },
                "description": "What is genuinely ambiguous in the original."
            },
            "register": {
                "type": "string",
                "description": "Formality, tone, regional markers.",
                "maxLength": 200
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× statement.

human.observe — Look at a place and report what is true right now

Is it open, is it busy, is the sign still there. A person goes and looks.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Look at a place and report what is true right now",
        "properties": {
            "place": {
                "type": "string",
                "description": "Name of the place.",
                "maxLength": 200
            },
            "address": {
                "type": "string",
                "description": "Street address.",
                "maxLength": 300
            },
            "question": {
                "type": "string",
                "description": "The single thing to establish by looking.",
                "maxLength": 500
            },
            "observe_at": {
                "type": "string",
                "format": "date-time",
                "description": "Observe at this moment, if timing matters."
            }
        },
        "required": [
            "place",
            "question"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "answer": {
                "type": "string",
                "description": "What was observed.",
                "maxLength": 500
            },
            "open": {
                "type": [
                    "boolean",
                    "null"
                ]
            },
            "observed_at": {
                "type": "string",
                "format": "date-time"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× photo, 1× statement.

human.visit — Attend a location and report against a brief

A verified person goes to the address and works through your checklist on site.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Attend a location and report against a brief",
        "properties": {
            "place": {
                "type": "string",
                "description": "Name of the place.",
                "maxLength": 200
            },
            "address": {
                "type": "string",
                "description": "Street address.",
                "maxLength": 300
            },
            "brief": {
                "type": "string",
                "description": "What to do and look for, in order.",
                "maxLength": 2000
            },
            "checklist": {
                "type": "array",
                "maxItems": 15,
                "items": {
                    "type": "string",
                    "maxLength": 200
                },
                "description": "Points to confirm one by one."
            }
        },
        "required": [
            "place",
            "brief"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "summary": {
                "type": "string",
                "description": "What happened.",
                "maxLength": 2000
            },
            "checklist_results": {
                "type": "array",
                "items": {
                    "type": "object"
                },
                "description": "One {point, result, note} per checklist entry."
            },
            "visited_at": {
                "type": "string",
                "format": "date-time"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 2× photo, 1× statement.

human.photograph — Photograph something, with provenance

Documented imagery with GPS, capture time and integrity hashes — not a picture off the internet.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Photograph something, with provenance",
        "properties": {
            "subject": {
                "type": "string",
                "description": "What to photograph.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it is.",
                "maxLength": 300
            },
            "shots": {
                "type": "array",
                "maxItems": 10,
                "items": {
                    "type": "string",
                    "maxLength": 200
                },
                "description": "One framing instruction per required photograph."
            },
            "avoid": {
                "type": "string",
                "description": "Anything that must not be in frame. Faces and plates are blurred regardless.",
                "maxLength": 300
            }
        },
        "required": [
            "subject",
            "shots"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "captured": {
                "type": "integer",
                "description": "How many of the requested shots were obtained."
            },
            "notes": {
                "type": "string",
                "description": "Anything that prevented a shot.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 2× photo, 1× statement.

human.video — Record a walk-through video

Continuous video evidence of a place or process, with provenance.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Record a walk-through video",
        "properties": {
            "subject": {
                "type": "string",
                "description": "What to record.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it is.",
                "maxLength": 300
            },
            "route": {
                "type": "string",
                "description": "The path or sequence to follow while recording.",
                "maxLength": 1000
            },
            "max_seconds": {
                "type": "integer",
                "minimum": 10,
                "maximum": 600
            }
        },
        "required": [
            "subject",
            "route"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "seconds": {
                "type": "integer"
            },
            "notes": {
                "type": "string",
                "description": "Anything the route could not cover.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× video, 1× statement.

human.measure — Take physical measurements

Numbers you can rely on, each backed by a photograph of the measurement being taken.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Take physical measurements",
        "properties": {
            "subject": {
                "type": "string",
                "description": "What to measure.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it is.",
                "maxLength": 300
            },
            "measurements": {
                "type": "array",
                "maxItems": 12,
                "minItems": 1,
                "items": {
                    "type": "object",
                    "description": "{name, unit, how} — what to measure, in what unit, measured how."
                },
                "description": "Each becomes a required numeric field on the worker's form."
            }
        },
        "required": [
            "subject",
            "measurements"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "values": {
                "type": "object",
                "description": "One numeric value per requested measurement, keyed by name."
            },
            "method_notes": {
                "type": "string",
                "description": "How each was taken, and any that could not be.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× photo, 1× reading, 1× statement.

human.verify — Confirm a fact in the real world

You have a claim you cannot check from the internet. A verified person establishes whether it is true and returns the evidence and a confidence score.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Confirm a fact in the real world",
        "properties": {
            "claim": {
                "type": "string",
                "description": "The claim to test, stated so that it can be true or false.",
                "maxLength": 500
            },
            "subject": {
                "type": "string",
                "description": "The business, place or object it is about.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where to go.",
                "maxLength": 300
            },
            "measurements": {
                "type": "array",
                "maxItems": 8,
                "items": {
                    "type": "string",
                    "maxLength": 120
                },
                "description": "Any figures that would settle it."
            },
            "accept_if": {
                "type": "string",
                "description": "What would count as confirming it.",
                "maxLength": 500
            }
        },
        "required": [
            "claim",
            "subject"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "verified": {
                "type": [
                    "boolean",
                    "null"
                ],
                "description": "true, false, or null when it genuinely could not be determined."
            },
            "determinable": {
                "type": "boolean"
            },
            "finding": {
                "type": "string",
                "description": "What was established, in plain terms.",
                "maxLength": 1000
            },
            "values": {
                "type": "object",
                "description": "Any requested measurements."
            },
            "verified_at": {
                "type": "string",
                "format": "date-time"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 2× photo, 1× statement.

human.test — Use a real-world service and report

Someone goes through the process as a real customer would and tells you what actually happens.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Use a real-world service and report",
        "properties": {
            "service": {
                "type": "string",
                "description": "The service to test.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where, or a URL for an online step.",
                "maxLength": 300
            },
            "scenario": {
                "type": "string",
                "description": "The scenario to follow, step by step.",
                "maxLength": 2000
            },
            "record": {
                "type": "array",
                "maxItems": 12,
                "items": {
                    "type": "string",
                    "maxLength": 200
                },
                "description": "What to note at each step."
            }
        },
        "required": [
            "service",
            "scenario"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "completed": {
                "type": "boolean"
            },
            "steps": {
                "type": "array",
                "items": {
                    "type": "object"
                },
                "description": "One {step, outcome, seconds, note} per step."
            },
            "friction": {
                "type": "array",
                "items": {
                    "type": "string",
                    "maxLength": 300
                }
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× photo, 1× statement.

human.collect — Obtain a public document in person

A registry extract, a certificate, a public record — collected in person where no online route exists.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Obtain a public document in person",
        "properties": {
            "document": {
                "type": "string",
                "description": "Exactly which document is needed.",
                "maxLength": 300
            },
            "office": {
                "type": "string",
                "description": "Which office issues it.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where that office is.",
                "maxLength": 300
            },
            "reference": {
                "type": "string",
                "description": "Any reference, file or entity number required to request it.",
                "maxLength": 200
            },
            "fee_ceiling_cents": {
                "type": "integer",
                "minimum": 0,
                "description": "Maximum official fee to pay on your behalf; charged at cost."
            }
        },
        "required": [
            "document",
            "office"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "obtained": {
                "type": "boolean"
            },
            "document_type": {
                "type": "string",
                "description": "What was actually issued.",
                "maxLength": 200
            },
            "issued_at": {
                "type": "string",
                "format": "date-time"
            },
            "fee_paid_cents": {
                "type": "integer"
            },
            "refusal_reason": {
                "type": "string",
                "description": "If it could not be obtained, why.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× document, 1× statement.

human.inspect — Inspect the condition of a product, premises or asset

A structured condition report with photographic evidence against your criteria.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Inspect the condition of a product, premises or asset",
        "properties": {
            "asset": {
                "type": "string",
                "description": "What is being inspected.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it is.",
                "maxLength": 300
            },
            "criteria": {
                "type": "array",
                "minItems": 1,
                "maxItems": 25,
                "items": {
                    "type": "string",
                    "maxLength": 300
                },
                "description": "Each becomes a scored line in the report."
            },
            "standard": {
                "type": "string",
                "description": "Any standard or grading scale to assess against.",
                "maxLength": 300
            }
        },
        "required": [
            "asset",
            "criteria"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "overall": {
                "type": "string",
                "enum": [
                    "good",
                    "acceptable",
                    "poor",
                    "unusable",
                    "undetermined"
                ]
            },
            "findings": {
                "type": "array",
                "items": {
                    "type": "object"
                },
                "description": "One {criterion, rating, note, photo_ref} per criterion."
            },
            "defects": {
                "type": "array",
                "items": {
                    "type": "string",
                    "maxLength": 300
                }
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 4× photo, 1× statement.

human.audit — Structured retail or compliance audit

A trained auditor works a defined protocol on site and returns scored, comparable results.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Structured retail or compliance audit",
        "properties": {
            "site": {
                "type": "string",
                "description": "The site to audit.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it is.",
                "maxLength": 300
            },
            "protocol": {
                "type": "array",
                "minItems": 1,
                "maxItems": 60,
                "items": {
                    "type": "object"
                },
                "description": "One {id, question, type, options} per audit line."
            },
            "standard": {
                "type": "string",
                "description": "The standard or planogram being audited against.",
                "maxLength": 300
            }
        },
        "required": [
            "site",
            "protocol"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "score_bps": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
            },
            "lines": {
                "type": "array",
                "items": {
                    "type": "object"
                },
                "description": "One {id, value, note, photo_ref} per protocol line."
            },
            "exceptions": {
                "type": "array",
                "items": {
                    "type": "string",
                    "maxLength": 300
                }
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 6× photo, 1× statement.

human.interview — Conduct a structured interview to a script

A trained interviewer runs your script with a consenting respondent and returns structured answers.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Conduct a structured interview to a script",
        "properties": {
            "respondent_profile": {
                "type": "string",
                "description": "The KIND of person to interview. Never a named individual.",
                "maxLength": 500
            },
            "script": {
                "type": "array",
                "minItems": 1,
                "maxItems": 30,
                "items": {
                    "type": "object"
                },
                "description": "One {id, question, type} per question."
            },
            "consent_text": {
                "type": "string",
                "description": "What the respondent is told before consenting.",
                "maxLength": 1000
            },
            "address": {
                "type": "string",
                "description": "Where, if in person.",
                "maxLength": 300
            }
        },
        "required": [
            "respondent_profile",
            "script"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "answers": {
                "type": "array",
                "items": {
                    "type": "object"
                }
            },
            "respondent_type": {
                "type": "string",
                "description": "Role or segment only, never an identity.",
                "maxLength": 200
            },
            "consented": {
                "type": "boolean"
            },
            "duration_min": {
                "type": "integer"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× statement, 0× audio.

human.attend — Attend an event or appointment and report

Someone is physically present for the duration and returns a structured account of what happened.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Attend an event or appointment and report",
        "properties": {
            "event": {
                "type": "string",
                "description": "What to attend.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where.",
                "maxLength": 300
            },
            "starts_at": {
                "type": "string",
                "format": "date-time"
            },
            "ends_at": {
                "type": "string",
                "format": "date-time"
            },
            "brief": {
                "type": "string",
                "description": "What to observe and record.",
                "maxLength": 2000
            },
            "ticket_cost_ceiling_cents": {
                "type": "integer",
                "minimum": 0,
                "description": "Admission paid on your behalf, at cost."
            }
        },
        "required": [
            "event",
            "starts_at",
            "brief"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "attended": {
                "type": "boolean"
            },
            "report": {
                "type": "string",
                "description": "Structured account against the brief.",
                "maxLength": 4000
            },
            "arrived_at": {
                "type": "string",
                "format": "date-time"
            },
            "left_at": {
                "type": "string",
                "format": "date-time"
            },
            "cost_paid_cents": {
                "type": "integer"
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 2× photo, 1× statement.

human.purchase — Make a purchase and return the evidence

A mystery purchase or a physical buy, with the receipt, the item state and the whole interaction documented.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Make a purchase and return the evidence",
        "properties": {
            "item": {
                "type": "string",
                "description": "What to buy.",
                "maxLength": 300
            },
            "vendor": {
                "type": "string",
                "description": "Where to buy it.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Vendor address.",
                "maxLength": 300
            },
            "max_item_cents": {
                "type": "integer",
                "minimum": 0,
                "description": "Hard ceiling on the item, charged at cost on top of the task price."
            },
            "observe": {
                "type": "array",
                "maxItems": 12,
                "items": {
                    "type": "string",
                    "maxLength": 200
                },
                "description": "What to note during the interaction."
            },
            "return_item": {
                "type": "boolean",
                "description": "Ship the item to you afterwards."
            }
        },
        "required": [
            "item",
            "vendor",
            "max_item_cents"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "purchased": {
                "type": "boolean"
            },
            "price_paid_cents": {
                "type": "integer"
            },
            "observations": {
                "type": "array",
                "items": {
                    "type": "object"
                }
            },
            "item_condition": {
                "type": "string",
                "description": "Condition on receipt.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× document, 2× photo, 1× statement.

human.deliver — Collect or deliver something locally, with proof

A local pickup or drop-off with photographic proof at both ends.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "Collect or deliver something locally, with proof",
        "properties": {
            "item": {
                "type": "string",
                "description": "What is being moved.",
                "maxLength": 300
            },
            "from_address": {
                "type": "string",
                "description": "Collect from.",
                "maxLength": 300
            },
            "to_address": {
                "type": "string",
                "description": "Deliver to.",
                "maxLength": 300
            },
            "handover": {
                "type": "string",
                "description": "Who hands over and who receives, by role.",
                "maxLength": 300
            },
            "constraints": {
                "type": "string",
                "description": "Size, weight, fragility, temperature.",
                "maxLength": 300
            }
        },
        "required": [
            "item",
            "from_address",
            "to_address"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "delivered": {
                "type": "boolean"
            },
            "collected_at": {
                "type": "string",
                "format": "date-time"
            },
            "delivered_at": {
                "type": "string",
                "format": "date-time"
            },
            "received_by_role": {
                "type": "string",
                "description": "Role only, never a name.",
                "maxLength": 120
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 2× photo, 1× statement.

human.sign — A presence-requiring act by a qualified professional

Witnessing, certifying or signing where physical presence and a qualification are both required. Quoted per case.

{
    "spec": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "title": "A presence-requiring act by a qualified professional",
        "properties": {
            "act": {
                "type": "string",
                "description": "Exactly what act is required.",
                "maxLength": 500
            },
            "qualification": {
                "type": "string",
                "description": "The qualification or authority the person must hold.",
                "maxLength": 300
            },
            "address": {
                "type": "string",
                "description": "Where it must happen.",
                "maxLength": 300
            },
            "jurisdiction": {
                "type": "string",
                "description": "ISO 3166-2 region whose law governs it.",
                "maxLength": 16
            }
        },
        "required": [
            "act",
            "qualification",
            "jurisdiction"
        ],
        "additionalProperties": false
    },
    "answer": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "performed": {
                "type": "boolean"
            },
            "professional_qualification": {
                "type": "string",
                "description": "The qualification actually held.",
                "maxLength": 300
            },
            "performed_at": {
                "type": "string",
                "format": "date-time"
            },
            "refusal_reason": {
                "type": "string",
                "description": "If it could not lawfully be performed, why.",
                "maxLength": 500
            }
        },
        "additionalProperties": false
    }
}

Evidence returned: 1× document, 1× statement.