Skip to content

Landscape JSON Field Reference

Generated artifact. Do not edit manually.

Generated by: scripts/build_compendia.py Regenerate with: python3 scripts/build_compendia.py --compendium dev-handbook --web-and-tex Source of truth: docs/dev/source/

Language / Sprache: English (EN) · Deutsch (DE) | PDF: English PDF · Deutsches PDF

Compendium: §1 Documentation Guidelines · §2 Landscape JSON Reference · §3 Minimal Schema & Fallback · §4 Authoring Editors · §5 Graph Editor · §6 Flashcard Editor · §7 Node Ordering · §8 Liquibase · §9 Auto-Update (SSE)


2. Landscape JSON Field Reference

This chapter documents the field-level authoring and runtime contract for SkillLandscape JSON files validated against docs/landscape-runtime.schema.json and mapped into UiGoal in goalTypes.ts (see node semantics in Node Types and projection contracts in View Projection).

2.1. Top-Level SkillLandscape Fields

| Field | Required? | Purpose & Constraints | | –- | –- | –- | | landscapeId | Yes | Globally unique stable identifier of the skill landscape. | | locale | Yes | Primary authoring locale ("de" or "en"). | | subject | Yes | Canonical subject key used for routing, grouping, and asset paths. | | title, description | Yes | Localized title and overview (titleEn, descriptionEn optional for inline EN translations). | | frameworkId, filters | Optional | Institutional framework tag and selectable scope filter definitions (for example GK, LK, jurisdiction). | | programUnits, goalPlacements, competencyCatalog | Optional | Additive projection-layer arrays (3). | | goals | Yes | Ordered array of LearningGoal records forming the contains and requires DAGs. | {cols="26%,14%,60%"}

2.2. LearningGoal, dimensionTags, and Provenance Fields

| Field Group | Fields & Runtime Interpretation | | –- | –- | | Identity & text | id (stable UUID, never reused for new meaning), optional landscape-unique shortKey, title (titleEn), description (descriptionEn). | | Graph relations | contains (ordered child goal IDs; empty [] = atomic goal, non-empty = cluster goal) and requires (prerequisite goal IDs; target state strictly atomic-to-atomic). | | Classification & weight | weight (numeric workload/progress weight), optional core (boolean), courseLevel, tags (string[]), semanticKind / nodeKind / type, applicability, and competencyRefs. | | Pedagogical payloads | examples, extendedData (including applicabilityOverrides and manual tree-order hints), examData (taskContent, solutionContent, scoring), and experimentData. | | dimensionTags | Structured metadata object: phase (E, Q1–Q4, SekI, GLOBAL, compatibility/badge field), demandLevel (AB1–AB3), processCompetencies, guidingIdeas, framework, area, topicCode. | | Provenance & media | sourceRef (official curriculum locator) and resourceLinks (type: "curriculum" or "goal-visualization", never new external provider links on canonical goals; see Source & Resource Links). | {cols="26%,74%"}

At runtime, frontend loaders normalize LearningGoal entries into UiGoal (goalTypes.ts) and evaluate scope filters, frontier availability, SRS decks, and mastery aggregation without mutating authored JSON identities.