Fan Delegate Mandate Split Lens / 粉丝委任分裂 Lens

This lens observes whether 粉丝委任分裂线 makes fan representation playable as a contested route asset instead of a single fan approval counter.

A passing implementation proves that fan oxygen, public receipt, fan witness, memorial-air proof, contrition demand, pirate relay, support-light claim, or audience archive signature can create incompatible delegate mandates. The replay must show the source fan claim, preserved relief and cost, delegate candidates or explicit absence, mandate proof or explicit absence, excluded constituency, non-fan claimant pressure, a branchy mandate hearing, divergent outcomes, costed success, and a durable false-representative default.

The lens fails if the package opens from fixed turn number, day count, chapter quota, raw content count, dashboard/lens-health state, or generic fan unrest.

This lens observes:

It is observed through:

Observable promise

The player must decide who can speak for a fan-side claim when the fan public is split:

  • elected/public-receipt delegate;
  • witness-backed delegate;
  • sponsor-appointed delegate;
  • lawful-only inspector-recognized delegate;
  • editor-masked or split delegate;
  • pirate-amplified delegate;
  • refusal, hiding, or false-cleaning.

The result must change both the delegate mandate state and a future route/reader. The result must also name who is excluded or delayed.

Must pass

1. Entry is state-driven

Required entry evidence:

entry_state:
  trigger_kind: state_pressure
  fan_claim_present: true
  fan_claim_source_any:
    - fan_oxygen
    - public_receipt
    - fan_witness
    - memorial_air
    - public_contrition
    - pirate_relay
    - support_light
    - archive_signature
    - equivalent
  delegate_candidates_or_explicit_absence_present: true
  mandate_proof_or_explicit_absence_present: true
  non_fan_claimant_pressure_present: true
  future_reader_or_route_consumes_result: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true

The lens fails if entry depends on turn count, day/week interval, chapter quota, raw content count, lens health, or generic fan unrest.

2. Source relief and cost are preserved

The replay must name the source fan/public claim and preserve what it already did.

source_context:
  source_surface: fan_oxygen | public_receipt | fan_witness | memorial_air | public_contrition | pirate_relay | support_light | archive_signature | equivalent
  source_row_or_result_id: <stable id>
  source_relief: <relief preserved from source>
  source_cost: <cost preserved from source>

The lens fails if the mandate hearing overwrites the source proof, retries the prior rite, or converts fans are angry into a generic starting condition.

3. Delegate candidates or explicit absence are visible

粉丝委任账本 must show at least two mandate surfaces or an explicit absence:

delegate_candidates:
  elected_delegate: <id or explicit_absence>
  witness_delegate: <id or explicit_absence>
  sponsor_delegate: <id or explicit_absence>
  historian_delegate: <id or explicit_absence>
  pirate_delegate: <id or explicit_absence>

The lens fails if one named fan speaker is treated as consensus without exposing alternatives or absences.

4. Mandate proof or absence is recorded

The implementation must record proof of mandate or explicit absence:

proof_of_mandate_or_absence: oxygen_ledger | public_receipt | witness_oath | archive_signature | pirate_packet | sponsor_letter | inspector_stamp | explicit_absence

A character’s confidence, sponsor preference, or narrator label is not enough.

5. Excluded constituency is named

The replay must name the constituency not fully represented by the chosen delegate.

Valid values include:

  • oxygen_creditors;
  • mourning_queue;
  • witness_public;
  • support_light_collective;
  • artist_privacy_fans;
  • refund_claimants;
  • equivalent.

The lens fails if recognition has no excluded or delayed constituency.

6. Non-fan claimant pressure is active

At least one non-fan claimant must be able to exploit the mandate:

  • sponsor stop-loss desk;
  • inspector/archive authority;
  • editor/black-box custody;
  • artist boundary;
  • production desk;
  • false delegate claimant.

The lens fails if the choice is only internal fan flavor with no route, proof, or faction consequence.

7. Hearing assignment slots are explicit

粉丝委任听证 must require:

assignment:
  ledger: storyteller.card.fan_delegate_mandate_ledger.v1
  selected_row: <row id>
  source_claim: <stable claim id>
  contested_constituency: <constituency>
  selected_delegate_or_absence: <delegate or explicit_absence>
  mandate_proof_or_absence: <proof or explicit_absence>
  handler_or_absence: <handler or explicit_absence>
  claimant_pressure: <claimant>
  future_reader_or_route: <stable id>

Generic choices like choose representative, quiet fans, approve apology, or sponsor handles it cannot satisfy this lens.

