bambuscontrol_obsidian-unic.../resources/save-data-schema.json
2025-09-27 15:20:58 +02:00

470 lines
18 KiB
JSON

{
"$id": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"BlockFilter": {
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CodepointInterval"
},
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/InclusionFlag"
}
],
"description": "Block of Unicode Codepoints"
},
"CategoryFilter": {
"description": "Filter for a single category.",
"properties": {
"abbreviation": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CharacterCategoryType",
"description": "Two-letter abbreviation of the category."
},
"included": {
"description": "Indicates whether a character is included in search or not",
"type": "boolean"
}
},
"required": [
"abbreviation",
"included"
],
"type": "object"
},
"CategoryGroupFilter": {
"description": "Filters for a group of categories.",
"properties": {
"abbreviation": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CharacterCategoryGroupType",
"description": "Single letter abbreviation of the category group."
},
"categories": {
"description": "Categories which belong to the group.",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CategoryFilter"
},
"type": "array"
}
},
"required": [
"abbreviation",
"categories"
],
"type": "object"
},
"CharacterCategoryGroupType": {
"enum": [
"C",
"L",
"M",
"N",
"P",
"S",
"Z"
],
"type": "string"
},
"CharacterCategoryType": {
"enum": [
"Cc",
"Cf",
"Cn",
"Co",
"Cs",
"Ll",
"Lm",
"Lo",
"Lt",
"Lu",
"Mc",
"Me",
"Mn",
"Nd",
"Nl",
"No",
"Pc",
"Pd",
"Pe",
"Pf",
"Pi",
"Po",
"Ps",
"Sc",
"Sk",
"Sm",
"So",
"Zl",
"Zp",
"Zs"
],
"type": "string"
},
"CharacterUseFragment": {
"description": "User generated usage data",
"properties": {
"codepoints": {
"description": "Statistics of the individual codepoint usage",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/RawCodepointUse"
},
"type": "array"
},
"initialized": {
"type": "boolean"
},
"version": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/SaveDataVersion"
}
},
"required": [
"codepoints",
"initialized",
"version"
],
"type": "object"
},
"CodepointAttribute": {
"description": "General attributes of a Unicode codepoint",
"properties": {
"category": {
"description": "Unicode category of the character",
"type": "string"
},
"name": {
"description": "Unicode description of the character",
"type": "string"
}
},
"required": [
"category",
"name"
],
"type": "object"
},
"CodepointInterval": {
"description": "Represents a closed interval/range of Unicode Code Points",
"properties": {
"end": {
"type": "number"
},
"start": {
"type": "number"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"CodepointKey": {
"description": "Universally used key for a Unicode codepoint",
"properties": {
"codepoint": {
"description": "Unicode code point character defined by its normalized NFC form",
"minLength": 1,
"type": "string"
}
},
"required": [
"codepoint"
],
"type": "object"
},
"FavoriteInfo": {
"description": "Raw favorite information, as stored in save data",
"properties": {
"added": {
"description": "Date when the codepoint was added to favorites",
"type": "string"
},
"hotkey": {
"description": "Whether the codepoint has a hotkey command",
"type": "boolean"
}
},
"required": [
"added",
"hotkey"
],
"type": "object"
},
"FavoritesFragment": {
"description": "Users favorite codepoints",
"properties": {
"codepoints": {
"description": "List of favorite codepoints",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/RawCodepointFavorite"
},
"type": "array"
},
"initialized": {
"type": "boolean"
},
"version": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/SaveDataVersion"
}
},
"required": [
"codepoints",
"initialized",
"version"
],
"type": "object"
},
"FilterFragment": {
"description": "User saved character filters",
"properties": {
"initialized": {
"type": "boolean"
},
"unicode": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/UnicodeFilter",
"description": "Filter criteria for Unicode characters"
},
"version": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/SaveDataVersion"
}
},
"required": [
"initialized",
"unicode",
"version"
],
"type": "object"
},
"InclusionFlag": {
"description": "A flag indicating whether a character is included in search or not",
"properties": {
"included": {
"description": "Indicates whether a character is included in search or not",
"type": "boolean"
}
},
"required": [
"included"
],
"type": "object"
},
"MetaFragment": {
"description": "Meta information for the datastore",
"properties": {
"events": {
"description": "A collection of unique data events.",
"items": {
"const": "download_characters",
"type": "string"
},
"type": "array"
},
"initialized": {
"type": "boolean"
},
"pluginVersion": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/PluginVersion",
"description": "Latest used version of the plugin which used this data"
},
"version": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/SaveDataVersion"
}
},
"required": [
"events",
"initialized",
"pluginVersion",
"version"
],
"type": "object"
},
"PlaneFilter": {
"description": "Unicode Plane of Unicode Blocks",
"properties": {
"blocks": {
"description": "Filter criteria for blocks of Unicode characters",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/BlockFilter"
},
"type": "array"
},
"end": {
"type": "number"
},
"start": {
"type": "number"
}
},
"required": [
"blocks",
"end",
"start"
],
"type": "object"
},
"PluginVersion": {
"description": "Version of the plugin.\n\nMust comply with RegEx:\n```^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(?:-[A-Z]+)?$```",
"enum": [
"0.2.0",
"0.2.1",
"0.2.2",
"0.2.3",
"0.3.0",
"0.4.0",
"0.4.1",
"0.5.0",
"0.6.0",
"0.6.1",
"0.7.0",
"0.7.1",
"0.7.2",
"0.7.3"
],
"type": "string"
},
"RawCodepointFavorite": {
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CodepointKey"
},
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/FavoriteInfo"
}
],
"description": "Favorite infor of a specific codepoint as stored in save data"
},
"RawCodepointUse": {
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CodepointKey"
},
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/RawUsageInfo"
}
],
"description": "Usage information of a specific codepoint as stored in save data"
},
"RawUsageInfo": {
"description": "Raw usage information, as stored in save data",
"properties": {
"firstUsed": {
"description": "Alias to hint that a string is a date string",
"type": "string"
},
"lastUsed": {
"description": "Alias to hint that a string is a date string",
"type": "string"
},
"useCount": {
"type": "number"
}
},
"required": [
"firstUsed",
"lastUsed",
"useCount"
],
"type": "object"
},
"SaveDataVersion": {
"description": "Version of the save data schema.\n\nMust comply with RegEx:\n```^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(?:-[A-Z]+)?$```\n\nThe version of the save data schema is independent of the plugin version",
"enum": [
"0.4.0",
"0.5.0",
"0.6.0",
"0.7.0"
],
"type": "string"
},
"UnicodeCodepoint": {
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CodepointKey"
},
{
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CodepointAttribute"
}
],
"description": "Unicode codepoint representation throughout the plugin"
},
"UnicodeFilter": {
"description": "User set filter data for Unicode characters.",
"properties": {
"categoryGroups": {
"description": "Filter criteria for category groups of Unicode characters",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CategoryGroupFilter"
},
"type": "array"
},
"planes": {
"description": "Filter criteria for planes of Unicode characters",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/PlaneFilter"
},
"type": "array"
}
},
"required": [
"categoryGroups",
"planes"
],
"type": "object"
},
"UnicodeFragment": {
"description": "Downloaded Unicode Character Database",
"properties": {
"codepoints": {
"description": "Codepoints downloaded from the Unicode Character Database",
"items": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/UnicodeCodepoint"
},
"type": "array"
},
"initialized": {
"type": "boolean"
},
"version": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/SaveDataVersion"
}
},
"required": [
"codepoints",
"initialized",
"version"
],
"type": "object"
}
},
"description": "Structure of `data.json`, where each fragment is a self-managed data fragment",
"properties": {
"characters": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/UnicodeFragment",
"description": "Local character database"
},
"favorites": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/FavoritesFragment",
"description": "Favorites saved manually by the user"
},
"filter": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/FilterFragment",
"description": "Filtering of downloaded/displayed codepoints"
},
"meta": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/MetaFragment",
"description": "Metadata information about the save data itself"
},
"usage": {
"$ref": "https://raw.githubusercontent.com/BambusControl/obsidian-unicode-search/0.7.3/resources/save-data-schema.json#/definitions/CharacterUseFragment",
"description": "Usage information generated by the user"
}
},
"required": [
"characters",
"favorites",
"filter",
"meta",
"usage"
],
"type": "object"
}