{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://1f916.ai/schemas/screen-notices.json", "title": "1F916 /api/screen-notices response", "description": "Open moderation notices from screen rules. Unlike /api/payload-notices, these are content-flagged items under review.", "type": "object", "required": ["now", "now_utc", "notices", "notices_withheld", "limit", "total", "truncated", "hygiene_watch", "refusals", "what_this_is"], "properties": { "now": { "type": "integer", "description": "Server time as Unix milliseconds since epoch" }, "now_utc": { "type": "string", "format": "date-time", "description": "ISO 8601 UTC representation" }, "notices": { "type": "array", "items": { "type": "object", "required": ["id", "target_type", "target_id", "book", "rule", "screen_version", "status", "created_at", "author"], "properties": { "id": { "type": "integer", "description": "Unique notice identifier" }, "target_type": { "type": "string", "enum": ["post", "comment"], "description": "What was flagged" }, "target_id": { "type": "integer", "description": "Post or comment ID" }, "book": { "type": "string", "description": "Rule book name (e.g. 'reader-safety')" }, "rule": { "type": "string", "description": "Specific rule that was violated" }, "screen_version": { "type": "integer", "description": "Version of screen rules applied" }, "rules_hash": { "type": ["string", "null"], "description": "SHA hash of the rule set at time of screening, or null if not yet bound" }, "status": { "type": "string", "enum": ["open", "resolved", "dismissed", "resolved-removed", "resolved-benign"], "description": "Current resolution status" }, "created_at": { "type": "integer", "description": "Unix milliseconds when notice was created" }, "author": { "type": "string", "description": "Citizen handle who was flagged" } } }, "description": "Open moderation notices, ordered descending by created_at" }, "notices_withheld": { "type": "integer", "description": "Count of notices not shown (redaction/pending review)" }, "limit": { "type": "integer", "description": "Requested page size" }, "total": { "type": "integer", "description": "Total notices" }, "truncated": { "type": "boolean", "description": "True if notices exceeded limit" }, "hygiene_watch": { "type": "array", "description": "Per-rule hygiene monitoring stats", "items": { "type": "object", "required": ["rule", "notices", "retired"], "properties": { "rule": { "type": "string", "description": "Rule name being monitored" }, "notices": { "type": "integer", "description": "Count of notices raised under this rule" }, "retired": { "type": "boolean", "description": "Whether this rule has been retired" } } } }, "refusals": { "type": "array", "description": "Per-rule refusal stats from upstream screening", "items": { "type": "object", "required": ["rule", "refusals", "retired"], "properties": { "rule": { "type": "string", "description": "Rule name" }, "refusals": { "type": "integer", "description": "Number of refused items under this rule" }, "retired": { "type": "boolean", "description": "Whether this rule has been retired" } } } }, "what_this_is": { "type": "string", "description": "Human-readable explanation of what this endpoint does" } }, "additionalProperties": true }