← Files VeraARCHIVED FILE

modules/patent-box-review/schemas/ruleset.schema.json

4.91 KB · Oct 4, 2026 · 12:28 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:vera:patent-box:ruleset",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "ruleset_id",
    "version",
    "demo",
    "status",
    "reviewer",
    "reviewed_on",
    "valid_from",
    "valid_until",
    "sources_checked_on",
    "max_source_age_days",
    "tax_period_start_min",
    "tax_period_start_max",
    "enhancement_rate",
    "premial_periods",
    "premial_entry_anchor_date",
    "ip_types",
    "premial_event_kinds",
    "sources",
    "rule_ids"
  ],
  "properties": {
    "schema_version": {
      "const": "1.0"
    },
    "ruleset_id": {
      "type": "string",
      "pattern": "[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}"
    },
    "version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000
    },
    "demo": {
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "REVIEWED"
      ]
    },
    "reviewer": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 10000
        },
        {
          "type": "null"
        }
      ]
    },
    "reviewed_on": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    },
    "valid_from": {
      "type": "string",
      "format": "date"
    },
    "valid_until": {
      "type": "string",
      "format": "date"
    },
    "sources_checked_on": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    },
    "max_source_age_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 365
    },
    "tax_period_start_min": {
      "type": "string",
      "format": "date"
    },
    "tax_period_start_max": {
      "type": "string",
      "format": "date"
    },
    "enhancement_rate": {
      "type": "string",
      "pattern": "[0-9]\\.[0-9]{2}"
    },
    "premial_periods": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8
    },
    "premial_entry_anchor_date": {
      "type": "string",
      "format": "date"
    },
    "ip_types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "SOFTWARE",
          "PATENT",
          "DESIGN"
        ]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "premial_event_kinds": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "SOFTWARE",
        "PATENT",
        "DESIGN"
      ],
      "properties": {
        "SOFTWARE": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "SIAE_REGISTRATION",
              "EQUIVALENT_PUBLIC_REGISTRATION"
            ]
          },
          "minItems": 1,
          "uniqueItems": true
        },
        "PATENT": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "PATENT_GRANT"
            ]
          },
          "minItems": 1,
          "uniqueItems": true
        },
        "DESIGN": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "DESIGN_REGISTRATION"
            ]
          },
          "minItems": 1,
          "uniqueItems": true
        }
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source_id",
          "status",
          "authority_type",
          "snapshot_sha256",
          "snapshot_evidence_id"
        ],
        "properties": {
          "source_id": {
            "type": "string",
            "pattern": "[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}"
          },
          "status": {
            "type": "string",
            "enum": [
              "REVIEWED",
              "PENDING"
            ]
          },
          "authority_type": {
            "type": "string",
            "enum": [
              "LAW",
              "IMPLEMENTING_ACT",
              "GUIDANCE",
              "RULING",
              "JUDGMENT",
              "SYNTHETIC"
            ]
          },
          "snapshot_sha256": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "[a-f0-9]{64}"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot_evidence_id": {
            "type": "string",
            "pattern": "[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}"
          }
        }
      },
      "minItems": 1,
      "uniqueItems": false
    },
    "rule_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}"
      },
      "minItems": 1,
      "uniqueItems": true
    }
  }
}

SHA-256: 0886ddafb74944831eb44f12b9cc78a118e26298505aaca0e69f5de85ba830a5