跳转到内容

ak.schema.content_block_poll.v1

← Schemas

Arkret Poll Content Block
ak.schema.content_block_poll.v1 · file: schemas/content-block-poll.schema.json

Canonical content-block schema for ak.content.poll and ak.content.poll.response.

* $ · oneOf[2]
Canonical content-block schema for ak.content.poll and ak.content.poll.response.
oneOf · oneOf[0] · object · $ref #/$defs/poll_block
* kind · const "ak.content.poll"
enum: "ak.content.poll"
* body · string
format · string (enum) · $ref #/$defs/format
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2] · $ref #/$defs/formatted_body
oneOf · oneOf[0] · string
oneOf · oneOf[1] · object
reply_context · object · $ref #/$defs/reply_context
message_ref · string
pattern: ^ak:(message|event):[A-Za-z0-9_-]{44}$
sender_actor_id · oneOf[2] · $ref ./common-ids.schema.json#/$defs/actor_id
Complete protocol identity for an Event author or Realm member: account carries the exact AccountId for every Station-hosted principal; service identifies a service acting as itself. The discriminator is validated against accepted registration and admission evidence; it never authorizes itself. Account and service are distinct, and no comparison may fall back to a bare principal_id. Agent and integration classification, provisioning, controller binding and credential authorization are independently verified facts, not identity variants. Account actors at different Stations MUST NOT share or inherit authority merely because their principal_id, DID controller or signing key matches, including membership, capability, RealmCommit-signing and recovery authority.
oneOf · oneOf[0] · object
* kind · const "account"
enum: "account"
* account_id · $ref #/$defs/account_id · $ref #/$defs/account_id
oneOf · oneOf[1] · object
* kind · const "service"
enum: "service"
* service_id · $ref #/$defs/did_core_id · $ref #/$defs/did_core_id
excerpt · string
* poll · object · $ref #/$defs/poll_body
Poll configuration. max_selections is validated against responses by reducers because JSON Schema cannot compare a response to its referenced poll message.
* kind · const "disclosed"
enum: "disclosed"
* max_selections · integer
question · object · $ref #/$defs/content_block
allOf · allOf[0] · ?
allOf · allOf[1] · ?
allOf · allOf[2] · ?
* kind · $ref #/$defs/content_kind · $ref #/$defs/content_kind
* body · string
format · string (enum)
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2]
oneOf · oneOf[0] · string
oneOf · oneOf[1] · object
parts · array<$ref #/$defs/content_block>
items · object · $ref #/$defs/content_block
allOf · allOf[0] · ?
allOf · allOf[1] · ?
allOf · allOf[2] · ?
* kind · $ref #/$defs/content_kind · $ref #/$defs/content_kind
* body · string
format · string (enum)
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2]
oneOf · oneOf[0] · string
oneOf · oneOf[1] · object
parts · array<$ref #/$defs/content_block>
items · object · $ref #/$defs/content_block
allOf · allOf[0] · ?
allOf · allOf[1] · ?
allOf · allOf[2] · ?
* kind · $ref #/$defs/content_kind · $ref #/$defs/content_kind
* body · string
format · string (enum)
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2]
oneOf · oneOf[0] · …
recursion truncated at depth 8; see source schema for full shape
oneOf · oneOf[1] · …
recursion truncated at depth 8; see source schema for full shape
parts · array<$ref #/$defs/content_block>
items · …
recursion truncated at depth 8; see source schema for full shape
mentions · array<$ref #/$defs/mention_node>
Structured direct mention AST nodes for this Content Block. This is the only carrier of a direct mention: authorization, notification routing and audit attribution read mention_node.subject_account_id exclusively, and compare it as a complete AccountId (zh/models/strand-and-message.md §9.4.1-§9.4.2).
items · …
recursion truncated at depth 8; see source schema for full shape
audience_mentions · array<$ref #/$defs/audience_mention_node>
Structured broadcast mention AST nodes for this Content Block (zh/models/strand-and-message.md §9.4.3).
items · …
recursion truncated at depth 8; see source schema for full shape
attachments · array<object>
Profile-defined attachment hints. At most 32; canonical durable attachment relations SHOULD use Relation attached_to.
items · …
recursion truncated at depth 8; see source schema for full shape
reply_context · object
message_ref · …
recursion truncated at depth 8; see source schema for full shape
sender_actor_id · …
recursion truncated at depth 8; see source schema for full shape
excerpt · …
recursion truncated at depth 8; see source schema for full shape
mentions · array<$ref #/$defs/mention_node>
Structured direct mention AST nodes for this Content Block. This is the only carrier of a direct mention: authorization, notification routing and audit attribution read mention_node.subject_account_id exclusively, and compare it as a complete AccountId (zh/models/strand-and-message.md §9.4.1-§9.4.2).
items · $ref #/$defs/mention_node · $ref #/$defs/mention_node
audience_mentions · array<$ref #/$defs/audience_mention_node>
Structured broadcast mention AST nodes for this Content Block (zh/models/strand-and-message.md §9.4.3).
items · $ref #/$defs/audience_mention_node · $ref #/$defs/audience_mention_node
attachments · array<object>
Profile-defined attachment hints. At most 32; canonical durable attachment relations SHOULD use Relation attached_to.
items · object
reply_context · object
message_ref · string
pattern: ^ak:(message|event):[A-Za-z0-9_-]{44}$
sender_actor_id · oneOf[2] · $ref ./common-ids.schema.json#/$defs/actor_id
Complete protocol identity for an Event author or Realm member: account carries the exact AccountId for every Station-hosted principal; service identifies a service acting as itself. The discriminator is validated against accepted registration and admission evidence; it never authorizes itself. Account and service are distinct, and no comparison may fall back to a bare principal_id. Agent and integration classification, provisioning, controller binding and credential authorization are independently verified facts, not identity variants. Account actors at different Stations MUST NOT share or inherit authority merely because their principal_id, DID controller or signing key matches, including membership, capability, RealmCommit-signing and recovery authority.
oneOf · oneOf[0] · object
* kind · …
recursion truncated at depth 8; see source schema for full shape
* account_id · …
recursion truncated at depth 8; see source schema for full shape
oneOf · oneOf[1] · object
* kind · …
recursion truncated at depth 8; see source schema for full shape
* service_id · …
recursion truncated at depth 8; see source schema for full shape
excerpt · string
mentions · array<$ref #/$defs/mention_node>
Structured direct mention AST nodes for this Content Block. This is the only carrier of a direct mention: authorization, notification routing and audit attribution read mention_node.subject_account_id exclusively, and compare it as a complete AccountId (zh/models/strand-and-message.md §9.4.1-§9.4.2).
items · $ref #/$defs/mention_node · $ref #/$defs/mention_node
audience_mentions · array<$ref #/$defs/audience_mention_node>
Structured broadcast mention AST nodes for this Content Block (zh/models/strand-and-message.md §9.4.3).
items · $ref #/$defs/audience_mention_node · $ref #/$defs/audience_mention_node
attachments · array<object>
Profile-defined attachment hints. At most 32; canonical durable attachment relations SHOULD use Relation attached_to.
items · object
reply_context · object
message_ref · string
pattern: ^ak:(message|event):[A-Za-z0-9_-]{44}$
sender_actor_id · oneOf[2] · $ref ./common-ids.schema.json#/$defs/actor_id
Complete protocol identity for an Event author or Realm member: account carries the exact AccountId for every Station-hosted principal; service identifies a service acting as itself. The discriminator is validated against accepted registration and admission evidence; it never authorizes itself. Account and service are distinct, and no comparison may fall back to a bare principal_id. Agent and integration classification, provisioning, controller binding and credential authorization are independently verified facts, not identity variants. Account actors at different Stations MUST NOT share or inherit authority merely because their principal_id, DID controller or signing key matches, including membership, capability, RealmCommit-signing and recovery authority.
oneOf · oneOf[0] · object
* kind · const "account"
enum: "account"
* account_id · $ref #/$defs/account_id · $ref #/$defs/account_id
oneOf · oneOf[1] · object
* kind · const "service"
enum: "service"
* service_id · $ref #/$defs/did_core_id · $ref #/$defs/did_core_id
excerpt · string
* answers · array<$ref #/$defs/poll_answer>
items · object · $ref #/$defs/poll_answer
One visible answer option. answer.id values MUST be unique within a poll; reducers and conformance vectors enforce that cross-item constraint.
* id · string · $ref #/$defs/answer_id
pattern: ^[A-Za-z0-9._~-]+$
* text · object · $ref #/$defs/content_block
allOf · allOf[0] · ?
allOf · allOf[1] · ?
allOf · allOf[2] · ?
* kind · $ref #/$defs/content_kind · $ref #/$defs/content_kind
* body · string
format · string (enum)
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2]
oneOf · oneOf[0] · string
oneOf · oneOf[1] · object
parts · array<$ref #/$defs/content_block>
items · object · $ref #/$defs/content_block
allOf · allOf[0] · ?
allOf · allOf[1] · ?
allOf · allOf[2] · ?
* kind · $ref #/$defs/content_kind · $ref #/$defs/content_kind
* body · string
format · string (enum)
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2]
oneOf · oneOf[0] · …
recursion truncated at depth 8; see source schema for full shape
oneOf · oneOf[1] · …
recursion truncated at depth 8; see source schema for full shape
parts · array<$ref #/$defs/content_block>
items · …
recursion truncated at depth 8; see source schema for full shape
mentions · array<$ref #/$defs/mention_node>
Structured direct mention AST nodes for this Content Block. This is the only carrier of a direct mention: authorization, notification routing and audit attribution read mention_node.subject_account_id exclusively, and compare it as a complete AccountId (zh/models/strand-and-message.md §9.4.1-§9.4.2).
items · …
recursion truncated at depth 8; see source schema for full shape
audience_mentions · array<$ref #/$defs/audience_mention_node>
Structured broadcast mention AST nodes for this Content Block (zh/models/strand-and-message.md §9.4.3).
items · …
recursion truncated at depth 8; see source schema for full shape
attachments · array<object>
Profile-defined attachment hints. At most 32; canonical durable attachment relations SHOULD use Relation attached_to.
items · …
recursion truncated at depth 8; see source schema for full shape
reply_context · object
message_ref · …
recursion truncated at depth 8; see source schema for full shape
sender_actor_id · …
recursion truncated at depth 8; see source schema for full shape
excerpt · …
recursion truncated at depth 8; see source schema for full shape
mentions · array<$ref #/$defs/mention_node>
Structured direct mention AST nodes for this Content Block. This is the only carrier of a direct mention: authorization, notification routing and audit attribution read mention_node.subject_account_id exclusively, and compare it as a complete AccountId (zh/models/strand-and-message.md §9.4.1-§9.4.2).
items · $ref #/$defs/mention_node · $ref #/$defs/mention_node
audience_mentions · array<$ref #/$defs/audience_mention_node>
Structured broadcast mention AST nodes for this Content Block (zh/models/strand-and-message.md §9.4.3).
items · $ref #/$defs/audience_mention_node · $ref #/$defs/audience_mention_node
attachments · array<object>
Profile-defined attachment hints. At most 32; canonical durable attachment relations SHOULD use Relation attached_to.
items · object
reply_context · object
message_ref · string
pattern: ^ak:(message|event):[A-Za-z0-9_-]{44}$
sender_actor_id · oneOf[2] · $ref ./common-ids.schema.json#/$defs/actor_id
Complete protocol identity for an Event author or Realm member: account carries the exact AccountId for every Station-hosted principal; service identifies a service acting as itself. The discriminator is validated against accepted registration and admission evidence; it never authorizes itself. Account and service are distinct, and no comparison may fall back to a bare principal_id. Agent and integration classification, provisioning, controller binding and credential authorization are independently verified facts, not identity variants. Account actors at different Stations MUST NOT share or inherit authority merely because their principal_id, DID controller or signing key matches, including membership, capability, RealmCommit-signing and recovery authority.
oneOf · oneOf[0] · object
* kind · …
recursion truncated at depth 8; see source schema for full shape
* account_id · …
recursion truncated at depth 8; see source schema for full shape
oneOf · oneOf[1] · object
* kind · …
recursion truncated at depth 8; see source schema for full shape
* service_id · …
recursion truncated at depth 8; see source schema for full shape
excerpt · string
oneOf · oneOf[1] · object · $ref #/$defs/poll_response_block
* kind · const "ak.content.poll.response"
enum: "ak.content.poll.response"
* body · string
format · string (enum) · $ref #/$defs/format
enum: "plain" "markdown" "prosemirror_json"
formatted_body · oneOf[2] · $ref #/$defs/formatted_body
oneOf · oneOf[0] · string
oneOf · oneOf[1] · object
reply_context · object · $ref #/$defs/reply_context
message_ref · string
pattern: ^ak:(message|event):[A-Za-z0-9_-]{44}$
sender_actor_id · oneOf[2] · $ref ./common-ids.schema.json#/$defs/actor_id
Complete protocol identity for an Event author or Realm member: account carries the exact AccountId for every Station-hosted principal; service identifies a service acting as itself. The discriminator is validated against accepted registration and admission evidence; it never authorizes itself. Account and service are distinct, and no comparison may fall back to a bare principal_id. Agent and integration classification, provisioning, controller binding and credential authorization are independently verified facts, not identity variants. Account actors at different Stations MUST NOT share or inherit authority merely because their principal_id, DID controller or signing key matches, including membership, capability, RealmCommit-signing and recovery authority.
oneOf · oneOf[0] · object
* kind · const "account"
enum: "account"
* account_id · $ref #/$defs/account_id · $ref #/$defs/account_id
oneOf · oneOf[1] · object
* kind · const "service"
enum: "service"
* service_id · $ref #/$defs/did_core_id · $ref #/$defs/did_core_id
excerpt · string
* poll_response · object · $ref #/$defs/poll_response_body
* poll_ref · string · $ref #/$defs/message_id
pattern: ^ak:message:[A-Za-z0-9_-]{44}$
* selections · array<$ref #/$defs/answer_id>
items · string · $ref #/$defs/answer_id
pattern: ^[A-Za-z0-9._~-]+$

Source