8. Branches diverge

A satisfying implementation must expose at least six branch families, including one recognition branch and one refusal/default branch:

  • recognize_elected_delegate;
  • seat_witness_delegate;
  • accept_sponsor_appointee;
  • audit_lawful_delegate;
  • mask_or_split_delegate;
  • publish_pirate_amplified_mandate;
  • refuse_hide_or_false_clean.

Branches must not collapse to the same counter deltas.

9. Branch assertions

Elected delegate assertion

selected_branch: recognize_elected_delegate
mandate_state_after_any: [elected, witness_backed, historian_backed]
relief_any: [fan_delegate_legitimacy_up, public_receipt_legitimacy_up, public_grief_stability_up]
cost_any: [sponsor_stop_loss_pressure_up, inspection_heat_up, fan_oxygen_liability_up, witness_retaliation_risk_up]
future_effect_any: [public_route_unlocked_with_cost, audit_required, sponsor_route_costlier]

Witness delegate assertion

selected_branch: seat_witness_delegate
mandate_state_after_any: [witness_backed, public_only, protected_delegate]
relief_any: [proof_legibility_up, public_receipt_legitimacy_up, fan_delegate_legitimacy_up]
cost_any: [witness_retaliation_risk_up, witness_payroll_due_up, inspection_heat_up]
future_effect_any: [protected_payroll_required, testimony_route_unlocked, witness_route_costlier]
selected_branch: accept_sponsor_appointee
mandate_state_after_any: [sponsor_appointee, sponsor_only, false_representative]
relief_any: [sponsor_stop_loss_pressure_down, immediate_slot_pressure_down]
cost_any: [contract_capture_up, public_receipt_distrust_up, fan_mandate_fracture_up, false_representative_risk_up]
future_effect_any: [sponsor_route_unlocked_with_capture, public_route_costlier, default_event_armed]

Lawful delegate assertion

selected_branch: audit_lawful_delegate
mandate_state_after_any: [inspector_recognized, lawful_only, split_mandate]
relief_any: [archive_signature_legitimacy_up, compliance_status_up, fan_delegate_legibility_up]
cost_any: [inspection_heat_up, bureau_favor_debt_up, lawful_only_route_up, fan_oxygen_resentment_up]
future_effect_any: [lawful_route_unlocked, public_addendum_required, audit_cost_attached]

Mask or split assertion

selected_branch: mask_or_split_delegate
mandate_state_after_any: [editor_masked, fractured, split_mandate]
relief_any: [witness_retaliation_risk_down, private_capture_down, immediate_fracture_contained]
cost_any: [edit_debt_up, source_ambiguity_up, public_receipt_distrust_up, future_recovery_cost_up]
future_effect_any: [split_public_lawful_routes, contradiction_pending, source_disclosure_required]

Pirate amplified assertion

selected_branch: publish_pirate_amplified_mandate
mandate_state_after_any: [pirate_amplified, public_only, hostile_if_unprotected]
relief_any: [private_capture_down, public_pressure_up, fan_delegate_visibility_up]
cost_any: [pirate_exposure_up, relay_custody_risk_up, inspection_heat_up, sponsor_stop_loss_pressure_up]
future_effect_any: [public_only_route, lawful_appeal_required, relay_protection_required]

False-clean assertion

selected_branch: refuse_hide_or_false_clean
mandate_state_after_any: [false_representative, hostile, fractured, recovery_only]
event_seen_or_armed: storyteller.event.fan_mandate_false_representative_default.v1
cost_any: [fan_mandate_fracture_up, public_contradiction_risk_up, fan_oxygen_resentment_up, future_recovery_cost_up]
future_effect_any: [public_route_blocked, sponsor_capture_hardened, apology_required, recovery_only]

10. Success has cost

Every successful branch must reduce or stabilize one pressure and increase, spend, expose, or narrow another.

Valid costs include:

  • sponsor_stop_loss_pressure;
  • inspection_heat;
  • bureau_favor_debt;
  • fan_oxygen_liability;
  • fan_oxygen_resentment;
  • witness_retaliation_risk;
  • witness_payroll_due;
  • contract_capture;
  • public_receipt_distrust;
  • edit_debt;
  • source_ambiguity;
  • pirate_exposure;
  • relay_custody_risk;
  • future_recovery_cost.

The lens fails if delegate recognition creates clean public legitimacy.

11. Future reader consumes mandate result

The branch must mutate a future reader or route.

