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

This lens observes whether 无障碍字幕集体线 and 无障碍字幕集体机制 correctly turn collectivized caption reliance into playable class scope instead of a clean accessibility KPI.

The existing mesh already handles individual reliance through 无障碍字幕信赖线 and proof custody through 字幕证词羁押线. The gap is aggregation: once several cohorts rely on the same caption, the implementation must prove who is represented, who is excluded, what settlement surface is constrained, who carries callbacks, and which future reader consumes the class state.

A passing implementation cannot be satisfied by raw complaint count, generic class-action flavor, sponsor satisfaction, management reach, or public mood. It must expose class scope and make at least one later route consume that scoped class state.

This lens observes:

It is observed through:

Observable promise

When a shared caption result is consumed by multiple reader scopes, the game must show:

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

The lens fails if a caption class is represented as access delivered, complaints settled, reach counted, refund paid, lawful proof accepted, or route unlocked without class scope and exclusions.

Entry oracle

entry_state_required:
  trigger_kind: state_pressure
  source_caption_row_or_explicit_absence_present: true
  source_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
  constrained_surface_present_or_explicit_absence: 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

The lens fails if the class opens from fixed turn number, day/week interval, chapter quota, raw complaint count, dashboard state, lens health, generic legal phase, or generic accessibility review.

Required observable content

Class docket

无障碍字幕集体案卷 or equivalent must record:

docket_required:
  source_caption_row_or_absence: <caption witness row or explicit_absence>
  source_reliance_rows:
    - <access caption reliance 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
  class_pressure_state: uncertified | certified_public_class | certified_lawful_class | denied_split | sponsor_notice_class | operator_shield_class | quarantined | settled_with_callbacks | default_ready | defaulted
  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>
  pressure_actor: sponsor | management_table | archive | inspector | fan_delegate | access_operator | route_claimant | equivalent
  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: <access receipt caption checksum public notice archive stamp witness receipt or explicit_absence>
  callback_carrier_or_absence: <handler reader or explicit_absence>
  future_reader_or_route: <reader route slot or ending scar id>

The lens fails if the docket stores only raw affected people, public mood, sponsor reach, management KPI, or generic complaint status.

Cohort rows

Each class must show at least two incompatible reader scopes through cohort rows or explicit absence where a cohort should have appeared.

cohort_row_required:
  cohort_id: <stable id>
  cohort_reader: deaf_access_public | foreign_language_public | fan_translation_public | sponsor_reach_reader | management_metric_reader | archive_reader | lawful_reader | access_operator | route_asset_reader | equivalent
  reliance_basis: access_was_provided | access_was_denied | translation_changed_consent | sponsor_reach_claim | management_reach_metric | refund_basis | lawful_caption_basis | route_unlock_basis | operator_signed_clean | equivalent
  desired_remedy: correction | refund | public_notice | lawful_annex | sponsor_unwind | operator_protection | route_scope | quarantine | equivalent
  conflict_with: <cohort id or explicit_absence>
  named_harm_or_absence: <harm or explicit_absence>
  proof_or_absence: <proof or explicit_absence>
  callback_or_absence: <owed notice recourse service correction or explicit_absence>

The lens fails if all readers collapse into one anonymous public, one sponsor audience, or one legal claimant.

Certification hearing

无障碍字幕集体认证听证 or equivalent must require explicit assignments:

assignment_required:
  docket: storyteller.card.access_caption_class_docket.v1
  source_caption_row_or_absence: <caption witness row or explicit_absence>
  source_reliance_rows: []
  shared_caption_state: <state>
  representative_reader: <reader>
  included_reader_cohorts: []
  excluded_or_conflicting_cohorts: []
  constrained_surface: <surface>
  proof_or_absence: <proof or explicit_absence>
  handler_or_absence: producer | shen_luo | yu_lan | han_yanshuang | baiya | fan_delegate | access_operator | archive_clerk | explicit_absence | equivalent
  callback_carrier_or_absence: <carrier or explicit_absence>
  selected_posture: certify_public_class | split_classes | settle_with_callbacks | sponsor_notice_class | operator_witness_class | quarantine_shared_caption | deny_with_named_harm | default_selects
  accepted_cost_surface_or_absence: <cost scar or explicit_absence>
  future_reader_or_route: <reader route slot or ending scar id>

