type: map
mapping:
  global:
    name: global
    desc: archer's global configuration = $self->{conf}
    type: map
    required: true
    mapping:
      "work_dir":
        name: work_dir
        desc: working directory
        type: str
        required: true
      "dest_dir":
        name: dest_dir
        desc: dest. directory
        type: str
      "assets_path":
        name: assets_path
        desc: path to assets
        type: str
        required: false
      "recipe":
        name: recipe
        desc: additional recipe path
        type: str
      "log":
        name: log
        desc: log
        type: map
        mapping:
          "level":
            name: log-level
            desc: log-level
            type: str
            enum:
              - debug
              - warn
              - info
              - error
  tasks:
    name: tasks
    desc: list of tests
    type: map
    required: true
    mapping:
      init:
        type: seq
        sequence:
          - type: map
            mapping:
              "module":
                type: str
                required: true
              "name":
                type: str
                required: true
              "skip_default":
                type: bool
                required: no
              "config":
                type: any
              "role":
                type: any
      ready:
        type: seq
        sequence:
          - type: map
            mapping:
              "module":
                type: str
                required: true
              "name":
                type: str
                required: true
              "skip_default":
                type: bool
                required: no
              "config":
                type: any
              "role":
                type: any
      process:
        type: seq
        sequence:
          - type: map
            mapping:
              "module":
                type: str
                required: true
              "name":
                type: str
                required: true
              "skip_default":
                type: bool
                required: no
              "config":
                type: any
              "role":
                type: any
      finalize:
        type: seq
        sequence:
          - type: map
            mapping:
              "module":
                type: str
                required: true
              "name":
                type: str
                required: true
              "skip_default":
                type: bool
                required: no
              "config":
                type: any
              "role":
                type: any

  "projects":
    name: list of projects
    desc: list of projects
    type: any
    required: true