{
  "schema": "proposal.reviews394.v1",
  "status": "PROPOSED_NOT_IMPLEMENTED",
  "date": "2026-11-02",
  "source_snapshot_as_assigned": "0194902d3d57d5e35a381a61b71afcf421ff2ed6",
  "model": {
    "player": "private PG3 peer only; strict new-create eligibility",
    "venue": "separate opt-in public experience text, no score",
    "game": "public pregame Q&A, no attendance gate",
    "legacy_private": "never auto-publish or rewrite; organization/training/notes stay distinct"
  },
  "invariants": [
    "Server time and held outcome are both required; completed status alone is insufficient.",
    "Historical confirmed participation is membership, not proof of physical presence.",
    "Default present source is organizer assertion; independent PG2 correction is an alternative, not external check-in.",
    "No client-supplied identity, present, independently_verified, recipient, canonical venue or publish timestamp is trusted.",
    "No self peer review, public player rating, stars, aggregates or automatic level change.",
    "Unknown, missing, absent or disputed attendance never silently qualifies.",
    "Manager response does not close dispute; unknown cannot be acknowledged.",
    "No source game identifiers, precise play times, roster, third-party contacts or private participation graph in public projections.",
    "Organizer cannot delete criticism or veto independent help by silence, block or unilateral late correction.",
    "No new scheduler/service/framework; existing auth, restrictions, version and idempotency fences remain."
  ],
  "gate_precedence": [
    {
      "if": "unavailable private resource or foreign context",
      "state": "unavailable",
      "action": "indistinguishable private 404"
    },
    {
      "if": "guest or account restricted",
      "state": "read_only",
      "action": "public read where permitted; authenticated help under existing restrictions"
    },
    {
      "if": "now < ends_at OR draft",
      "state": "not_ended",
      "action": "Q&A only if public parent; no review"
    },
    {
      "if": "cancelled OR outcome=not_held",
      "state": "not_played",
      "action": "private organization feedback/help; contested facts to Cases"
    },
    {
      "if": "outcome missing/unknown OR unresolved outcome case",
      "state": "waiting_outcome",
      "action": "request clarification / independent help; no review"
    },
    {
      "if": "author membership not proven",
      "state": "no_context",
      "action": "own game selector/help, no self-created participation"
    },
    {
      "if": "required attendance missing/unknown",
      "state": "waiting_attendance",
      "action": "request mark; independent help available"
    },
    {
      "if": "required attendance absent OR dispute open",
      "state": "disputed_or_absent",
      "action": "PG2 correction/ack/resolution; no new review"
    },
    {
      "if": "self peer OR foreign target context OR wrong venue OR venue affiliation",
      "state": "invalid_target",
      "action": "deny without leaking identity"
    },
    {
      "if": "all required assertions valid, restrictions clear, duplicate/window rules satisfied",
      "state": "eligible",
      "action": "private peer submit OR venue audience/consent preview"
    }
  ],
  "targets": {
    "peer": {
      "game": "same immutable Game context",
      "author": "eligibleFromTransitions + present + no open dispute",
      "recipient": "distinct user derived from same-game eligible context + present + no open dispute",
      "creator_or_manager": "no role shortcut; if participant, same gates; own mark from different manager or independent resolution",
      "audience": [
        "author",
        "designated recipient"
      ],
      "direct_block": "no direct new review/reply; independent Safety/help available, old records retained",
      "repeat": "one author/recipient/game; each new eligible game may have its own private review",
      "existing_edits": "versioned edits/reply/history retained, no retroactive deletion; cannot change kind or target"
    },
    "venue": {
      "game": "ended held published/completed",
      "author": "eligibleFromTransitions + explicit present + no open dispute",
      "target": "server resolves historical played-at canonical venue; unresolved alias/move held for correction",
      "creator_or_manager": "only as actual participant; no self-attendance assertion; no review of own/represented venue",
      "audience": [
        "self_draft",
        "public_venue"
      ],
      "default_audience": "self_draft",
      "public_author": "per-review generic participant, no profile id/link/avatar/cross-venue pseudonym",
      "consent": "explicit unchecked approval of exact public projection; never copied from PG3",
      "repeat": "one slot per author/canonical venue; private immutable game-linked revisions; one review per author/target/game; later eligible game updates existing slot"
    },
    "organization_training": "existing private PG3 rules and truthful discrepancy context; not venue or peer scores",
    "personal_note": "existing own-only scope; not a draft shared with recipient",
    "game_qa": "public parent + active auth/restrictions/pair gates; no past attendance required; no review badge"
  },
  "attendance_help": {
    "request": "immediately after end; missing/unknown intake is a required addition",
    "independent_help": "available immediately on dispute/pressure; highlighted after 48h of unresolved request",
    "organizer_silence": "never resolves or qualifies; request goes to existing Cases without organizer approval",
    "assignment": "help progress is not a reviewer assignment; receipt required before saying assigned",
    "reviewer": "existing case permission + step-up + assignment; no subject/creator/historic manager/participant/affiliated interest",
    "outcomes": [
      "correct_present",
      "correct_absent",
      "clear_unknown",
      "uphold_current",
      "insufficient_evidence"
    ],
    "insufficient_evidence": "no eligibility; retain open record and accept relevant additional information; no response-time promise",
    "outcome_gap": "separate bounded case-scoped outcome clarification/correction; attendance resolver alone cannot set held",
    "self_mark": "Every required presence assertion (author and peer target) must be made by a different authorized manager or independent case reviewer; manager role cannot validate own presence.",
    "late_adverse_change": "hold unpublished candidate; independently review published basis without unilateral organizer removal; retain exact assertion versions",
    "capacity_gate": "public launch requires evidenced independent handling, not a merely rendered help button"
  },
  "publication": {
    "peer": "private receipt only, immediate existing delivery, no new blind window",
    "venue_submit_window_days": 14,
    "window_anchor": "first eligible timestamp; ordinary toggles do not reset; store server-derived anchor",
    "appeal": "pause remaining submission time; after favorable independent resolution allow max(remaining,7 days)",
    "max_text_chars": 500,
    "optional_venue_topics": [
      "surface",
      "lighting",
      "amenities"
    ],
    "delay_hours_after_last_material_edit": 48,
    "requires": "assigned independent content approval of exact revision + current eligibility or independent reaffirmation + explicit public consent",
    "mechanism": "store notBefore on approved revision; derive visibility from server time and holds in existing reads, no timer service; record approval/history separately from effective publication time",
    "states": [
      "self_draft",
      "eligible_draft",
      "submitted_waiting",
      "needs_author_correction",
      "held_basis_dispute",
      "published",
      "revision_waiting",
      "withdrawn",
      "moderation_removed"
    ],
    "transitions": [
      [
        "self_draft",
        "explicit public audience + consent + server eligibility",
        "submitted_waiting"
      ],
      [
        "submitted_waiting",
        "author edit",
        "submitted_waiting; reset delay and approval"
      ],
      [
        "submitted_waiting",
        "reviewer requests correction",
        "needs_author_correction"
      ],
      [
        "submitted_waiting",
        "adverse basis correction/dispute",
        "held_basis_dispute"
      ],
      [
        "submitted_waiting",
        "exact revision approved + notBefore reached + gates intact",
        "published"
      ],
      [
        "published",
        "author correction",
        "revision_waiting; old approved text remains unless withdrawn"
      ],
      [
        "revision_waiting",
        "same delay/approval/gates passed",
        "published; replace same slot"
      ],
      [
        "published",
        "organizer unilateral adverse mark or report count",
        "published with private independent case, no automatic deletion"
      ],
      [
        "published",
        "independent proven invalid basis or policy violation",
        "moderation_removed"
      ],
      [
        "any owned text",
        "author withdraw",
        "withdrawn; history and uniqueness preserved"
      ]
    ],
    "venue_reply_v1": "none; game organizer is not venue representative",
    "future_qualified_venue_reply": "only if actual representative authority established; singleton <=500, independent text review, no reply-to-reply; not in v1 scope",
    "private_peer_reply": "existing designated-recipient singleton <=500"
  },
  "moderation": {
    "reuse": "Safety + assigned Cases; add typed review/revision evidence and narrowly scoped actions",
    "current_gap": "Safety accepts player only; typed reviewSafety residual remains unfinished",
    "negative_opinion": "allowed; disagreement alone not removal",
    "violations": [
      "insults/threats",
      "private contacts/third-party identity",
      "fabricated experience",
      "pressure/incentives",
      "coordinated duplicates",
      "private game identifying content"
    ],
    "report": "exact review/version, reason, bounded explanation; no public argument thread; duplicate reports do not auto-hide",
    "appeal": "author receives reason and case route; new relevant evidence reviewed independently; no organizer-only resolution",
    "blocks": "personal projection/direct contact restrictions, not erasure for everyone or organizer veto of venue submission",
    "history": "private versioned withdrawal, correction and decision log; no old bodies in public tombstones"
  },
  "operation_integrity": {
    "unknown": "retain original key/body and draft; reconcile original operation; no new paid/model or mutation replay intent",
    "conflict": "re-read exact current versions, keep own draft, explicit resubmit only after resolution",
    "session": "clear protected projection/drafts on expiry or identity switch; do not erase UNKNOWN receipt",
    "checks": "execute, replay, publication and reads; no canCreate-only security"
  },
  "release_order": [
    "block superseded broad venue writer in source before any next DEV install",
    "preserve useful GAME Q&A and comments UI with own scope",
    "strict eligibility + missing/outcome help + actual independent handling",
    "opt-in venue projection + typed Safety and moderation",
    "independent QA + required CI + trusted DEV receipt/smoke + version history + Owner UAT NOT_TESTED"
  ],
  "owner_open_decisions": [],
  "not_claimed": [
    "implementation",
    "source PASS",
    "CI for new policy",
    "DEV acceptance",
    "alpha15 installation",
    "public player approval",
    "zero abuse",
    "external physical verification"
  ]
}
