diff --git a/content/_meta/README.md b/content/_meta/README.md new file mode 100644 index 000000000..0800a891a --- /dev/null +++ b/content/_meta/README.md @@ -0,0 +1,6 @@ +# Content Infrastructure + +Directories prefixed with `_` are infrastructure, not game content. The server content loader skips directories starting with `_` when scanning for content files. + +- `_meta/` — Infrastructure metadata (this directory) +- `_schema/` — JSON Schema validation files (draft 2020-12) diff --git a/content/content.yaml b/content/content.yaml new file mode 100644 index 000000000..a62b6031c --- /dev/null +++ b/content/content.yaml @@ -0,0 +1,7 @@ +# Content manifest — The Settled Reach v0.1 +# The server reads this first to discover enabled districts and load order. +version: "0.1.0" +districts: + - id: "sova-transit" + path: "districts/sova-transit" + enabled: true diff --git a/content/districts/sova-transit/dialogue/maintenance-corridors/ring-operative.yaml b/content/districts/sova-transit/dialogue/maintenance-corridors/ring-operative.yaml new file mode 100644 index 000000000..a5cc92125 --- /dev/null +++ b/content/districts/sova-transit/dialogue/maintenance-corridors/ring-operative.yaml @@ -0,0 +1 @@ +# Dialogue: ring-operative at Maintenance Corridors diff --git a/content/districts/sova-transit/dialogue/the-last-shift/bar-owner.yaml b/content/districts/sova-transit/dialogue/the-last-shift/bar-owner.yaml new file mode 100644 index 000000000..565ae4882 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-last-shift/bar-owner.yaml @@ -0,0 +1 @@ +# Dialogue: bar-owner at The Last Shift diff --git a/content/districts/sova-transit/dialogue/the-last-shift/bar-regular.yaml b/content/districts/sova-transit/dialogue/the-last-shift/bar-regular.yaml new file mode 100644 index 000000000..6f99a3176 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-last-shift/bar-regular.yaml @@ -0,0 +1 @@ +# Dialogue: bar-regular at The Last Shift diff --git a/content/districts/sova-transit/dialogue/the-last-shift/bartender.yaml b/content/districts/sova-transit/dialogue/the-last-shift/bartender.yaml new file mode 100644 index 000000000..27b53f4a7 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-last-shift/bartender.yaml @@ -0,0 +1 @@ +# Dialogue: bartender at The Last Shift diff --git a/content/districts/sova-transit/dialogue/the-terminal/courier.yaml b/content/districts/sova-transit/dialogue/the-terminal/courier.yaml new file mode 100644 index 000000000..8fdc9b9c7 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-terminal/courier.yaml @@ -0,0 +1 @@ +# Dialogue: courier at The Terminal diff --git a/content/districts/sova-transit/dialogue/the-terminal/dock-worker.yaml b/content/districts/sova-transit/dialogue/the-terminal/dock-worker.yaml new file mode 100644 index 000000000..66a6d81fe --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-terminal/dock-worker.yaml @@ -0,0 +1 @@ +# Dialogue: dock-worker at The Terminal diff --git a/content/districts/sova-transit/dialogue/the-terminal/new-hire.yaml b/content/districts/sova-transit/dialogue/the-terminal/new-hire.yaml new file mode 100644 index 000000000..4390a85c5 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-terminal/new-hire.yaml @@ -0,0 +1 @@ +# Dialogue: new-hire at The Terminal diff --git a/content/districts/sova-transit/dialogue/the-terminal/scheduler.yaml b/content/districts/sova-transit/dialogue/the-terminal/scheduler.yaml new file mode 100644 index 000000000..54dd25883 --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-terminal/scheduler.yaml @@ -0,0 +1 @@ +# Dialogue: scheduler at The Terminal diff --git a/content/districts/sova-transit/dialogue/the-terminal/shift-supervisor.yaml b/content/districts/sova-transit/dialogue/the-terminal/shift-supervisor.yaml new file mode 100644 index 000000000..1247ffcdd --- /dev/null +++ b/content/districts/sova-transit/dialogue/the-terminal/shift-supervisor.yaml @@ -0,0 +1 @@ +# Dialogue: shift-supervisor at The Terminal diff --git a/content/districts/sova-transit/district.yaml b/content/districts/sova-transit/district.yaml new file mode 100644 index 000000000..a56bd83b4 --- /dev/null +++ b/content/districts/sova-transit/district.yaml @@ -0,0 +1,15 @@ +# Sova Transit District metadata (D-036) +canonical_id: "krenn.sova.transit" +display_name: "Sova Transit District" +system: "krenn" +station: "sova" +district: "transit" +description: > + A 40-year-old prefab-modular-retrofitted freight logistics hub on Station Sova. + Three social sites: The Terminal (logistics hub), The Last Shift (bar), + and maintenance corridors. +locations: + - "the-terminal" + - "the-last-shift" + - "maintenance-corridors" +npc_count: 17 diff --git a/content/districts/sova-transit/locations/maintenance-corridors.yaml b/content/districts/sova-transit/locations/maintenance-corridors.yaml new file mode 100644 index 000000000..74037a133 --- /dev/null +++ b/content/districts/sova-transit/locations/maintenance-corridors.yaml @@ -0,0 +1,2 @@ +# Location: Maintenance Corridors (smuggling spaces) +# canonical_id: krenn.sova.transit.location.maintenance-corridors diff --git a/content/districts/sova-transit/locations/the-last-shift.yaml b/content/districts/sova-transit/locations/the-last-shift.yaml new file mode 100644 index 000000000..cf07df16d --- /dev/null +++ b/content/districts/sova-transit/locations/the-last-shift.yaml @@ -0,0 +1,2 @@ +# Location: The Last Shift (bar) +# canonical_id: krenn.sova.transit.location.the-last-shift diff --git a/content/districts/sova-transit/locations/the-terminal.yaml b/content/districts/sova-transit/locations/the-terminal.yaml new file mode 100644 index 000000000..7ea006283 --- /dev/null +++ b/content/districts/sova-transit/locations/the-terminal.yaml @@ -0,0 +1,2 @@ +# Location: The Terminal (logistics hub) +# canonical_id: krenn.sova.transit.location.the-terminal diff --git a/content/districts/sova-transit/monologue/detective/general.yaml b/content/districts/sova-transit/monologue/detective/general.yaml new file mode 100644 index 000000000..a1330ca50 --- /dev/null +++ b/content/districts/sova-transit/monologue/detective/general.yaml @@ -0,0 +1 @@ +# Monologue: detective at general diff --git a/content/districts/sova-transit/monologue/detective/maintenance-corridors.yaml b/content/districts/sova-transit/monologue/detective/maintenance-corridors.yaml new file mode 100644 index 000000000..ce27cb434 --- /dev/null +++ b/content/districts/sova-transit/monologue/detective/maintenance-corridors.yaml @@ -0,0 +1 @@ +# Monologue: detective at maintenance-corridors diff --git a/content/districts/sova-transit/monologue/detective/the-last-shift.yaml b/content/districts/sova-transit/monologue/detective/the-last-shift.yaml new file mode 100644 index 000000000..2f422b2e6 --- /dev/null +++ b/content/districts/sova-transit/monologue/detective/the-last-shift.yaml @@ -0,0 +1 @@ +# Monologue: detective at the-last-shift diff --git a/content/districts/sova-transit/monologue/detective/the-terminal.yaml b/content/districts/sova-transit/monologue/detective/the-terminal.yaml new file mode 100644 index 000000000..afbc4c886 --- /dev/null +++ b/content/districts/sova-transit/monologue/detective/the-terminal.yaml @@ -0,0 +1 @@ +# Monologue: detective at the-terminal diff --git a/content/districts/sova-transit/monologue/smuggler/general.yaml b/content/districts/sova-transit/monologue/smuggler/general.yaml new file mode 100644 index 000000000..786bbd0aa --- /dev/null +++ b/content/districts/sova-transit/monologue/smuggler/general.yaml @@ -0,0 +1 @@ +# Monologue: smuggler at general diff --git a/content/districts/sova-transit/monologue/smuggler/maintenance-corridors.yaml b/content/districts/sova-transit/monologue/smuggler/maintenance-corridors.yaml new file mode 100644 index 000000000..5ee5f5e34 --- /dev/null +++ b/content/districts/sova-transit/monologue/smuggler/maintenance-corridors.yaml @@ -0,0 +1 @@ +# Monologue: smuggler at maintenance-corridors diff --git a/content/districts/sova-transit/monologue/smuggler/the-last-shift.yaml b/content/districts/sova-transit/monologue/smuggler/the-last-shift.yaml new file mode 100644 index 000000000..ce327e9fc --- /dev/null +++ b/content/districts/sova-transit/monologue/smuggler/the-last-shift.yaml @@ -0,0 +1 @@ +# Monologue: smuggler at the-last-shift diff --git a/content/districts/sova-transit/monologue/smuggler/the-terminal.yaml b/content/districts/sova-transit/monologue/smuggler/the-terminal.yaml new file mode 100644 index 000000000..68e377e93 --- /dev/null +++ b/content/districts/sova-transit/monologue/smuggler/the-terminal.yaml @@ -0,0 +1 @@ +# Monologue: smuggler at the-terminal diff --git a/content/districts/sova-transit/npcs/devra.yaml b/content/districts/sova-transit/npcs/devra.yaml new file mode 100644 index 000000000..846fa92af --- /dev/null +++ b/content/districts/sova-transit/npcs/devra.yaml @@ -0,0 +1,2 @@ +# NPC Profile: devra +# canonical_id: krenn.sova.transit.npc.devra diff --git a/content/districts/sova-transit/npcs/drin.yaml b/content/districts/sova-transit/npcs/drin.yaml new file mode 100644 index 000000000..cff9246ae --- /dev/null +++ b/content/districts/sova-transit/npcs/drin.yaml @@ -0,0 +1,2 @@ +# NPC Profile: drin +# canonical_id: krenn.sova.transit.npc.drin diff --git a/content/districts/sova-transit/npcs/harek.yaml b/content/districts/sova-transit/npcs/harek.yaml new file mode 100644 index 000000000..7514edd0b --- /dev/null +++ b/content/districts/sova-transit/npcs/harek.yaml @@ -0,0 +1,2 @@ +# NPC Profile: harek +# canonical_id: krenn.sova.transit.npc.harek diff --git a/content/districts/sova-transit/npcs/kael-davan.yaml b/content/districts/sova-transit/npcs/kael-davan.yaml new file mode 100644 index 000000000..afcf96b4c --- /dev/null +++ b/content/districts/sova-transit/npcs/kael-davan.yaml @@ -0,0 +1,2 @@ +# NPC Profile: kael-davan +# canonical_id: krenn.sova.transit.npc.kael-davan diff --git a/content/districts/sova-transit/npcs/lera-sessik.yaml b/content/districts/sova-transit/npcs/lera-sessik.yaml new file mode 100644 index 000000000..22c4bc44e --- /dev/null +++ b/content/districts/sova-transit/npcs/lera-sessik.yaml @@ -0,0 +1,2 @@ +# NPC Profile: lera-sessik +# canonical_id: krenn.sova.transit.npc.lera-sessik diff --git a/content/districts/sova-transit/npcs/maret-korr.yaml b/content/districts/sova-transit/npcs/maret-korr.yaml new file mode 100644 index 000000000..6f05c5f54 --- /dev/null +++ b/content/districts/sova-transit/npcs/maret-korr.yaml @@ -0,0 +1,2 @@ +# NPC Profile: maret-korr +# canonical_id: krenn.sova.transit.npc.maret-korr diff --git a/content/districts/sova-transit/npcs/naia-tamm.yaml b/content/districts/sova-transit/npcs/naia-tamm.yaml new file mode 100644 index 000000000..7e4a8e1c6 --- /dev/null +++ b/content/districts/sova-transit/npcs/naia-tamm.yaml @@ -0,0 +1,2 @@ +# NPC Profile: naia-tamm +# canonical_id: krenn.sova.transit.npc.naia-tamm diff --git a/content/districts/sova-transit/npcs/olin.yaml b/content/districts/sova-transit/npcs/olin.yaml new file mode 100644 index 000000000..ac9662342 --- /dev/null +++ b/content/districts/sova-transit/npcs/olin.yaml @@ -0,0 +1,2 @@ +# NPC Profile: olin +# canonical_id: krenn.sova.transit.npc.olin diff --git a/content/districts/sova-transit/npcs/pell.yaml b/content/districts/sova-transit/npcs/pell.yaml new file mode 100644 index 000000000..18c727a2c --- /dev/null +++ b/content/districts/sova-transit/npcs/pell.yaml @@ -0,0 +1,2 @@ +# NPC Profile: pell +# canonical_id: krenn.sova.transit.npc.pell diff --git a/content/districts/sova-transit/npcs/renn.yaml b/content/districts/sova-transit/npcs/renn.yaml new file mode 100644 index 000000000..6ab7c95d2 --- /dev/null +++ b/content/districts/sova-transit/npcs/renn.yaml @@ -0,0 +1,2 @@ +# NPC Profile: renn +# canonical_id: krenn.sova.transit.npc.renn diff --git a/content/districts/sova-transit/npcs/resha.yaml b/content/districts/sova-transit/npcs/resha.yaml new file mode 100644 index 000000000..5b088b58e --- /dev/null +++ b/content/districts/sova-transit/npcs/resha.yaml @@ -0,0 +1,2 @@ +# NPC Profile: resha +# canonical_id: krenn.sova.transit.npc.resha diff --git a/content/districts/sova-transit/npcs/sabel.yaml b/content/districts/sova-transit/npcs/sabel.yaml new file mode 100644 index 000000000..7b7e0dccd --- /dev/null +++ b/content/districts/sova-transit/npcs/sabel.yaml @@ -0,0 +1,2 @@ +# NPC Profile: sabel +# canonical_id: krenn.sova.transit.npc.sabel diff --git a/content/districts/sova-transit/npcs/sera-venn.yaml b/content/districts/sova-transit/npcs/sera-venn.yaml new file mode 100644 index 000000000..2c264100c --- /dev/null +++ b/content/districts/sova-transit/npcs/sera-venn.yaml @@ -0,0 +1,2 @@ +# NPC Profile: sera-venn +# canonical_id: krenn.sova.transit.npc.sera-venn diff --git a/content/districts/sova-transit/npcs/sess.yaml b/content/districts/sova-transit/npcs/sess.yaml new file mode 100644 index 000000000..f7a83ac28 --- /dev/null +++ b/content/districts/sova-transit/npcs/sess.yaml @@ -0,0 +1,2 @@ +# NPC Profile: sess +# canonical_id: krenn.sova.transit.npc.sess diff --git a/content/districts/sova-transit/npcs/tav.yaml b/content/districts/sova-transit/npcs/tav.yaml new file mode 100644 index 000000000..871ec7d40 --- /dev/null +++ b/content/districts/sova-transit/npcs/tav.yaml @@ -0,0 +1,2 @@ +# NPC Profile: tav +# canonical_id: krenn.sova.transit.npc.tav diff --git a/content/districts/sova-transit/npcs/torek-lintar.yaml b/content/districts/sova-transit/npcs/torek-lintar.yaml new file mode 100644 index 000000000..43f865e97 --- /dev/null +++ b/content/districts/sova-transit/npcs/torek-lintar.yaml @@ -0,0 +1,2 @@ +# NPC Profile: torek-lintar +# canonical_id: krenn.sova.transit.npc.torek-lintar diff --git a/content/districts/sova-transit/npcs/voss.yaml b/content/districts/sova-transit/npcs/voss.yaml new file mode 100644 index 000000000..cfdad929c --- /dev/null +++ b/content/districts/sova-transit/npcs/voss.yaml @@ -0,0 +1,2 @@ +# NPC Profile: voss +# canonical_id: krenn.sova.transit.npc.voss diff --git a/content/districts/sova-transit/routines/schedules.yaml b/content/districts/sova-transit/routines/schedules.yaml new file mode 100644 index 000000000..b59e9f585 --- /dev/null +++ b/content/districts/sova-transit/routines/schedules.yaml @@ -0,0 +1,2 @@ +# NPC daily routine schedules — Sova Transit District +# All NPC schedules in one file for cross-NPC scheduling validation diff --git a/content/districts/sova-transit/templates/.gitkeep b/content/districts/sova-transit/templates/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/content/districts/sova-transit/triangles/bar-tensions.yaml b/content/districts/sova-transit/triangles/bar-tensions.yaml new file mode 100644 index 000000000..230477d94 --- /dev/null +++ b/content/districts/sova-transit/triangles/bar-tensions.yaml @@ -0,0 +1 @@ +# Triangle: bar-tensions diff --git a/content/districts/sova-transit/triangles/hub-power.yaml b/content/districts/sova-transit/triangles/hub-power.yaml new file mode 100644 index 000000000..e6b04973e --- /dev/null +++ b/content/districts/sova-transit/triangles/hub-power.yaml @@ -0,0 +1 @@ +# Triangle: hub-power diff --git a/content/districts/sova-transit/triangles/informant-question.yaml b/content/districts/sova-transit/triangles/informant-question.yaml new file mode 100644 index 000000000..6f074c355 --- /dev/null +++ b/content/districts/sova-transit/triangles/informant-question.yaml @@ -0,0 +1 @@ +# Triangle: informant-question diff --git a/content/districts/sova-transit/triangles/worried-knowledge.yaml b/content/districts/sova-transit/triangles/worried-knowledge.yaml new file mode 100644 index 000000000..107e0a5c9 --- /dev/null +++ b/content/districts/sova-transit/triangles/worried-knowledge.yaml @@ -0,0 +1 @@ +# Triangle: worried-knowledge diff --git a/content/districts/sova-transit/triangles/worried-partner.yaml b/content/districts/sova-transit/triangles/worried-partner.yaml new file mode 100644 index 000000000..de7748a3e --- /dev/null +++ b/content/districts/sova-transit/triangles/worried-partner.yaml @@ -0,0 +1 @@ +# Triangle: worried-partner diff --git a/content/global/contraband/.gitkeep b/content/global/contraband/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/content/global/enums/access-tiers.yaml b/content/global/enums/access-tiers.yaml new file mode 100644 index 000000000..21412494d --- /dev/null +++ b/content/global/enums/access-tiers.yaml @@ -0,0 +1 @@ +# Access tiers: public, insider, authority, peer, hostile diff --git a/content/global/enums/moods.yaml b/content/global/enums/moods.yaml new file mode 100644 index 000000000..c676a3f57 --- /dev/null +++ b/content/global/enums/moods.yaml @@ -0,0 +1 @@ +# 8 mood values diff --git a/content/global/enums/motivations.yaml b/content/global/enums/motivations.yaml new file mode 100644 index 000000000..aec994dca --- /dev/null +++ b/content/global/enums/motivations.yaml @@ -0,0 +1 @@ +# 6 functional motivations (System B) diff --git a/content/global/enums/patterns.yaml b/content/global/enums/patterns.yaml new file mode 100644 index 000000000..60ea55e39 --- /dev/null +++ b/content/global/enums/patterns.yaml @@ -0,0 +1 @@ +# 9 thematic patterns (System A) diff --git a/content/global/enums/situations.yaml b/content/global/enums/situations.yaml new file mode 100644 index 000000000..f1c8245c7 --- /dev/null +++ b/content/global/enums/situations.yaml @@ -0,0 +1 @@ +# 13 situation values (D-035) diff --git a/content/global/enums/topics.yaml b/content/global/enums/topics.yaml new file mode 100644 index 000000000..c610c1bfc --- /dev/null +++ b/content/global/enums/topics.yaml @@ -0,0 +1 @@ +# 9 topic values diff --git a/content/global/enums/triggers.yaml b/content/global/enums/triggers.yaml new file mode 100644 index 000000000..c74009f32 --- /dev/null +++ b/content/global/enums/triggers.yaml @@ -0,0 +1 @@ +# 9 monologue trigger types diff --git a/content/global/enums/trust-tiers.yaml b/content/global/enums/trust-tiers.yaml new file mode 100644 index 000000000..d5e8f8ae8 --- /dev/null +++ b/content/global/enums/trust-tiers.yaml @@ -0,0 +1 @@ +# Trust tiers: surface, real, secret diff --git a/content/global/factions/concord-assembly.yaml b/content/global/factions/concord-assembly.yaml new file mode 100644 index 000000000..bb6cde3c1 --- /dev/null +++ b/content/global/factions/concord-assembly.yaml @@ -0,0 +1 @@ +# Faction: concord-assembly diff --git a/content/global/factions/guardians-of-autonomy.yaml b/content/global/factions/guardians-of-autonomy.yaml new file mode 100644 index 000000000..40826906e --- /dev/null +++ b/content/global/factions/guardians-of-autonomy.yaml @@ -0,0 +1 @@ +# Faction: guardians-of-autonomy diff --git a/content/global/factions/lattice-commission.yaml b/content/global/factions/lattice-commission.yaml new file mode 100644 index 000000000..b728e7282 --- /dev/null +++ b/content/global/factions/lattice-commission.yaml @@ -0,0 +1 @@ +# Faction: lattice-commission diff --git a/content/global/factions/syndics.yaml b/content/global/factions/syndics.yaml new file mode 100644 index 000000000..a5e45779b --- /dev/null +++ b/content/global/factions/syndics.yaml @@ -0,0 +1 @@ +# Faction: syndics diff --git a/content/global/factions/the-ring.yaml b/content/global/factions/the-ring.yaml new file mode 100644 index 000000000..1690293b0 --- /dev/null +++ b/content/global/factions/the-ring.yaml @@ -0,0 +1 @@ +# Faction: the-ring diff --git a/content/global/factions/the-unbound.yaml b/content/global/factions/the-unbound.yaml new file mode 100644 index 000000000..6d1041c66 --- /dev/null +++ b/content/global/factions/the-unbound.yaml @@ -0,0 +1 @@ +# Faction: the-unbound diff --git a/content/global/factions/veil-institute.yaml b/content/global/factions/veil-institute.yaml new file mode 100644 index 000000000..a64e88d76 --- /dev/null +++ b/content/global/factions/veil-institute.yaml @@ -0,0 +1 @@ +# Faction: veil-institute diff --git a/content/global/knowledge/contraband.yaml b/content/global/knowledge/contraband.yaml new file mode 100644 index 000000000..df2c774aa --- /dev/null +++ b/content/global/knowledge/contraband.yaml @@ -0,0 +1 @@ +# Fact catalog: contraband diff --git a/content/global/knowledge/entity-attributes.yaml b/content/global/knowledge/entity-attributes.yaml new file mode 100644 index 000000000..c99baed2c --- /dev/null +++ b/content/global/knowledge/entity-attributes.yaml @@ -0,0 +1 @@ +# Entity attributes — 16 canonical EntityKnowledge keys (D-055) diff --git a/content/global/knowledge/investigation.yaml b/content/global/knowledge/investigation.yaml new file mode 100644 index 000000000..0e79cb5c4 --- /dev/null +++ b/content/global/knowledge/investigation.yaml @@ -0,0 +1 @@ +# Fact catalog: investigation diff --git a/content/global/knowledge/location.yaml b/content/global/knowledge/location.yaml new file mode 100644 index 000000000..f87eec878 --- /dev/null +++ b/content/global/knowledge/location.yaml @@ -0,0 +1 @@ +# Fact catalog: location diff --git a/content/global/knowledge/progress.yaml b/content/global/knowledge/progress.yaml new file mode 100644 index 000000000..4e93de846 --- /dev/null +++ b/content/global/knowledge/progress.yaml @@ -0,0 +1 @@ +# Fact catalog: progress diff --git a/content/global/knowledge/relationship.yaml b/content/global/knowledge/relationship.yaml new file mode 100644 index 000000000..00943bb27 --- /dev/null +++ b/content/global/knowledge/relationship.yaml @@ -0,0 +1 @@ +# Fact catalog: relationship diff --git a/content/global/knowledge/world.yaml b/content/global/knowledge/world.yaml new file mode 100644 index 000000000..4d3bd7164 --- /dev/null +++ b/content/global/knowledge/world.yaml @@ -0,0 +1 @@ +# Fact catalog: world diff --git a/content/global/regions/krenn.yaml b/content/global/regions/krenn.yaml new file mode 100644 index 000000000..689895b1a --- /dev/null +++ b/content/global/regions/krenn.yaml @@ -0,0 +1 @@ +# Krenn System — regional metadata (D-036) diff --git a/content/global/technology/.gitkeep b/content/global/technology/.gitkeep new file mode 100644 index 000000000..e69de29bb