Card Schema Ingestion Audit Lens / 卡牌结构入库审计 Lens

This lens observes 卡牌结构入库审计线, 卡牌结构入库审计机制, and the older 卡牌数据结构 contract.

It is observed through 卡牌结构入库案卷, 卡牌结构入库复核, and 结构错投默认.

Observable promise

Storyteller must prove that card-family use is visible before a schedule, ritual, proof surface, or route reader relies on it.

A card may be improvised, converted, split, quarantined, or waived. It cannot silently become a different family. The lens fails if a resource becomes sacrifice proof, a secret becomes public narrative, a blackout becomes a clean schedule, a scene becomes mirror right authority, or a character becomes consent/route custody without a docketed schema answer and future route scar.

Entry oracle

entry_state:
  trigger_kind: state_pressure
  incoming_card_row_present: true
  declared_card_family_visible: true
  requested_slot_or_reader_visible: true
  schema_mismatch_or_explicit_absence_visible: true
  carrier_or_owner_visible_or_explicit_absence: true
  future_reader_or_route_consumes_schema_state: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_card_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Valid card families include schedule, character, scene, resource, secret, thought, blackout, equivalent custom family, and explicit absence.

Docket oracle

Card Schema Ingestion Docket must record:

schema_ingestion_row:
  source_card_id: <card id or explicit_absence>
  declared_card_family: schedule | character | scene | resource | secret | thought | blackout | equivalent | explicit_absence
  observed_fields:
    [
      mirror_rights,
      allowed_slots,
      resource_tags,
      secret_tags,
      risks,
      route_hooks,
      folds_to,
      legacy_hooks,
    ]
  requested_use: schedule_slot | on_screen_slot | route_asset | proof_bridge | public_narrative | lawful_annex | sacrifice_payment | blackout_repair | equivalent
  required_card_family_or_slot: <family or slot>
  mismatch_kind: missing_field | wrong_family | stale_countdown | hidden_blackout | owner_absent | reader_scope_gap | equivalent
  carrier_or_owner: <person, desk, card owner, explicit_absence>
  proof_bridge_or_absence: <receipt, checksum, testimony, schedule row, explicit_absence>
  handler_or_reader: <reader or explicit_absence>
  selected_response: certify_declared_schema | narrow_schema_scope | convert_with_receipt | split_card_faces | quarantine_miscast_card | schema_waiver_with_debt | schema_miscast_default
  schema_state_after: <state>
  future_reader_or_route_effect: <effect>

The lens fails if the docket only says “wrong type” or “invalid card.” It must connect the card row to an in-world requested use and future reader.

Branch oracle

Card Schema Ingestion Review must expose at least six non-equivalent branch families:

  • certify_declared_schema
  • narrow_schema_scope
  • convert_with_receipt
  • split_card_faces
  • quarantine_miscast_card
  • schema_waiver_with_debt
  • schema_miscast_default

Every constructive branch must name relief, cost, and future effect. Accepted future effects include declared_family_locked, narrow_reader_only, converted_with_receipt, split_custody, quarantine_required, waived_with_debt, audit_reopen_required, and recovery_only.

Default oracle

Schema Miscast Default must record:

schema_miscast_default:
  false_schema_claim: true
  source_card_id: <card id or explicit_absence>
  declared_card_family: <family or explicit_absence>
  requested_use: <use>
  missing_or_hidden_inputs:
    - declared_card_family
    - requested_use
    - mismatch_kind
    - carrier_or_owner
    - proof_bridge
    - handler_or_reader
    - accepted_cost_or_debt
    - future_reader_or_route_effect
  capturing_reader: sponsor | archive | editor | lawful_reader | fan_public | management | blackout_system | equivalent
  schema_state_after: schema_miscast_defaulted
  future_reader_or_route_effect: route_blocked | false_schema_recovery | blackout_pressure_up | clean_laundering_blocked | recovery_only
  counter_deltas_min: 3

The event must mutate future play; it cannot be a validation message.

Non-goals

  • Not a code schema validator.
  • Not a bulk data cleanup checklist.
  • Not a ban on creative card conversion.
  • Not valid if a false family use is accepted without a named reader, cost, and future effect.