ic_headsets_report_damage
ActiveTool of Immersive Commons
Files an incident on a PICO unit. Anyone with the scope can file (borrower, witness, ops staff). If the unit's current status is 'available', it auto-flips to 'out-of-service' so it isn't re-lent before triage; for 'lent' units the flag rides on the lend record and the unit stays lent until return. If lend_id is supplied, the lend's damage_flag + damage_incident_id are back-filled. Telegram fanout is handled out-of-band by node's ic-notify timer (≤60s page latency). Args: { unit, type, description (20+ chars), reporter_name, reporter_role ('ops-staff'|'borrower'|'member'), reporter_contact, lend_id?, borrower?, photo? (base64 data URL, capped ~5MB) }. Returns: { ok, incident_id }. Required scope: headsets:report_damage.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"unit",
"type",
"description",
"reporter_name",
"reporter_role",
"reporter_contact"
],
"properties": {
"type": {
"enum": [
"lens",
"shell",
"controller",
"battery",
"hygiene",
"loss",
"near-miss",
"other"
],
"type": "string",
"description": "Category of incident."
},
"unit": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Unit id (IC1..IC8) or full serial."
},
"photo": {
"type": "string",
"description": "Optional base64 data URL of the damage photo. Capped ~5MB raw (~6.7MB encoded)."
},
"lend_id": {
"type": "string",
"maxLength": 80
},
"borrower": {
"type": "string",
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 5000,
"minLength": 20
},
"reporter_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"reporter_role": {
"enum": [
"ops-staff",
"borrower",
"member"
],
"type": "string"
},
"reporter_contact": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "@telegram-handle or email."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Immersive Commons
https://github.com/immersive-commons/ic-skills
1/7 registries