{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:web-component-contract:example:metric-badge",
  "profile": "web-component-contract/schema",
  "profileVersion": 1,
  "title": "Contract metric badge",
  "type": "object",
  "tagName": "contract-metric-badge",
  "properties": {
    "attributes": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "enum": ["Latency", "Requests", "Failures"],
          "default": "Requests"
        },
        "value": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "default": 42
        }
      },
      "required": ["label", "value"],
      "additionalProperties": false
    },
    "properties": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "events": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "slots": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "cssProperties": {
      "type": "object",
      "properties": {
        "--badge-accent": {
          "type": "string",
          "enum": ["#58d6c7", "#f0b35a", "#df6f76"],
          "default": "#f0b35a"
        }
      },
      "additionalProperties": false
    },
    "cssParts": {
      "type": "object",
      "properties": {
        "output": {
          "type": "string",
          "description": "The badge output surface."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