The lens fails if sponsor money, public sympathy, archive seal, lawful text, management urgency, or edit checksum resolves the class without naming these fields.

Branch divergence oracle

A satisfying implementation must prove at least five constructive branch families plus one default or denial family.

Branch familyRequired reliefRequired costRequired future effect
Certify public access classpublic access remedy becomes legiblesponsor reach dispute, metric scar, correction capacitypublic route protected but costlier
Split classespublic and lawful caption scopes coexistdrift, annex, escrow, hearing burdenlater route must name scope
Settle with callbacksimmediate access/fan pressure narrowscallback debt, refund pressure, recourse leveragecallback_required or costlier
Sponsor notice classsponsor reach is scoped without clean deliverypublic distrust, unwind risk, audit heatsponsor_only or sponsor_unwind_required
Operator witness classoperator becomes protected witness or explicit absent witnessexposure, handler burden, proof gapoperator_witness_required, costlier, or recovery_only
Quarantine shared captionfalse universal delivery is blockedschedule, correction, archive, public pressureblocked until reworked
Deny with named harmoverbroad class blockedharmed cohorts appeal or become hostilepublic_only, lawful_only, sponsor_only, blocked, recovery_only
Default selectsfastest desk files firsthidden cohorts and false class scar hardenappeal, unwind, split, recovery, or contradiction required

No branch may create universal clean acceptance across access public, foreign-language public, fan public, sponsor, management, archive, lawful reader, caption operator, route asset, and broadcast reality.

Default oracle

无障碍字幕集体默认 or equivalent must fire or be armed when:

  • class scope is hidden;
  • representative reader is missing;
  • included cohorts are unnamed;
  • excluded or conflicting cohorts are hidden;
  • constrained surface is hidden;
  • proof boundary is missing without explicit absence;
  • callback carrier is missing without explicit absence;
  • sponsor, management, archive, lawful reader, fan delegate, or route claimant consumes the class as clean proof;
  • public correction or fan oxygen refund is treated as universal settlement.

Required default payload:

default_required:
  event: storyteller.event.access_caption_class_default.v1
  source_caption_row_or_absence: <caption witness row or explicit_absence>
  source_reliance_rows:
    - <row ids or explicit_absence>
  shared_caption_state: <state>
  missing_or_hidden_inputs:
    representative_reader: present | hidden | absent
    included_reader_cohorts: present | hidden | absent
    excluded_or_conflicting_cohorts: present | hidden | absent
    constrained_surface: present | hidden | absent
    proof_anchor: present | hidden | absent
    callback_carrier: present | hidden | absent
    future_reader: present | hidden | absent
  false_class_claim: access_class_settled | sponsor_reach_class_clean | management_access_metric_clean | fan_refund_class_clean | lawful_caption_class_clean | route_unlocked_class_clean | operator_signed_class_clean | equivalent
  default_narrator: sponsor | management_table | archive | inspector | fan_delegate | access_operator_absence | route_claimant | public_table | lawful_reader | equivalent
  hidden_or_excluded_cohorts:
    - <cohort ids or explicit_absence>
  defaulted_class_state: sponsor_only_class | public_only_class | lawful_only_class | management_metric_scar | operator_absence_liability | false_universal_access | blocked | recovery_only | contradiction_pending | equivalent
  future_reader_or_route: <reader route slot or ending scar id>
  future_route_effect: sponsor_only | public_only | lawful_only | split_required | public_audit_required | sponsor_unwind_required | operator_witness_required | blocked | hostile | recovery_only | contradiction_pending | equivalent

