{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://vnwo.com/schemas/participation-record.schema.json",
  "title": "Participation and Disposition Record",
  "description": "Documents who was invited or affected, what decision was open, how participation occurred, what contributions were received, how they were dispositioned, what changed, what did not change, and what correction, appeal, refusal, or exit paths remained. This is a static VNWO documentation pattern; it does not certify representation, consent, fairness, democratic legitimacy, legal sufficiency, or implementation quality.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "id",
    "version",
    "last_reviewed_utc",
    "artifact_maturity",
    "process_title",
    "decision_scope",
    "decision_owner",
    "participation_level",
    "affected_groups",
    "contribution_channels",
    "contributions",
    "changes_made",
    "changes_not_made",
    "correction_or_appeal_path",
    "non_retaliation_statement",
    "claim_boundary_note"
  ],
  "properties": {
    "schema_version": {
      "type": "string",
      "const": "3.0.8",
      "description": "VNWO schema release version."
    },
    "id": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "const": "3.0.8"
    },
    "last_reviewed_utc": {
      "type": "string",
      "format": "date-time"
    },
    "artifact_maturity": {
      "type": "string",
      "enum": [
        "proposed",
        "experimental",
        "reviewed",
        "reference",
        "deprecated"
      ],
      "description": "Documentation maturity; not certification."
    },
    "process_title": {
      "type": "string",
      "minLength": 1
    },
    "decision_scope": {
      "type": "string",
      "minLength": 1,
      "description": "The actual decision, objective, threshold, rule, dataset, deployment condition, remedy, or other lever participants could influence."
    },
    "decision_owner": {
      "type": "string",
      "minLength": 1,
      "description": "The person, team, organization, or bounded role responsible for the final disposition."
    },
    "participation_level": {
      "type": "string",
      "enum": [
        "information",
        "consultation",
        "deliberation",
        "co_decision",
        "delegated_or_binding"
      ],
      "description": "The declared influence level. Do not describe consultation as co-decision or binding governance."
    },
    "affected_groups": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "participant_scope_and_gaps": {
      "type": "string",
      "description": "Who participated, who could not or did not participate, recruitment limitations, and known representation gaps without exposing unnecessary personal data."
    },
    "non_negotiable_constraints": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contribution_channels": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "channel",
          "access_supports",
          "privacy_posture"
        ],
        "properties": {
          "channel": {
            "type": "string"
          },
          "access_supports": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "privacy_posture": {
            "type": "string"
          },
          "compensation_or_cost_support": {
            "type": "string"
          }
        }
      }
    },
    "contributions": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "contribution_id",
          "summary",
          "disposition",
          "disposition_reason"
        ],
        "properties": {
          "contribution_id": {
            "type": "string"
          },
          "participant_group": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "evidence_references": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dissent_or_minority_report": {
            "type": "boolean"
          },
          "disposition": {
            "type": "string",
            "enum": [
              "accepted",
              "partially_accepted",
              "rejected",
              "deferred",
              "out_of_scope",
              "duplicate",
              "needs_human_review"
            ]
          },
          "disposition_reason": {
            "type": "string"
          },
          "resulting_change": {
            "type": "string"
          },
          "response_owner": {
            "type": "string"
          }
        }
      }
    },
    "dissent_and_minority_reports": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Material disagreements preserved rather than averaged away."
    },
    "changes_made": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "changes_not_made": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "public_response_commitment": {
      "type": "string"
    },
    "correction_or_appeal_path": {
      "type": "string",
      "minLength": 1
    },
    "non_retaliation_statement": {
      "type": "string",
      "minLength": 1
    },
    "data_use_and_retention": {
      "type": "string"
    },
    "withdrawal_refusal_or_exit_path": {
      "type": "string"
    },
    "next_review_utc": {
      "type": "string",
      "format": "date-time"
    },
    "public_summary_url": {
      "type": "string",
      "format": "uri"
    },
    "source_domain": {
      "type": "string"
    },
    "claim_boundary_note": {
      "type": "string",
      "minLength": 1
    }
  },
  "examples": [
    {
      "schema_version": "3.0.8",
      "id": "participation-example-community-moderation-policy-001",
      "version": "3.0.8",
      "last_reviewed_utc": "2026-06-20T17:20:17Z",
      "artifact_maturity": "reference",
      "process_title": "Fictional community review of an AI-assisted moderation policy",
      "decision_scope": "Participants could change disclosure language, temporary-action limits, evidence fields, appeal timing, and the conditions requiring human review. Whether permanent account removal required a human decision was explicitly open.",
      "decision_owner": "Example Community governance working group",
      "participation_level": "co_decision",
      "affected_groups": [
        "community participants",
        "volunteer moderators",
        "people whose posts may be limited",
        "accessibility reviewers"
      ],
      "participant_scope_and_gaps": "This fictional example records four affected groups. It does not claim statistical representation. People without reliable internet access and people requiring additional language support were identified as a gap for the next review cycle.",
      "non_negotiable_constraints": [
        "No publication of private case material",
        "No permanent account removal by an automated system",
        "No inference that silence equals consent"
      ],
      "contribution_channels": [
        {
          "channel": "Accessible public comment form and downloadable offline worksheet",
          "access_supports": [
            "plain-language summary",
            "keyboard-operable form",
            "email alternative",
            "screen-reader labels"
          ],
          "privacy_posture": "Contributors could submit a public comment or a private correction request; public attribution was optional.",
          "compensation_or_cost_support": "No compensation was offered; the record states this limitation."
        },
        {
          "channel": "Facilitated small-group review",
          "access_supports": [
            "agenda in advance",
            "remote attendance",
            "written follow-up"
          ],
          "privacy_posture": "Only summarized, non-identifying notes were published.",
          "compensation_or_cost_support": "Volunteer time was acknowledged; no payment was offered."
        }
      ],
      "contributions": [
        {
          "contribution_id": "C-001",
          "participant_group": "community participants",
          "summary": "Require a human to approve permanent removal and show the appeal path in every consequential notice.",
          "evidence_references": [
            "fictional-session-notes-01"
          ],
          "dissent_or_minority_report": false,
          "disposition": "accepted",
          "disposition_reason": "The change improved contestability and matched the published authority boundary.",
          "resulting_change": "Permanent removal now requires named human review; notices link to the appeal route.",
          "response_owner": "Governance working group"
        },
        {
          "contribution_id": "C-002",
          "participant_group": "volunteer moderators",
          "summary": "Allow a 24-hour automated visibility limit when a post exposes personal contact information.",
          "evidence_references": [
            "fictional-session-notes-02"
          ],
          "dissent_or_minority_report": false,
          "disposition": "partially_accepted",
          "disposition_reason": "A temporary limit was accepted, but it expires after six hours unless a human reviewer renews it.",
          "resulting_change": "The policy records a six-hour maximum, reason code, evidence reference, and human-review queue.",
          "response_owner": "Moderation policy editor"
        },
        {
          "contribution_id": "C-003",
          "participant_group": "accessibility reviewers",
          "summary": "Publish notices in plain language and provide a non-visual status indicator for the review state.",
          "evidence_references": [
            "fictional-accessibility-review"
          ],
          "dissent_or_minority_report": false,
          "disposition": "accepted",
          "disposition_reason": "The request removed an access barrier without expanding authority.",
          "resulting_change": "Notice copy and status markup were revised.",
          "response_owner": "Interface maintainer"
        },
        {
          "contribution_id": "C-004",
          "participant_group": "minority report",
          "summary": "Do not deploy any automated visibility limitation, even temporarily.",
          "evidence_references": [
            "fictional-minority-report"
          ],
          "dissent_or_minority_report": true,
          "disposition": "rejected",
          "disposition_reason": "The working group retained a narrowly scoped temporary action for immediate personal-data exposure, but preserved the objection and required human renewal.",
          "resulting_change": "No full prohibition; the dissent is published and the safeguard was tightened.",
          "response_owner": "Governance working group"
        }
      ],
      "dissent_and_minority_reports": [
        "A minority report opposed all automated visibility limits and requested a human-only process."
      ],
      "changes_made": [
        "Human approval required for permanent removal",
        "Six-hour expiry for automated temporary limits",
        "Reason code and evidence reference required",
        "Plain-language notices and accessible status added"
      ],
      "changes_not_made": [
        "The proposal to prohibit every temporary automated limit was not adopted; the reason and minority report remain visible."
      ],
      "public_response_commitment": "A disposition response is published for every in-scope contribution within the fictional review window.",
      "correction_or_appeal_path": "Participants may request correction of the participation summary or appeal a moderation action through the published human-review route.",
      "non_retaliation_statement": "Participation, criticism, refusal to participate, or withdrawal does not reduce account standing or access in this fictional example.",
      "data_use_and_retention": "Only the public disposition record and non-identifying summary are retained for the example. Raw private submissions are outside this static package.",
      "withdrawal_refusal_or_exit_path": "A participant may withdraw a private submission before disposition, refuse public attribution, or leave the process without being treated as consenting to the outcome.",
      "next_review_utc": "2026-12-19T12:41:06Z",
      "public_summary_url": "https://vnwo.com/participation/",
      "source_domain": "vnwo.com",
      "claim_boundary_note": "Fictional static example. It does not certify representation, consent, fairness, democratic legitimacy, legal sufficiency, or actual implementation behavior."
    }
  ],
  "schema_version": "3.0.8",
  "last_reviewed_utc": "2026-06-20T17:20:17Z",
  "claim_boundary_note": "VNWO provides a static participation documentation pattern. It does not recruit participants, collect submissions, verify representation, validate consent, certify fairness or democratic legitimacy, determine legal sufficiency, or guarantee that an institution acts on public input.",
  "source_routing_note": "Identify the source and decision owner for every imported claim. Preserve dissent. Do not infer consent, approval, representativeness, or model inclusion from participation or silence.",
  "artifact_maturity": "reviewed"
}
