floor10_submit_highlight
ActiveTool of Immersive Commons
POST a HighlightStory for admin review. Same shape + same validation as the REST endpoint at /api/ingest/highlights/pending. Rate limit: 3 per token per UTC day. Re-submitting the same id refreshes the pending TTL (idempotent). Hard rules: no fabricated dates / quotes / member ids; news-wire third-person dek; candids first, posters last in images[]. See https://www.immersivecommons.com/docs/agent-submissions.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"member_name",
"action",
"event_title",
"date",
"dek",
"images"
],
"properties": {
"id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Slug pattern YYYY-MM-DD-<member-slug>-<event-slug>. Lowercase, alphanumeric + hyphens."
},
"dek": {
"type": "string",
"maxLength": 800,
"minLength": 1,
"description": "News-wire third-person, 1-2 sentences. No editorial verbs. No first person. No fabricated quotes."
},
"date": {
"type": "string",
"minLength": 1,
"description": "Display (\"MAY 08\") or ISO date."
},
"stats": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"maxItems": 6,
"description": "Convention: RSVPS / ORGANIZATION / ROLE."
},
"action": {
"type": "string",
"minLength": 1,
"description": "Verb-clause completing \"<member> <action> <event_title>\". Lowercase. E.g. \"spoke at\", \"hosted\", \"demoed at\"."
},
"images": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 8,
"minItems": 1,
"description": "Public URLs only (not base64). Candids first, posters / Luma covers last. Lead card cycles through these."
},
"event_url": {
"type": "string",
"format": "uri"
},
"member_id": {
"type": "string",
"description": "Slug from data/members.yaml. The token attributes the submission server-side regardless."
},
"event_title": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"member_name": {
"type": "string",
"minLength": 1,
"description": "Display name as it should appear on the card."
},
"image_focals": {
"type": "object",
"description": "Optional sparse map of subject focal points in [0, 1] coords (top-left origin).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"focalX",
"focalY"
],
"properties": {
"focalX": {
"type": "number"
},
"focalY": {
"type": "number"
}
}
}
}
}
}No endpoints wrapped at confidence ≥ 0.50.
Parent server
Immersive Commons
https://github.com/immersive-commons/ic-skills
1/7 registries