{
  "props": {
    "error": {
      "type": "Boolean",
      "desc": "Does field have validation errors?",
      "category": "behavior"
    },

    "error-message": {
      "type": "String",
      "desc": "Validation error message (gets displayed only if 'error' is set to 'true')",
      "examples": [ "Username must have at least 5 characters" ],
      "category": "content"
    },

    "no-error-icon": {
      "type": "Boolean",
      "desc": "Hide error icon when there is an error",
      "category": "content"
    },

    "rules": {
      "type": "Array",
      "desc": "Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules",
      "examples": [
        ":rules=\"[ val => val.length <= 3 || 'Please use maximum 3 characters' ]\"",
        ":rules=\"[ 'fulltime' ]\""
      ],
      "category": "behavior"
    },

    "lazy-rules": {
      "type": "Boolean",
      "desc": "Check validation status against the 'rules' only after field loses focus for first time",
      "category": "behavior"
    }
  },

  "methods": {
    "resetValidation": {
      "desc": "Reset validation status"
    },

    "validate": {
      "desc": "Trigger a validation",
      "params": {
        "value": {
          "type": "Any",
          "desc": "Optional value to validate against",
          "__exemption": [ "examples" ]
        }
      }
    }
  }
}
