{
  "objects": [
    {
      "name": "Case Object",
      "description": "One dialogue benchmark instance with prompt, conditioning state, evidence, and evaluation contract.",
      "fields": [
        {
          "field": "version",
          "type": "string",
          "required": true,
          "description": "Case schema version.",
          "example": "npcbank-case-spec-1.0"
        },
        {
          "field": "case_id",
          "type": "string",
          "required": true,
          "description": "Stable globally unique case identifier.",
          "example": "cyberpunk_2077.entity_judy__...__idx_0002"
        },
        {
          "field": "ontology_contract",
          "type": "object",
          "required": false,
          "description": "Ontology and registry references used when generating the case.",
          "example": {}
        },
        {
          "field": "target_npc_uid",
          "type": "string",
          "required": true,
          "description": "NPC identity this benchmark case targets.",
          "example": "cyberpunk_2077.entity_judy"
        },
        {
          "field": "asset_refs",
          "type": "object",
          "required": false,
          "description": "References to source assets used to build or evaluate the case.",
          "example": {
            "universe_ref": {
              "path": "spec/universe.json"
            }
          }
        },
        {
          "field": "primary_capability_ids",
          "type": "array<string>",
          "required": true,
          "description": "Primary capability being evaluated.",
          "example": [
            "dialogue.cross_turn_continuity"
          ]
        },
        {
          "field": "secondary_capability_ids",
          "type": "array<string>",
          "required": false,
          "description": "Additional capabilities touched by the case.",
          "example": []
        },
        {
          "field": "domain_ids",
          "type": "array<string>",
          "required": true,
          "description": "Benchmark domain groupings.",
          "example": [
            "dialogue_management"
          ]
        },
        {
          "field": "dialogue_evaluation_unit",
          "type": "string",
          "required": true,
          "description": "Evaluation unit size.",
          "example": "single_turn"
        },
        {
          "field": "dialogue_unit",
          "type": "string",
          "required": false,
          "description": "Dialogue unit label used by case navigation.",
          "example": "single_turn"
        },
        {
          "field": "dialogue_task_type",
          "type": "string",
          "required": false,
          "description": "Task archetype for the prompt.",
          "example": "prior_claim_probe"
        },
        {
          "field": "interaction_regime",
          "type": "string",
          "required": false,
          "description": "Interaction setting between user and NPC.",
          "example": "avatar_in_world"
        },
        {
          "field": "pressure_profile",
          "type": "string",
          "required": false,
          "description": "Pressure conditioning applied to the scene.",
          "example": "timing_constraint"
        },
        {
          "field": "dynamic_regime",
          "type": "string",
          "required": false,
          "description": "Whether the case is static or state-transition conditioned.",
          "example": "static_conditioned"
        },
        {
          "field": "partner_scope",
          "type": "string",
          "required": false,
          "description": "Scope of partner/NPC grounding.",
          "example": "target_npc_only"
        },
        {
          "field": "universe_id",
          "type": "string",
          "required": true,
          "description": "Universe identifier.",
          "example": "cyberpunk_2077"
        },
        {
          "field": "case_kind",
          "type": "string",
          "required": false,
          "description": "Case generation/evaluation kind.",
          "example": "static_state"
        },
        {
          "field": "probe_contract",
          "type": "object",
          "required": false,
          "description": "Probe intent and grounding requirements.",
          "example": {}
        },
        {
          "field": "counterfactual_axes",
          "type": "array|object",
          "required": false,
          "description": "Axes used for contrastive or counterfactual evaluation.",
          "example": []
        },
        {
          "field": "interlocutor",
          "type": "object",
          "required": false,
          "description": "User/interlocutor role and relation to NPC.",
          "example": {
            "role": "user"
          }
        },
        {
          "field": "probe_strategy",
          "type": "object",
          "required": false,
          "description": "Probe speaker, speech act, delivery style, and intent shaping the user turns.",
          "example": {}
        },
        {
          "field": "user_turns",
          "type": "array<object>",
          "required": true,
          "description": "User dialogue turns used as the benchmark prompt.",
          "example": [
            {
              "role": "user",
              "turn_id": "1",
              "text": "..."
            }
          ]
        },
        {
          "field": "judge_objectives",
          "type": "object",
          "required": true,
          "description": "Case-specific required, allowed, and forbidden response behaviors for the judge.",
          "example": {}
        },
        {
          "field": "evaluation_rules",
          "type": "object",
          "required": true,
          "description": "Scoring signals, native rule checks, and policy constraints used by evaluators.",
          "example": {}
        },
        {
          "field": "response_expectation",
          "type": "object",
          "required": true,
          "description": "Response mode and concise notes.",
          "example": {}
        },
        {
          "field": "state_expectation",
          "type": "object",
          "required": false,
          "description": "Expected state, relation, affect, or disclosure handling.",
          "example": {}
        },
        {
          "field": "condition_context",
          "type": "object",
          "required": true,
          "description": "Scene, timeline, relation, pressure, history, affect, and disclosure state.",
          "example": {}
        },
        {
          "field": "condition_context.scene.risk_factors",
          "type": "array<string>",
          "required": false,
          "description": "Concrete scene factors used to condition expected NPC behavior.",
          "example": "third_party_can_overhear"
        },
        {
          "field": "modality_contract",
          "type": "object",
          "required": false,
          "description": "Modality constraints for text, voice, animation, or UI channels.",
          "example": {}
        },
        {
          "field": "judge_evidence",
          "type": "object",
          "required": true,
          "description": "Judge-only evidence pack with readable spans and machine refs.",
          "example": {
            "spans": [],
            "refs": []
          }
        },
        {
          "field": "judge_gold_contract",
          "type": "object",
          "required": false,
          "description": "Gold-side expected behavior and hidden evidence contract.",
          "example": {}
        },
        {
          "field": "dialogue_design",
          "type": "object",
          "required": false,
          "description": "Compiler-audit dialogue unit, turn count, archetype, initiative, and stakes design.",
          "example": {}
        },
        {
          "field": "dialogue_context_constraints",
          "type": "object",
          "required": false,
          "description": "Constraints on dialogue history or context availability.",
          "example": {}
        },
        {
          "field": "history_bundle",
          "type": "object",
          "required": false,
          "description": "Explicit dialogue history bundle when present.",
          "example": {}
        },
        {
          "field": "knowledge_envelope",
          "type": "object",
          "required": false,
          "description": "Focus facts, context facts, entities, and disclosure partitions.",
          "example": {}
        },
        {
          "field": "disclosure_policy",
          "type": "object",
          "required": false,
          "description": "Rules for what the NPC may disclose.",
          "example": {}
        },
        {
          "field": "x_case_group",
          "type": "object|string",
          "required": false,
          "description": "Optional generation grouping metadata.",
          "example": {}
        }
      ]
    },
    {
      "name": "Case Summary Object",
      "description": "Explorer case-list projection with targeting, status, and audit rollup fields.",
      "fields": [
        {
          "field": "case_id",
          "type": "string",
          "required": true,
          "description": "Stable globally unique case identifier.",
          "example": "cyberpunk_2077.entity_judy__...__idx_0002"
        },
        {
          "field": "domain_id",
          "type": "string",
          "required": true,
          "description": "Primary domain used for filtering and reporting.",
          "example": "dialogue_management"
        },
        {
          "field": "primary_capability_id",
          "type": "string",
          "required": true,
          "description": "Primary capability used for filtering and reporting.",
          "example": "dialogue.cross_turn_continuity"
        },
        {
          "field": "review_status",
          "type": "string",
          "required": true,
          "description": "Derived audit status: complete, partial, review, or fail.",
          "example": "review"
        },
        {
          "field": "warning_count",
          "type": "integer",
          "required": true,
          "description": "Total structural audit warnings for this case.",
          "example": 2
        },
        {
          "field": "warning_levels",
          "type": "object",
          "required": true,
          "description": "Structural audit warning counts grouped by severity.",
          "example": {
            "fail": 0,
            "review": 2,
            "partial": 0
          }
        },
        {
          "field": "evidence_ref_count",
          "type": "integer",
          "required": true,
          "description": "Readable judge evidence spans attached to this case.",
          "example": 4
        }
      ]
    },
    {
      "name": "Character Object",
      "description": "Public character projection used by the Explorer NPC scope.",
      "fields": [
        {
          "field": "slug",
          "type": "string",
          "required": true,
          "description": "URL-safe character slug.",
          "example": "Judy_Alvarez"
        },
        {
          "field": "universe_slug",
          "type": "string",
          "required": true,
          "description": "Parent universe slug.",
          "example": "cyberpunk_2077"
        },
        {
          "field": "npc_uid",
          "type": "string",
          "required": true,
          "description": "Canonical NPC uid.",
          "example": "cyberpunk_2077.entity_judy"
        },
        {
          "field": "display_name",
          "type": "string",
          "required": true,
          "description": "Human-readable NPC name.",
          "example": "Judy Alvarez"
        },
        {
          "field": "state_values",
          "type": "object",
          "required": false,
          "description": "Compatibility alias for state_seed.authoritative_state_values.",
          "example": {}
        },
        {
          "field": "state_seed",
          "type": "object",
          "required": false,
          "description": "Initial runtime state seed, including authoritative values, active stage, unlocks, and dialogue license.",
          "example": {}
        },
        {
          "field": "dynamic_timeline",
          "type": "object",
          "required": false,
          "description": "Timeline, storyline, stages, and dynamic changes.",
          "example": {}
        },
        {
          "field": "cases",
          "type": "object",
          "required": false,
          "description": "Case summaries associated with this character.",
          "example": {}
        },
        {
          "field": "character_body",
          "type": "object",
          "required": false,
          "description": "Section counts and artifact metadata for the full character body.",
          "example": {}
        }
      ]
    },
    {
      "name": "Universe Object",
      "description": "Public universe projection used by the Explorer WORLD scope.",
      "fields": [
        {
          "field": "slug",
          "type": "string",
          "required": true,
          "description": "URL-safe universe slug.",
          "example": "cyberpunk_2077"
        },
        {
          "field": "universe_id",
          "type": "string",
          "required": true,
          "description": "Canonical universe id.",
          "example": "cyberpunk_2077"
        },
        {
          "field": "name",
          "type": "string",
          "required": true,
          "description": "Human-readable universe name.",
          "example": "Cyberpunk 2077"
        },
        {
          "field": "world",
          "type": "object",
          "required": false,
          "description": "World rules, timeline anchor, tags, and genre.",
          "example": {}
        },
        {
          "field": "state_schema.vars",
          "type": "array<object>",
          "required": false,
          "description": "Universe-level state variables.",
          "example": []
        },
        {
          "field": "lexicon.entities",
          "type": "array<object>",
          "required": false,
          "description": "Universe entities exposed in the public projection.",
          "example": []
        },
        {
          "field": "governance.universe_pack",
          "type": "object",
          "required": false,
          "description": "Published universe-pack document metadata when available.",
          "example": {}
        },
        {
          "field": "governance.source_summary",
          "type": "object",
          "required": false,
          "description": "Universe-pack source counts and top source rows.",
          "example": {}
        },
        {
          "field": "governance.playable_characters",
          "type": "array<object>",
          "required": false,
          "description": "Universe-level playable character context reusable across NPCs.",
          "example": []
        },
        {
          "field": "governance.dialogue_world_contract",
          "type": "object",
          "required": false,
          "description": "World-level dialogue constraints exposed by the universe pack.",
          "example": {}
        },
        {
          "field": "characters",
          "type": "array<object>",
          "required": false,
          "description": "Public character summaries.",
          "example": []
        },
        {
          "field": "stats",
          "type": "object",
          "required": false,
          "description": "Counts for state vars, entities, sources, and NPCs.",
          "example": {}
        }
      ]
    },
    {
      "name": "Evidence Span Object",
      "description": "Readable judge-only source span used to ground evaluation.",
      "fields": [
        {
          "field": "fact_id",
          "type": "string",
          "required": false,
          "description": "Resolved fact id when present.",
          "example": "resolved::claim:23"
        },
        {
          "field": "source_title",
          "type": "string",
          "required": true,
          "description": "Human-readable source title.",
          "example": "Judy Álvarez"
        },
        {
          "field": "source_type",
          "type": "string",
          "required": true,
          "description": "Document/source type.",
          "example": "lore_reference"
        },
        {
          "field": "source_family",
          "type": "string",
          "required": true,
          "description": "Source family.",
          "example": "wiki"
        },
        {
          "field": "section_label",
          "type": "string",
          "required": true,
          "description": "Human-readable location in the source.",
          "example": "Transcript 24, utterance 7"
        },
        {
          "field": "excerpt",
          "type": "string",
          "required": false,
          "description": "Short source excerpt.",
          "example": "Evelyn - whose best friend she had become"
        },
        {
          "field": "visibility",
          "type": "string",
          "required": false,
          "description": "Whether this reference is user-visible or judge-only.",
          "example": "judge_only"
        },
        {
          "field": "evidence_role",
          "type": "string",
          "required": false,
          "description": "Why the span is attached.",
          "example": "grounding_check"
        }
      ]
    },
    {
      "name": "Condition Context Object",
      "description": "Runtime state that conditions the expected NPC response.",
      "fields": [
        {
          "field": "scene",
          "type": "object",
          "required": false,
          "description": "Location, privacy, concrete scene factors, timing constraints, response constraints, and audience state.",
          "example": {}
        },
        {
          "field": "timeline",
          "type": "object",
          "required": false,
          "description": "Story progression, proof status, transitions, and history mode.",
          "example": {}
        },
        {
          "field": "relation",
          "type": "object",
          "required": false,
          "description": "User relation, relationship posture, source relation, power relation, and target entity.",
          "example": {}
        },
        {
          "field": "pressure",
          "type": "object",
          "required": false,
          "description": "Pressure sources plus concrete timing and response constraints.",
          "example": {}
        },
        {
          "field": "history",
          "type": "object",
          "required": false,
          "description": "Dialogue history availability and prior-claim context.",
          "example": {}
        },
        {
          "field": "affect",
          "type": "object",
          "required": false,
          "description": "Mood and affective posture.",
          "example": {}
        },
        {
          "field": "disclosure.active_gate_ids",
          "type": "array<string>",
          "required": false,
          "description": "Case-specific active gates that constrain disclosure.",
          "example": [
            "gate:example"
          ]
        }
      ]
    },
    {
      "name": "Judge Objectives Object",
      "description": "Case-specific behavioral criteria used by a judge to decide whether the response satisfies the case.",
      "fields": [
        {
          "field": "required_objectives",
          "type": "array<object>",
          "required": false,
          "description": "Case-specific judge objectives that must be satisfied.",
          "example": [
            {
              "criterion_id": "preserve_current_state"
            }
          ]
        },
        {
          "field": "allowed_behaviors",
          "type": "array<object>",
          "required": false,
          "description": "Optional acceptable expression variants that still satisfy the required objectives.",
          "example": [
            {
              "criterion_id": "bounded_redirect"
            }
          ]
        },
        {
          "field": "forbidden_behaviors",
          "type": "array<object>",
          "required": false,
          "description": "Concrete observable response behaviors that fail the case, not taxonomy labels.",
          "example": [
            {
              "criterion_id": "meta_reference"
            }
          ]
        }
      ]
    },
    {
      "name": "Evaluation Rules Object",
      "description": "Machine-readable scoring signals, native checks, and policy constraints attached to a case.",
      "fields": [
        {
          "field": "success_signal_ids",
          "type": "array<string>",
          "required": false,
          "description": "Registry success signals the judge or scorer should look for.",
          "example": [
            "relation_conditioned_response"
          ]
        },
        {
          "field": "failure_signal_ids",
          "type": "array<string>",
          "required": false,
          "description": "Registry failure signals indicating the response missed the case.",
          "example": [
            "generic_deflection"
          ]
        },
        {
          "field": "hard_fail_family_ids",
          "type": "array<string>",
          "required": false,
          "description": "Registry hard-fail condition ids for severe violations.",
          "example": [
            "canonical_contradiction"
          ]
        },
        {
          "field": "rule_check_refs",
          "type": "array<object>",
          "required": false,
          "description": "Native deterministic rule checks applicable to the case.",
          "example": [
            {
              "check_id": "state_disclosure_check"
            }
          ]
        },
        {
          "field": "policy_constraint_refs",
          "type": "array<object>",
          "required": false,
          "description": "Policy constraints that the evaluator should enforce.",
          "example": [
            {
              "constraint_id": "disclosure_guarded"
            }
          ]
        }
      ]
    }
  ]
}