{
  "name": "Date Versioning",
  "short_name": "DateVer",
  "version": "26.10.01-2",
  "url": "https://datevers.ing/",
  "spec_url": "https://datevers.ing/spec/26.10.01-2/",
  "spec_markdown_url": "https://datevers.ing/spec.md",
  "latest_url": "https://datevers.ing/spec/latest/",
  "latest_markdown_url": "https://datevers.ing/spec/latest.md",
  "formats": {
    "extensions": [
      "md",
      "txt",
      "json",
      "xml",
      "html"
    ],
    "note": "Every specification URL works with each extension: /spec.<ext>, /spec/latest.<ext> and /spec/<version>.<ext>.",
    "examples": [
      "https://datevers.ing/spec/latest.txt",
      "https://datevers.ing/spec/26.10.01-2.json",
      "https://datevers.ing/spec/26.10.01-2.xml"
    ]
  },
  "spec_permalink_markdown_url": "https://datevers.ing/spec/26.10.01-2.md",
  "llms_txt_url": "https://datevers.ing/llms.txt",
  "repository": "https://github.com/StuxGroup/DateVersioning",
  "maintainer": {
    "name": "Stux.Group",
    "url": "https://stux.group"
  },
  "license": {
    "spec": "CC-BY-4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "format": "YY.MM.DD[-N][+build] for 2000-2099; YYYY.MM.DD[-N][+build] (the full year) from 2100",
  "regex": {
    "named_groups": "^(?<year>[0-9]{2}|2[1-9][0-9]{2}|[3-9][0-9]{3}|[1-9][0-9]{4,})\\.(?<month>0[1-9]|1[0-2])\\.(?<day>0[1-9]|[12][0-9]|3[01])(?:-(?<release>[1-9][0-9]*))?(?:\\+(?<build>[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$",
    "plain": "^([0-9]{2}|2[1-9][0-9]{2}|[3-9][0-9]{3}|[1-9][0-9]{4,})\\.(0[1-9]|1[0-2])\\.(0[1-9]|[12][0-9]|3[01])(?:-([1-9][0-9]*))?(?:\\+([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$",
    "dialect": "ECMAScript and PCRE"
  },
  "timezone": "UTC",
  "calendar_check_required": true,
  "precedence": [
    "YY",
    "MM",
    "DD",
    "N (no -N means 0)"
  ],
  "build_metadata_affects_precedence": false,
  "years": {
    "from": 2000,
    "until": null,
    "short_form": "YY for 2000-2099",
    "full_form": "the full year, no leading zeros, from 2100 (2100.01.01, 10000.01.01)",
    "full_form_before_2100_allowed": false
  },
  "calendar": "Gregorian",
  "semver_form": {
    "major": "the year minus 2000 (YY without leading zeros up to 2099; 2100 -> 100), plus the project's major offset (rule 13; 0 unless declared)",
    "major_offset": "a multiple of 100, chosen once when a project switches from a scheme whose versions would otherwise outrank its SemVer forms; never changes",
    "minor": "MM without leading zeros",
    "patch": "DD * 100 + N (N is 0 when there is no -N suffix)",
    "build_metadata": "carried over unchanged",
    "max_release_number": 99,
    "reverse": {
      "year": "2000 + MAJOR - offset (written as YY up to 2099, in full from 2100)",
      "DD": "floor(PATCH / 100)",
      "N": "PATCH mod 100"
    },
    "examples": {
      "26.10.01": "26.10.100",
      "26.10.01-2": "26.10.102",
      "05.03.09-4": "5.3.904",
      "26.10.01 (major offset 100)": "126.10.100",
      "2100.01.01": "100.1.100",
      "2345.06.07-1": "345.6.701"
    },
    "compare_date_versions_with_semver_rules": false
  }
}
