Access Caption Class Action / 无障碍字幕集体机制

This mechanism turns several caption-reliance readers into a collective, scoped pressure surface. It exists because a single caption state can satisfy one reader while harming another; without class scope, later content can accidentally treat a contested caption as universal access delivery.

It extends 无障碍字幕信赖机制 and 字幕证词羁押机制 by adding representation, included cohorts, excluded cohorts, constrained settlement resources, callback carriers, and default narrators.

Mechanic promise

A shared caption result cannot be consumed as clean collective proof until the implementation records:

  • source caption row or explicit absence;
  • source reliance rows or explicit absence;
  • representative reader;
  • included cohorts;
  • excluded or conflicting cohorts;
  • constrained surface;
  • proof or explicit absence;
  • callback carrier or explicit absence;
  • selected class posture;
  • future reader or route effect.

The mechanism fails if it stores only raw complaint totals, generic accessibility sentiment, sponsor reach, public mood, or management KPI.

State model

access_caption_class_state:
  class_id: <stable id>
  source_caption_row_or_absence: <row or explicit_absence>
  source_reliance_rows:
    - <row ids or explicit_absence>
  shared_caption_state: certified_access | sponsor_safe | split_language | fan_hardsubbed | archive_escrowed | false_caption_witness | hostile_caption_public | recovery_only | explicit_absence | equivalent
  representative_reader: deaf_access_public | foreign_language_public | fan_translation_public | access_operator | archive_reader | lawful_reader | equivalent
  included_reader_cohorts:
    - <cohort ids>
  excluded_or_conflicting_cohorts:
    - <cohort ids or explicit_absence>
  constrained_surface: public_correction_slot | fan_oxygen_refund_window | sponsor_makegood_frame | archive_caption_escrow | access_operator_protection | lawful_caption_annex | route_asset_access | equivalent
  proof_or_absence: <proof or explicit_absence>
  callback_carrier_or_absence: <carrier or explicit_absence>
  class_state: uncertified | certified_public_class | certified_lawful_class | split_public_lawful | settled_with_callbacks | sponsor_notice_only | operator_witness_class | quarantined | denied_with_named_harm | defaulted
  future_reader_or_route: <reader route slot or ending scar id>

Entry conditions

The surface enters play only when live state creates a class collision:

entry_required:
  trigger_kind: state_pressure
  source_caption_row_or_explicit_absence_present: true
  reliance_rows_or_explicit_absence_present: true
  shared_caption_state_consumed_by_multiple_reader_scopes: true
  reader_cohorts_conflict_over_remedy_or_proof_scope: true
  future_reader_or_route_consumes_class_state: true
  player_can_certify_split_settle_notice_protect_quarantine_deny_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_complaint_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

It is valid to have many affected people, but the trigger is not the number. The trigger is incompatible reader scope over one shared caption reliance surface.

Resources constrained by the mechanism

The class cannot resolve without pricing at least one constrained surface:

  • public correction slot;
  • fan oxygen refund window;
  • sponsor makegood frame;
  • archive caption escrow;
  • access operator protection;
  • lawful caption annex;
  • route asset access;
  • callback carrier time;
  • future recovery capacity.

No branch may make all of these surfaces clean at once.

Branch family contract

The mechanism must support non-equivalent class outcomes:

PostureReliefCostFuture effect
Certify public classpublic access remedy becomes legiblesponsor/management reach claim becomes disputedpublic route protected but costlier
Split classespublic and lawful scopes can coexistdrift, annex, escrow, and hearing burden riseroute must name scope
Settle with callbacksimmediate pressure narrowscallback debt and fan oxygen pressure persistcallback must be consumed later
Sponsor notice classsponsor reach is scopedpublic distrust and unwind risk risesponsor-only acceptance
Operator witness classoperator is protected or named absentexposure, handler burden, proof gapoperator route opens, costs more, or becomes recovery-only
Quarantine shared captionfalse universal class is blockedschedule/correction pressure risesproof is blocked until reworked
Deny with named harmoverbroad class is blockedharmed cohorts gain appeal/hostilitypublic-only, lawful-only, sponsor-only, or recovery-only scar
Default selectsone desk files fastesthidden cohorts and false class scars hardenappeal, unwind, split, or recovery required

Integration points

Completion criteria

A satisfying implementation proves one constructive branch and one default/scar branch, both with:

completion_required:
  representative_reader_named: true
  excluded_or_conflicting_cohorts_named_or_explicit_absent: true
  constrained_surface_named: true
  proof_or_absence_named: true
  callback_carrier_or_absence_named: true
  class_scope_after_named: true
  future_reader_or_route_effect_named: true
  counter_deltas_include_relief_cost_future_effect: true
  no_universal_clean_class: true