Valid effects include:

  • public_route_unlocked_with_cost;
  • sponsor_route_unlocked_with_capture;
  • lawful_only;
  • public_only;
  • split_mandate;
  • contradiction_pending;
  • apology_required;
  • audit_required;
  • protected_payroll_required;
  • recovery_only;
  • blocked.

Flavor-only fan dialogue fails.

12. False representative default is durable

粉丝委任伪代表默认 must fire or be armed when:

  • mandate ledger is missing;
  • proof of mandate is absent and unrecorded;
  • sponsor appointee is treated as public consensus;
  • witness delegate lacks shelter or oath;
  • pirate amplification is treated as lawful mandate;
  • editor mask is reused as consent;
  • lawful-only recognition is filed as full public consent;
  • a fractured constituency is hidden from a future reader.

13. Recovery requires visible cost

Recovery from false mandate requires at least one of:

  • public counter-receipt;
  • mandate audit;
  • protected delegate payroll;
  • split mandate escrow;
  • sponsor unwind;
  • apology or contrition hearing;
  • archive correction with source ambiguity.

The lens fails if recovery is a clean reselect, relationship check, or single apology button.

14. At least three deltas exist

Every resolved branch must mutate at least three counters or durable states, including one relief and one cost for successful branches.

Primary expected surfaces:

  • fan_delegate_legitimacy;
  • fan_mandate_fracture;
  • fan_oxygen_balance;
  • fan_oxygen_liability;
  • fan_oxygen_resentment;
  • public_receipt_legitimacy;
  • public_receipt_distrust;
  • public_grief_stability;
  • witness_retaliation_risk;
  • witness_payroll_due;
  • sponsor_stop_loss_pressure;
  • contract_capture;
  • inspection_heat;
  • bureau_favor_debt;
  • archive_signature_legitimacy;
  • edit_debt;
  • source_ambiguity;
  • pirate_exposure;
  • relay_custody_risk;
  • artist_boundary_pressure;
  • future_recovery_cost.

Progress metric

fanDelegateMandateSplitProgress = 0..8:

  • 0: no state-driven fan mandate pressure or no replay provenance.
  • 1: source fan claim appears and preserves prior relief/cost.
  • 2: mandate ledger row names delegate candidates or explicit absence.
  • 3: proof of mandate or explicit absence is recorded.
  • 4: non-fan claimant and future reader are active.
  • 5: mandate hearing exposes at least six branch families.
  • 6: two divergent branches mutate delegate state, future route, relief, and cost.
  • 7: false representative default fires or is armed for a negative branch.
  • 8: replay evidence shows recovery or downstream reader consuming the mandate result with visible cost.

Replay/session evidence shape

lens_id: storyteller.lens.fan_delegate_mandate_split.v1
session_id: lens-storyteller-fan-delegate-mandate-split-v1-<timestamp>
seed: fan-delegate-mandate-split
entry_state:
  trigger_kind: state_pressure
  fan_claim_present: true
  fan_claim_source: fan_oxygen | public_receipt | fan_witness | memorial_air | public_contrition | pirate_relay | support_light | archive_signature | equivalent
  source_relief: <preserved relief>
  source_cost: <preserved cost>
  delegate_candidates_or_explicit_absence_present: true
  mandate_proof_or_explicit_absence_present: true
  non_fan_claimant_pressure_present: true
  future_reader_or_route_consumes_result: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.fan_delegate_mandate_ledger.v1
  rite: storyteller.rite.fan_delegate_mandate_hearing.v1
branches_seen:
  - recognize_elected_delegate
  - seat_witness_delegate
  - accept_sponsor_appointee
  - audit_lawful_delegate
  - mask_or_split_delegate
  - publish_pirate_amplified_mandate
  - refuse_hide_or_false_clean
selected_branch_result:
  branch: <selected branch>
  mandate_state_before: <state>
  mandate_state_after: <state>
  selected_delegate_after: <delegate or explicit_absence>
  proof_of_mandate_after: <proof or explicit_absence>
  excluded_constituency: <constituency>
  future_reader_or_route_effect: <effect>
  event_seen_or_armed: storyteller.event.fan_mandate_false_representative_default.v1 | none
  counter_deltas:
    relief:
      - <relief counter/state>
    cost:
      - <cost counter/state>

Non-goals

  • Not a turn-count package.
  • Not a generic fan unrest lens.
  • Not a social-media poll.
  • Not a raw content-scale target.
  • Not a central lens registry page.
  • Not valid if a single fan delegate can cleanly satisfy public, sponsor, inspector, editor, artist boundary, and archive surfaces at once.