A default that changes only flavor, budget, reputation, or generic complaint pressure fails.

Counter contract

Every non-default branch must mutate at least three surfaces:

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_reader_or_route_effect: at_least_one

Relevant surfaces:

  • access_class_pressure
  • class_certification_legitimacy
  • access_public_trust
  • foreign_language_public_trust
  • fan_oxygen_refund_pressure
  • sponsor_reach_dispute
  • sponsor_stop_loss_pressure
  • management_metric_scar
  • caption_operator_exposure
  • caption_operator_protection
  • public_correction_capacity
  • archive_caption_escrow
  • lawful_caption_annex_pressure
  • route_asset_access_cost
  • future_caption_recovery_cost
  • inspection_heat
  • public_receipt_distrust
  • broadcast_reality_drift

Downstream consumption oracle

At least one later surface must consume the class state:

If the result remains local to a subtitle scene, the lens is incomplete.

Progress metric

accessCaptionClassActionProgress = 0..10:

  • 0: no class surface.
  • 1: source caption row or explicit absence and source reliance rows are visible.
  • 2: shared caption state and class pressure state are visible.
  • 3: representative reader is named.
  • 4: included cohorts and excluded/conflicting cohorts are named or explicitly absent.
  • 5: constrained surface, proof boundary, and callback carrier are named or explicitly absent.
  • 6: certification hearing exposes at least three non-equivalent branches.
  • 7: selected constructive branch mutates relief, cost, and future effect.
  • 8: default or denial branch records false class claim, narrator, hidden cohorts, and durable scar.
  • 9: downstream reader consumes scoped class state.
  • 10: replay proves constructive and default paths with no universal clean caption class.

Replay evidence expectation

lens_id: storyteller.lens.access_caption_class_action.v1
session_id: lens-access-caption-class-action-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  source_caption_row_or_explicit_absence_present: true
  source_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
  constrained_surface_present_or_explicit_absence: true
  future_reader_or_route_consumes_class_state: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.access_caption_class_docket.v1
  rite: storyteller.rite.access_caption_class_certification_hearing.v1
docket:
  representative_reader: <reader>
  included_reader_cohorts: []
  excluded_or_conflicting_cohorts: []
  constrained_surface: <surface>
  proof_or_absence: <proof or explicit_absence>
  callback_carrier_or_absence: <carrier or explicit_absence>
branch_runs:
  constructive:
    selected_posture: certify_public_class | split_classes | settle_with_callbacks | sponsor_notice_class | operator_witness_class | quarantine_shared_caption | deny_with_named_harm
    class_state_after: <state>
    relief: []
    cost: []
    future_reader_or_route_effect: <effect>
  default:
    selected_posture: default_selects
    emitted_event: storyteller.event.access_caption_class_default.v1
    false_class_claim: <claim>
    default_narrator: <actor>
    hidden_or_excluded_cohorts: []
    defaulted_class_state: <state>
    future_reader_or_route_effect: <effect>
assertions:
  - primary_links_exist
  - entry_is_state_triggered
  - source_caption_and_reliance_rows_visible_or_absent
  - representative_and_cohorts_visible
  - constrained_surface_proof_and_callback_visible_or_absent
  - certification_hearing_assignable
  - branch_outcomes_diverge
  - success_has_cost
  - default_is_durable
  - downstream_reader_consumes_class_state
  - no_universal_clean_caption_class
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger

Anti-filler assertions

  • The lens is not satisfied by adding more caption cards.
  • The lens is not satisfied by raw class size.
  • The lens is not satisfied by a generic legal settlement.
  • The lens is not satisfied by a clean sponsor makegood.
  • The lens is not satisfied by a clean management accessibility metric.
  • The lens is satisfied only by replayable class scope, branch divergence, explicit excluded cohorts, and downstream consumption.