# Component Configurations
# This file contains detailed configurations for each dialogue component.
# Modify this file for component-specific optimizations without changing the core skill.

components:
  dialogue_reading:
    required_fields: ["text", "language"]
    format:
      text: "string"  # Required
      audio: "optional_file"  # Optional
      language: "string"  # Required
    config:
      duration: 30  # Expected reading time in seconds
      scoring_threshold: 80  # Accuracy threshold (0-100)
    validation_rules:
      - "text must not be empty"
      - "language must be supported"

  dialogue_expression:
    format:
      text: "string_with_cues"  # e.g., "[happy] Hello!"
      media: "optional_file"  # Video/image examples
    config:
      expression_types: ["happy", "sad", "angry"]
      detection_threshold: 0.7
    validation_rules:
      - "expression cues must match types"
      - "media file must be valid"

  dialogue_selective_reading:
    format:
      full_dialogue: "string"
      selectable_parts: "array_of_strings"
    config:
      min_selections: 1
      max_selections: 5
      feedback_enabled: true
    validation_rules:
      - "selectable_parts must be subset of full_dialogue"
      - "selections count within limits"

  dialogue_selection:
    format:
      prompt: "string"
      options: "array_of_strings"
      correct_answer: "integer"  # Index of correct option
    config:
      multiple_choice: false
      points_per_correct: 1
    validation_rules:
      - "correct_answer must be valid index"
      - "options must have at least 2 items"

  dialogue_sentence_building:
    format:
      words_phrases: "array_of_strings"  # Shuffled components
      target_sentence: "string"
    config:
      difficulty_level: "medium"  # "easy", "medium", "hard"
      hints_enabled: true
    validation_rules:
      - "words_phrases must form target_sentence"
      - "difficulty must be valid"

  dialogue_fill_in_the_blanks:
    format:
      template: "string_with_blanks"  # e.g., "Hello [blank]!"
      answers: "array_of_strings"
    config:
      case_sensitive: false
      partial_credit: true
    validation_rules:
      - "blanks count must match answers"
      - "template must have placeholders"