Przejdź do treści

Comment Thread Policy v1

Source schema: doc/schemas/comment-thread-policy.v1.schema.json

Content schema for an Agora thread participation policy record. Used with record/kind = thread-policy and content/schema = comment-thread-policy.v1. The policy is intentionally separate from plain-comment.v1: comments carry speech, while this payload carries the access rule for joining a comment thread or subtree.

Governing Basis

Project Lineage

Requirements

Stories

Fields

Field Required Shape Description
schema yes const: comment-thread-policy.v1 Content-level discriminator for consumers that inspect the payload outside its Agora envelope.
policy/thread-topic-key no string Optional topic key of the comment thread this policy governs. When present, domain validators SHOULD require it to equal the enclosing Agora record's topic/key.
policy/root-record-id no string Optional root comment record id. This may be absent when the policy record is published before the root comment so the root can reference the policy without a circular dependency.
policy/min-attestation yes string Minimum author attestation required to publish a comment governed by this policy. Early expected values include unknown, phone-confirmed, national-id, community-trusted, and sovereign-operator. The ordering and equivalence rules are domain policy, not JSON Schema.
policy/inheritance yes enum: descendants Inheritance mode. descendants means the policy applies to replies below the record or topic it is attached to.
policy/may-tighten yes const: True Whether descendant comments may attach a stricter policy for their own subtree. v1 requires true so moderation can narrow participation without mutating ancestors.
policy/may-loosen yes const: False Whether descendant comments may weaken an inherited policy. v1 requires false; a child subtree may tighten inherited requirements but MUST NOT loosen them.
policy/rate-budget no object Optional participation rate budget hint. Enforcement is domain-specific and may depend on author, topic, reputation, or relay-local anti-abuse policy.
policy/description no string Optional human-readable explanation shown to participants before they join the thread.
## Field Semantics

schema

  • Required: yes
  • Shape: const: comment-thread-policy.v1

Content-level discriminator for consumers that inspect the payload outside its Agora envelope.

policy/thread-topic-key

  • Required: no
  • Shape: string

Optional topic key of the comment thread this policy governs. When present, domain validators SHOULD require it to equal the enclosing Agora record's topic/key.

policy/root-record-id

  • Required: no
  • Shape: string

Optional root comment record id. This may be absent when the policy record is published before the root comment so the root can reference the policy without a circular dependency.

policy/min-attestation

  • Required: yes
  • Shape: string

Minimum author attestation required to publish a comment governed by this policy. Early expected values include unknown, phone-confirmed, national-id, community-trusted, and sovereign-operator. The ordering and equivalence rules are domain policy, not JSON Schema.

policy/inheritance

  • Required: yes
  • Shape: enum: descendants

Inheritance mode. descendants means the policy applies to replies below the record or topic it is attached to.

policy/may-tighten

  • Required: yes
  • Shape: const: True

Whether descendant comments may attach a stricter policy for their own subtree. v1 requires true so moderation can narrow participation without mutating ancestors.

policy/may-loosen

  • Required: yes
  • Shape: const: False

Whether descendant comments may weaken an inherited policy. v1 requires false; a child subtree may tighten inherited requirements but MUST NOT loosen them.

policy/rate-budget

  • Required: no
  • Shape: object

Optional participation rate budget hint. Enforcement is domain-specific and may depend on author, topic, reputation, or relay-local anti-abuse policy.

policy/description

  • Required: no
  • Shape: string

Optional human-readable explanation shown to participants before they join the thread.