Skip to main content

Module

To get support by the Visual Studio Code extension, create a file with the name *.module.yml or *.module.yaml.

version: "0.1"
module:
id: "my-module"
title: "Module Title"
sessions: [...]
contents: [...]
module-groups: [...]

Root Structure​

The top-level YAML structure.

PropertyTypeRequiredDescription
versionstringYesFixed to "0.1".
moduleModuleYesThe module definition.

Module​

The root configuration object for an AMSL module.

PropertyTypeRequiredDescription
idstringYesUnique identifier for the module.
titlestringYesDisplay title of the module.
subtitlestringNoSubtitle of the module.
descriptionstringNoLong description.
iconstringNoIcon name/path.
bannerstringNoBanner image path.
categoryModuleCategoryNoCategory: "onboarding", "learning" (default), "course", or "journal".
contentsarray<Content>NoList of Content. Default: [].
sessionsarray<Session>YesList of Session. Must have at least one.
module-groupsarray<string>YesModule groups for frontend display.
assessmentModuleAssessmentNoPre/Post assessment configuration.
quizzablebooleanNoWhether the module is quizzable (can be used in quiz tool). Default: false.
hiddenbooleanNoWhether the module is hidden from frontend. Default: false.
weightinteger (uint)NoOrdering weight (higher = higher in list).
self-learningFeatureNoSelf-learning feature config. Default: disabled.
default-sessionstringNoID of the default session.
groups-whitelistarray<string>NoUser groups required to access. Default: [].
groups-blacklistarray<string>NoUser groups blocked from accessing. Default: [].
themeThemeNoVisual theme.
metadataMetadataNoAdditional metadata.
customobjectNoCustom properties (arbitrary key-value pairs).

Example​

version: "0.1"
module:
id: "example"
title: "Example Module"
module-groups:
- "learning"
contents: [...]
sessions: [...]

Session​

Defines a learning session within the module.

PropertyTypeRequiredDescription
idstringYesUnique identifier for the session.
titlestringYesSession title.
subtitlestringNoSession subtitle.
descriptionstringNoSession description.
iconstringNoIcon name/path.
bannerstringNoBanner image path.
contentsarray<string>NoList of content IDs included. Default: [].
timeinteger (int32)NoEstimated time to complete in minutes.
hiddenbooleanNoWhether the session is hidden from frontend. Default: false.
quizzablebooleanNoWhether to include in quizzes. Default: true.
providerLlmServiceNoAI provider. Default: "openai".
botstringNoDeprecated: bot configuration ID.
llm-agentstringYesLLM Agent ID to use.
next-sessionstringNoID of the next session for navigation.
unlockUnlockNoUnlock conditions.
themeThemeNoSession-specific theme.
metadataMetadataNoSession metadata.
customobjectNoCustom properties (arbitrary key-value pairs).

Example​

version: "0.1"
module:
id: "example"
title: "Example Module"
module-groups:
- "learning"
contents: [...]
sessions:
- id: "session-1"
title: "Session 1"
llm-agent: "tutor"
contents: [...]

Content​

Defines the content which is included in a session.

PropertyTypeRequiredDescription
idstringYesUnique content ID.
titlestringYesContent title.
contentsarray<string>YesParagraphs/blocks of text content.
goalstringNoLearning goal (what the user should achieve).
sourcesContentSourcesNoDocument references from the AMSL collection.
examsarray<ContentExam>NoQuiz/exam questions. Default: [].
unlockUnlockNoUnlock conditions.

ContentSources​

Defines references/sources to documents in the AMSL collection.

PropertyTypeRequiredDescription
primaryarray<string>NoIDs of primary sources (main references shown to user, e.g., lecture slides). Default: [].
secondaryarray<string>NoIDs of secondary sources (additional references, not shown to user, e.g., books). Default: [].

ContentExam​

Defines an embedded quiz/exam question (used for generating quizzes).

PropertyTypeRequiredDescription
questionstringYesThe question text.
levelQuestionBloomLevelYesBloom's taxonomy level (cognitive complexity).
optionsarray<ContentExamOption>NoList of ContentExamOption. For multiple-choice only. Default: [].
solutionstringNoExplanation or solution for the question.

ContentExamOption​

If a question has answer options, this defines one of them.

PropertyTypeRequiredDescription
optionstringYesOption text.
is_correctbooleanYesWhether this option is correct.

Example​

version: "0.1"
module:
id: "example"
title: "Example Module"
module-groups:
- "learning"
contents:
- id: "content-1"
title: "Content 1"
contents:
- "This is the first content block."
- "This is the second content block."
goal: "Learn about content 1."
sources:
primary: ["doc-1"]
secondary: ["doc-2"]
exams:
- question: "What is content 1 about?"
level: "understand"
sessions: [...]

Unlock​

Defines conditions under which a resource (session, content) becomes available to the user.

PropertyTypeRequiredDescription
triggersarray<UnlockTrigger>YesList of UnlockTrigger.
trigger-modeUnlockTriggerModeNoHow to evaluate triggers: "all" (default) or "any".

UnlockTrigger​

One of the following configurations:

Time-based:

  • time: { "after": "partal-date-time or date-time" }

Completion-based:

  • completion:

UnlockTriggerWait​

Optional delay before unlocking. One of:

  • { "days": integer }
  • { "seconds": integer }

UnlockTriggerMode​

String. "all" or "any".

Example​

version: "0.1"
module:
id: "example"
title: "Example Module"
module-groups:
- "learning"
contents: [...]
sessions:
- id: "session-1"
title: "Session 1"
llm-agent: "tutor"
contents: [...]
unlock:
triggers:
- time:
after: "2025-12-13T19:24:40+01:00"
trigger-mode: "all"

Common Types​

LlmService​

String. One of:

  • "openai"
  • "gwdg"
  • "win"

Feature​

Configuration for optional features (e.g., self-learning).

PropertyTypeRequiredDescription
enabledbooleanNoWhether the feature is enabled. Default: false.
providerLlmServiceNoAI provider override. Default: "openai".
llm-agentstringNoLLM Agent ID for this feature.
themeThemeNoFeature-specific theme.
unlockUnlockNoUnlock conditions for the feature.

Metadata​

General purpose metadata container.

PropertyTypeRequiredDescription
annotationsmap<string, string>NoKey-value annotations.

Theme​

Visual theme configuration.

PropertyTypeRequiredDescription
idstringYesTheme identifier.

ModuleAssessment​

Links to pre- and post-assessments for the module.

PropertyTypeRequiredDescription
prestringYesAssessment ID required before starting the module.
poststringYesAssessment ID required to complete the module.

ModuleCategory​

String enum. Categorizes the module type.

  • "onboarding": Onboarding/introduction modules.
  • "learning": Lecture or learning content (default).
  • "course": Structured courses with dedicated order (no quizzable content & self-learning).
  • "journal": Journal or diary modules.

QuestionBloomLevel​

String enum. Bloom's taxonomy levels for cognitive complexity.

  • "remember": Recall facts and basic concepts.
  • "understand": Explain ideas or concepts.
  • "apply": Use information in a new situation.
  • "analyze": Draw connections among ideas.
  • "evaluate": Justify a stand or decision.
  • "create": Produce new or original work.