{
  "id": "typeid",
  "kind": "datatype",
  "status": "draft",
  "name": "TypeID (type-prefixed UUIDv7)",
  "doc": "Identifier from the TypeID specification of Jetify, a UUIDv7 with a type prefix. It has the form <prefix>_<suffix>. The prefix names the kind of object, such as user, in up to 63 lowercase letters and underscores that start and end with a letter, and it may be left out together with the underscore. The suffix is the 128-bit UUID in 26 characters of lowercase Crockford Base32; its first character is 0 to 7. New TypeIDs carry a UUIDv7, so they sort by creation time.",
  "is_pii": false,
  "categories": [
    "identifiers"
  ],
  "langs": [
    "common"
  ],
  "classification": "identifier",
  "regexp": "^(?:[a-z](?:[a-z_]{0,61}[a-z])?_)?[0-7][0-9a-hjkmnp-tv-z]{25}$",
  "examples": [
    {
      "value": "prefix_01h455vb4pex5vsknk084sn02q",
      "description": "valid-uuidv7 test case of the TypeID specification, UUID 01890a5d-ac96-774b-bcce-b302099a8057",
      "valid": true
    },
    {
      "value": "user_01h5fskfsk4fpeqwnsyz5hj55t",
      "description": "TypeID of type user in the TypeID specification",
      "valid": true
    },
    {
      "value": "01h5fskfsk4fpeqwnsyz5hj55t",
      "description": "TypeID without a prefix in the TypeID specification",
      "valid": true
    },
    {
      "value": "PREFIX_01h5fskfsk4fpeqwnsyz5hj55t",
      "description": "Uppercase prefix",
      "valid": false
    },
    {
      "value": "_prefix_01h5fskfsk4fpeqwnsyz5hj55t",
      "description": "Prefix starts with an underscore",
      "valid": false
    },
    {
      "value": "prefix_8zzzzzzzzzzzzzzzzzzzzzzzzz",
      "description": "Suffix exceeds 128 bits",
      "valid": false
    }
  ],
  "links": [
    {
      "type": "doc",
      "url": "https://github.com/jetify-com/typeid/tree/main/spec"
    }
  ],
  "translations": {
    "ru": {
      "name": "TypeID (UUIDv7 с префиксом типа)"
    }
  },
  "quality": {
    "score": 80,
    "missing": [
      "mapping (Wikidata, Schema.org, ...)",
      "detector coverage"
    ]
  },
  "source": {
    "path": "data/datatypes/any/identifiers/typeid.yaml",
    "url": "https://github.com/apicrafter/metacrafter-registry/blob/main/data/datatypes/any/identifiers/typeid.yaml",
    "edit_url": "https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/identifiers/typeid.yaml"
  },
  "urls": {
    "html": "http://registry.apicrafter.io/datatype/typeid",
    "json": "http://registry.apicrafter.io/api/v1/datatypes/typeid.json"
  }
}