{
    "type": "object",
    "title": "Markdown Note",
    "description": "Knowledge Base Markdown note on a topic",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
        "obj"
    ],
    "properties": {
        "tags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "title": "Note Tags",
            "description": "List of tags asssociated with the note"
        },
        "aliases": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "title": "Note Aliases",
            "description": "List of aliases of the note"
        },
        "website": {
            "title": "Website",
            "description": "Associated website with the note",
            "type": [
                "string",
                "array"
            ],
            "items": {
                "type": "string",
                "format": "uri"
            },
            "format": "uri"
        },
        "repo": {
            "title": "Repository",
            "description": "Associated repository with the note",
            "type": "string",
            "format": "uri"
        },
        "source": {
            "title": "Source",
            "description": "Source the note is based on",
            "type": "string",
            "format": "uri"
        },
        "wiki": {
            "title": "Wikipedia",
            "description": "Wikipedia link about the note",
            "type": "string",
            "format": "uri"
        },
        "arch-wiki": {
            "title": "Arch Wiki",
            "description": "Arch Wiki link about the note",
            "type": "string",
            "format": "uri"
        },
        "rfc": {
            "title": "RFC",
            "description": "Link to RFC this note is about",
            "type": "string",
            "format": "uri"
        },
        "mime": {
            "title": "MIME Type",
            "description": "The MIME Type of the item the note is about",
            "type": "string"
        },
        "extension": {
            "title": "File Extension",
            "description": "The file extension of the item the note is about",
            "type": [
                "string",
                "array"
            ],
            "items": {
                "type": "string"
            }
        },
        "obj": {
            "title": "Object Type",
            "description": "Meta information about the notes general classification",
            "type": "string",
            "enum": [
                "application",
                "os",
                "format",
                "filesystem",
                "emulator",
                "concept",
                "meta",
                "meta/collection",
                "device",
                "website",
                "science",
                "science/unit"
            ]
        }
    },
    "allOf": [
        {
            "if": {
                "properties": {
                    "obj": {
                        "pattern": "^(application|emulator)"
                    }
                }
            },
            "then": {
                "properties": {
                    "android-id": {
                        "title": "Android Application ID",
                        "description": "The Android Application ID of the note",
                        "type": "string"
                    },
                    "flatpak-id": {
                        "title": "Flatpak Application ID",
                        "description": "The Flatpak Application ID of the note",
                        "type": "string"
                    },
                    "f-droid": {
                        "title": "F-Droid Page",
                        "description": "Link to the F-Droid Page of the note",
                        "type": "string",
                        "format": "uri"
                    }
                }
            }
        },
        {
            "if": {
                "properties": {
                    "obj": {
                        "pattern": "^website"
                    }
                }
            },
            "then": {
                "properties": {
                    "category": {
                        "title": "Category",
                        "description": "General category the website falls into",
                        "type": "string",
                        "enum": [
                            "server",
                            "finance",
                            "social",
                            "service",
                            "development",
                            "search",
                            "information",
                            "market",
                            "knowledge",
                            "board",
                            "company",
                            "shop",
                            "content",
                            "images",
                            "link-registry",
                            "api"
                        ]
                    },
                    "status": {
                        "title": "Website Status",
                        "description": "Wether the website is up or down",
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "down",
                            "up"
                        ]
                    }
                },
                "required": [
                    "category"
                ]
            }
        }
    ]
}