Ghostlight/schemas/lore-grounding-digest.schema.json
2026-05-01 21:39:00 +01:00

490 lines
10 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/GameCult/Ghostlight/schemas/lore-grounding-digest.schema.json",
"title": "Ghostlight Lore Grounding Digest Schema",
"description": "Compiled lore slice for grounding projection fixtures in authored historical context, culture, institutions, and factional pressure fields.",
"type": "object",
"required": [
"schema_version",
"digest_id",
"source_status",
"fixture_status",
"source_refs",
"historical_context",
"groups",
"cultural_pressure_fields",
"factional_misread_matrix",
"role_pressure_fields",
"speaker_lore_boundaries",
"author_only_boundaries",
"open_questions"
],
"additionalProperties": false,
"properties": {
"schema_version": {
"const": "ghostlight.lore_grounding_digest.v0"
},
"digest_id": {
"type": "string"
},
"source_status": {
"enum": [
"template",
"draft",
"reviewed",
"superseded"
]
},
"fixture_status": {
"enum": [
"historical_grounded",
"transition_grounded",
"procedural_branch",
"promoted_branch"
]
},
"source_refs": {
"type": "array",
"items": {
"$ref": "#/$defs/source_ref"
}
},
"historical_context": {
"$ref": "#/$defs/historical_context"
},
"groups": {
"type": "array",
"items": {
"$ref": "#/$defs/group_profile"
}
},
"cultural_pressure_fields": {
"type": "array",
"items": {
"$ref": "#/$defs/cultural_pressure_field"
}
},
"factional_misread_matrix": {
"type": "array",
"items": {
"$ref": "#/$defs/factional_misread"
}
},
"role_pressure_fields": {
"type": "array",
"items": {
"$ref": "#/$defs/role_pressure_field"
}
},
"speaker_lore_boundaries": {
"type": "array",
"items": {
"$ref": "#/$defs/speaker_lore_boundary"
}
},
"author_only_boundaries": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
},
"open_questions": {
"type": "array",
"items": {
"$ref": "#/$defs/open_question"
}
}
},
"$defs": {
"source_ref": {
"type": "object",
"required": [
"source_id",
"path",
"relevance"
],
"additionalProperties": false,
"properties": {
"source_id": {
"type": "string"
},
"path": {
"type": "string"
},
"title": {
"type": "string"
},
"line_start": {
"type": "integer",
"minimum": 1
},
"line_end": {
"type": "integer",
"minimum": 1
},
"relevance": {
"type": "string"
}
}
},
"sourced_text": {
"type": "object",
"required": [
"text",
"source_refs"
],
"additionalProperties": false,
"properties": {
"text": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"historical_context": {
"type": "object",
"required": [
"time_period",
"location",
"summary",
"public_facts",
"ambient_pressures"
],
"additionalProperties": false,
"properties": {
"time_period": {
"type": "string"
},
"location": {
"type": "string"
},
"summary": {
"type": "string"
},
"public_facts": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
},
"ambient_pressures": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
}
}
},
"group_profile": {
"type": "object",
"required": [
"group_id",
"label",
"group_type",
"institutional_logic",
"material_incentives",
"internal_virtues",
"internal_shames",
"prestige_markers",
"taboo_triggers",
"emotional_display_norms",
"trust_defaults",
"speech_register_cues",
"source_refs"
],
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"label": {
"type": "string"
},
"group_type": {
"enum": [
"faction",
"institution",
"class",
"profession",
"movement",
"culture",
"subculture"
]
},
"institutional_logic": {
"type": "array",
"items": {
"type": "string"
}
},
"material_incentives": {
"type": "array",
"items": {
"type": "string"
}
},
"internal_virtues": {
"type": "array",
"items": {
"type": "string"
}
},
"internal_shames": {
"type": "array",
"items": {
"type": "string"
}
},
"prestige_markers": {
"type": "array",
"items": {
"type": "string"
}
},
"taboo_triggers": {
"type": "array",
"items": {
"type": "string"
}
},
"emotional_display_norms": {
"type": "array",
"items": {
"type": "string"
}
},
"trust_defaults": {
"type": "array",
"items": {
"type": "string"
}
},
"speech_register_cues": {
"type": "array",
"items": {
"type": "string"
}
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cultural_pressure_field": {
"type": "object",
"required": [
"field_id",
"applies_to",
"pressure_type",
"summary",
"projection_use",
"source_refs"
],
"additionalProperties": false,
"properties": {
"field_id": {
"type": "string"
},
"applies_to": {
"type": "array",
"items": {
"type": "string"
}
},
"pressure_type": {
"enum": [
"virtue",
"shame",
"prestige",
"taboo",
"threat_model",
"trust_default",
"speech_norm",
"status_trigger",
"material_incentive",
"outsider_stereotype"
]
},
"summary": {
"type": "string"
},
"projection_use": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"factional_misread": {
"type": "object",
"required": [
"observer_group_id",
"target_group_id",
"observer_read",
"target_self_read",
"misread_patterns",
"likely_insults",
"projection_use",
"source_refs"
],
"additionalProperties": false,
"properties": {
"observer_group_id": {
"type": "string"
},
"target_group_id": {
"type": "string"
},
"observer_read": {
"type": "array",
"items": {
"type": "string"
}
},
"target_self_read": {
"type": "array",
"items": {
"type": "string"
}
},
"misread_patterns": {
"type": "array",
"items": {
"type": "string"
}
},
"likely_insults": {
"type": "array",
"items": {
"type": "string"
}
},
"projection_use": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"role_pressure_field": {
"type": "object",
"required": [
"role_id",
"summary",
"obligations",
"available_masks",
"failure_modes",
"source_refs"
],
"additionalProperties": false,
"properties": {
"role_id": {
"type": "string"
},
"summary": {
"type": "string"
},
"obligations": {
"type": "array",
"items": {
"type": "string"
}
},
"available_masks": {
"type": "array",
"items": {
"type": "string"
}
},
"failure_modes": {
"type": "array",
"items": {
"type": "string"
}
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"speaker_lore_boundary": {
"type": "object",
"required": [
"speaker_id",
"known_context",
"beliefs",
"misreads",
"must_not_know"
],
"additionalProperties": false,
"properties": {
"speaker_id": {
"type": "string"
},
"known_context": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
},
"beliefs": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
},
"misreads": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
},
"must_not_know": {
"type": "array",
"items": {
"$ref": "#/$defs/sourced_text"
}
}
}
},
"open_question": {
"type": "object",
"required": [
"question",
"blocks_training",
"notes"
],
"additionalProperties": false,
"properties": {
"question": {
"type": "string"
},
"blocks_training": {
"type": "boolean"
},
"notes": {
"type": "string"
}
}
}
}
}