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.