From ece4dfe1c4b6a8169c55e9697b0a9a6690e91903 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Thu, 12 Feb 2026 20:14:41 +0100 Subject: [PATCH] fix(data): restore hierarchical fields in district metadata Re-added system/station/district fields to district.yaml that were incorrectly removed during Tyre10 cleanup. These carry hierarchical context (planet, station), not redundant identity. Made canonical_id optional in schema since it's derived from directory path at load time. Co-Authored-By: Claude Opus 4.6 --- content/_schema/district.schema.json | 4 ++-- content/districts/sova-transit/district.yaml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/content/_schema/district.schema.json b/content/_schema/district.schema.json index 564540542..43bf67a5e 100644 --- a/content/_schema/district.schema.json +++ b/content/_schema/district.schema.json @@ -4,13 +4,13 @@ "title": "District Metadata", "description": "District definition file — one per district directory (D-036).", "type": "object", - "required": ["canonical_id", "display_name", "system", "station", "district", "description", "locations", "npc_count"], + "required": ["display_name", "system", "station", "district", "description", "locations", "npc_count"], "additionalProperties": false, "properties": { "canonical_id": { "type": "string", "pattern": "^[a-z]+\\.[a-z]+\\.[a-z-]+$", - "description": "Canonical ID in format {system}.{station}.{district}" + "description": "Optional — derived from directory path at load time. If present, must match {system}.{station}.{district}." }, "display_name": { "type": "string", diff --git a/content/districts/sova-transit/district.yaml b/content/districts/sova-transit/district.yaml index a56bd83b4..d9654c10f 100644 --- a/content/districts/sova-transit/district.yaml +++ b/content/districts/sova-transit/district.yaml @@ -1,5 +1,6 @@ # Sova Transit District metadata (D-036) -canonical_id: "krenn.sova.transit" +# Source of truth for identity: directory path (districts/sova-transit/). +# canonical_id is derived from the path at load time by ContentValidator. display_name: "Sova Transit District" system: "krenn" station: "sova"