#This document describes all meta data/schema values available.
#
# meta-meta (description how to parse that file)
#
# key: the name of the meta-key
# type: (string|enumeration|regular expression) the type of the meta-value
# status: (implemented|idea) the current state of this meta data entry
# plugin: the plugins which use the meta-key (space separated)
# description: explains what it is about
#
# v0.2

key: order
type: int
status: implemented
plugin: hosts augeas keytometa
description: relative order in the keyset if non-alphabetical order
             is needed

key: comment
type: string
status: implemented
plugin: hosts (keytometa)
description: the users comment about the key (mostly its value)
             (TODO CHECK)
             the first line is the comment after a key=value
             further lines are the lines before a key=value

key: check/type
type: string
status: implemented
plugin: type
description: defines the type of the value

key: check/format
type: string
status: idea
description: defines the format of the value

key: check/path
status: implemented
plugin: path
description: defines which file (path) the value referes to

key: check/validation
status: implemented
plugin: validation
type: regular expression
description: a regular expression to check against

key: check/validation/message
status: implemented
plugin: validation
description: a message added to warning if validation fails

key: check/range
status: idea
description: range checks, from-to, or arbitrary sets of numbers

key: source
status: idea
description: states where a key comes from if it is not from an ordinary
 persistent configuration. E.g.: hardware (queries)
 e.g. system/sw/xorg/current/monitor might have "source" metadata if it
 is queried from hardware and not from configuration file.

key: dependency/control
status: idea
description: control keys which enable/disable parameters

key: dependency/value
status: idea
description: specific values of the dependency key have impact on that key

key: application/name
status: idea
description: links a key to a application, so that it can be easily purged
 when the application is no longer installed.
 Note that this is only needed together with another option below like version.
 Typically purged keys can be found easily when no schema for it exists anymore.

key: application/version
status: idea
description: links a key to a specific set of version(s). Can be used to control
 purging even more specific

key: restrict/write
status: idea
description: avoid writing on the value of the key, it still can be removed

key: restrict/remove
status: idea
description: avoid removal of key (needs schema-checker to read key)

key: final
status: idea
plugin: merger
description: do not allow the key to be overwritten by a merger plugin

key: evaluate/<language>
type: program code
status: idea
plugin: evaluater
description: evaluate expression to check if key should be included, program should
 abort or however evalute plugin is configured

key: uid
status: currently obsolete
type: time
description: The owner of the key.

key: gid
status: currently obsolete
type: time
description: The group of the key.

key: mode
status: currently obsolete
type: int
description: The access mode of the key.


key: atime
type: time
status: currently obsolete
description: The time when the key was last accessed.


key: mtime
type: time
status: currently obsolete
description: The time when the value of a key were last modified.


key: ctime
type: time
status: currently obsolete
description: The time when the meta data of a key were last modified.
