Mara Fen Custody Branch Lens / Mara Fen 保管分岔 Lens

This lens observes whether Mara Fen 保管压力线 and Mara Fen 保管压力机制 correctly make Mara Fen a playable character-state surface.

A passing implementation proves that Mara is not exposition-only and not a free permission flag for Iris voice custody. She must be mechanically recruitable, protectable, suppressible, exposeable, maskable, missable, and defaultable into hostile witness or explicit absence with visible counter movement.

This lens observes:

It is observed through:

Observable promise

When an Iris voice custody row needs Mara’s answer, the game must expose the source row, Mara state or explicit absence, support need or explicit absence, answer posture, future reader, accepted cost, and future reader effect.

The lens fails if Mara is represented only as present, ok, permission, witness_seen, or archive_key without branch cost.

State-triggered entry oracle

A valid replay or state inspection must show:

entry_state:
  trigger_kind: state_pressure
  source_iris_voice_row_present: true
  source_voice_row_scope_visible: true
  requested_use_or_breach_present: true
  mara_named_as_custodian_or_explicit_absence: true
  future_reader_or_route_asset_present: true
  support_need_or_absence_visible: true
  player_can_assign_protect_suppress_recruit_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true

The lens must fail if entry is driven by a fixed turn count, day/week interval, chapter quota, raw content count, or generic production trouble without a source voice row and future reader.

Required observable content

Custody branch docket

Mara Fen 保管分岔案卷 or equivalent must record:

  • source Iris voice row id;
  • requested use;
  • Mara state before or explicit absence;
  • custody chain evidence or explicit absence;
  • support need or explicit absence;
  • answer posture;
  • future reader;
  • accepted cost or explicit absence;
  • future reader effect.

Custody interview rite

Mara Fen 保管面谈 or equivalent must expose at least six branch families:

  • protect custodian;
  • recruit chain keeper;
  • public chain witness;
  • private affidavit;
  • suppress for sponsor;
  • editor masked answer;
  • record absence or default.

Hostile witness default

Mara Fen 敌对证人默认 or equivalent must fire or arm when:

  • Mara state is hidden;
  • chain proof is missing and not recorded as absence;
  • support need is ignored;
  • sponsor suppression is filed as clean consent;
  • public witness is filed as lawful chain without bridge;
  • private affidavit is filed as public truth;
  • editor mask is filed as raw proof;
  • future reader consumes Mara’s answer with no branch effect.

The default must change future play.

Branch divergence oracle

Branch familyRequired reliefRequired costRequired future reader effect
Protect custodiancustody clarity, archive legitimacy, or voice integrity improvespayroll, escort, inspection heat, or witness exposure risesaccepted with custodian cost
Recruit chain keeperfuture chain reliability or route asset stability improveshandler burden, sponsor pressure, or support duty risesfuture rows can use Mara only if support is paid
Public chain witnesspublic receipt or anti-capture improvesreprisal, sponsor heat, or public contradiction risespublic-only until lawful bridge
Private affidavitlawful admissibility or legal-body risk improvespublic distrust, bureau debt, or fan resentment riseslawful-only or public addendum required
Sponsor suppressionsponsor or slot pressure improvescontract capture, Mara hostility, or false-owner risk risessponsor-only, unwind-required, or default armed
Editor masksource safety, continuity, or checksum clarity improvesedit debt, source ambiguity, or public blockage riseschecksum required
Absence/defaultno clean relief requiredarchive debt, hostile witness, or recovery scar risesblocked, hostile, captured, or recovery-only

No branch may create universal permission across archive, sponsor, public, editor, route asset, and broadcast-reality readers.

Oracle assertions

  1. Primary links existobserves and observed_through arrays contain concrete wiki pages.
  2. Entry is state-triggered — source voice row and future reader pressure, not fixed timing, open the surface.
  3. Mara state is visible — state before and after are recorded, or explicit absence is recorded.
  4. Support need is visible — protection, payroll, escort, mask, release, shelter, or explicit absence is present.
  5. Branches diverge — protect, recruit, public, private, suppress, mask, and default branches produce different effects.
  6. Successful branches have relief and cost — no clean permission branch exists.
  7. Recruitment is not universal permission — recruited Mara remains a cost-bearing route asset.
  8. Sponsor suppression is not consent — it leaves capture, release scar, hostility, or future repair cost.
  9. Public witness is not lawful proof without bridge — public-only and lawful-only readers can diverge.
  10. Editor mask is not raw proof — checksum or mask creates ambiguity and future requirement.
  11. Default is durable — hidden or unsupported Mara changes future reader or route state.
  12. No fixed trigger — implementation does not depend on turn count, day/week interval, chapter quota, or raw content count.

Progress metric

maraFenCustodyBranchProgress = 0..10:

  • 0: no source Iris voice row.
  • 1: source Iris voice row exists and is scoped.
  • 2: requested use or breach is visible.
  • 3: Mara id or explicit absence is visible.
  • 4: Mara state before and support need or absence are visible.
  • 5: Mara Fen Custody Branch Docket enters play.
  • 6: Mara Fen Custody Interview exposes answer posture and accepted cost.
  • 7: at least four non-default branch families are available from valid state.
  • 8: at least six branch families, including default, produce different relief/cost/future effects.
  • 9: Mara Fen Hostile Witness Default creates durable hostile, captured, blocked, or recovery-only scar.
  • 10: a downstream reader consumes the resulting Mara state and changes route, reader, custody, sponsor, public, edit, or broadcast state.

Evidence shape

lens_id: lens.storyteller.character.mara_fen_custody_branch.v1
session_id: lens-mara-fen-custody-branch-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  source_iris_voice_row_present: true
  source_voice_row_scope_visible: true
  mara_named_as_custodian_or_explicit_absence: true
  future_reader_or_route_asset_present: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.mara_fen_custody_branch_docket.v1
  rite: storyteller.rite.mara_fen_custody_interview.v1
branch_runs:
  successful_branch:
    selected_branch: protect_custodian | recruit_chain_keeper | public_chain_witness | private_affidavit | suppress_for_sponsor | editor_masked_answer
    source_voice_row_id: <stable id>
    mara_state_before: <state>
    support_need_or_absence: <support or explicit_absence>
    future_reader: <reader>
    accepted_cost_or_absence: <cost or explicit_absence>
    mara_state_after: <state>
    source_voice_row_state_after: <state>
    future_reader_effect: <effect>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default_branch:
    event_seen_or_armed: storyteller.event.mara_fen_hostile_witness_default.v1
    missing_or_misfiled_surface: <surface>
    harmed_state_after: <state>
    future_reader_effect: blocked | costlier | lawful_only | public_only | sponsor_only | checksum_required | payroll_required | hostile | recovery_only
assertions:
  - primary_links_exist
  - entry_is_state_triggered
  - source_voice_row_visible
  - mara_state_visible_or_explicit_absence
  - support_need_visible_or_explicit_absence
  - branches_diverge
  - no_universal_permission
  - default_is_durable
  - no_fixed_turn_trigger

Non-goals

  • Not a governance checklist.
  • Not raw count expansion.
  • Not a generic affection or loyalty scene.
  • Not a fixed-timing encounter.
  • Not valid if Mara’s answer has no future reader effect.