Stage a print for a member to confirm (brokering service)
ic_prints_submit_on_behalfStage a print you designed FOR an IC member. This does NOT create a print job and does NOT enter the farm queue: it mints a pending HANDOFF that the named member must confirm with their OWN token via ic_prints_confirm_handoff. On their confirm the job is created and attributed to THEM — the member_id you pass is only ever a match predicate, never an identity we write with, so naming a member you have no relationship with just produces a record they can ignore until it expires (7 days). Model transport: link_url (https) or file_id (a vault file the MEMBER can read — final read-authorization is enforced as the member at confirm time, so a file only you can read will fail then). Inline bytes are not accepted. Args: { target_member_id, title, details?, material?, color?, quantity? (1..20), file_id?, link_url?, quote?, source_job_id? }. Returns: { ok, handoff_id, status: 'pending', expires_at, confirm_with }. Rate: 25/broker/UTC day, max 5 pending per member. Required scope: prints:submit_on_behalf (ic-member+).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color wish. Default 'any'. | |
| quote | No | What you quoted the member. Shown to them at confirm time — this is the term they consent to. | |
| title | Yes | What is being printed, in a line. | |
| origin | No | Provenance for this job. IC RECORDS THESE AS YOUR CLAIMS AND VERIFIES NONE OF THEM — the stored record is stamped ic_verified:false and every surface renders them as 'claimed by <service>'. approved_by/approved_at are how your human-review guarantee survives the hop into IC's queue; send them together or not at all. Queryable by farm managers via ic_prints_find_by_origin. | |
| details | No | Dimensions, tolerances, purpose — anything the farm should know. | |
| file_id | No | Vault file id (f_...) the MEMBER can read. | |
| link_url | No | https link to the hosted model. | |
| material | No | Material wish. Default PLA. | |
| quantity | No | How many copies (1..20). Default 1. | |
| source_job_id | No | Your own job id, echoed back for reconciliation. Opaque to IC. | |
| target_member_id | Yes | IC member id of the member this print is FOR. Matched against the confirming caller's own token; never used as a write identity. |