changelogging 0.2.2

Building changelogs from fragments.
Documentation
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$defs": {
        "Context": {
            "title": "Context",
            "description": "Represents contexts of projects.",
            "type": "object",
            "required": [
                "name",
                "version",
                "url"
            ],
            "properties": {
                "name": {
                    "description": "The name of the project.",
                    "$ref": "#/$defs/NonEmptyString"
                },
                "version": {
                    "description": "The version of the project.",
                    "$ref": "#/$defs/NonEmptyString"
                },
                "url": {
                    "description": "The URL of the project.",
                    "$ref": "#/$defs/NonEmptyString"
                }
            },
            "additionalProperties": false
        },
        "Paths": {
            "title": "Paths",
            "description": "Specifies locations of fragments and the changelog.",
            "type": "object",
            "properties": {
                "directory": {
                    "description": "The directory containing fragments.",
                    "$ref": "#/$defs/NonEmptyString",
                    "default": "changes"
                },
                "output": {
                    "description": "The file containing the changelog.",
                    "$ref": "#/$defs/NonEmptyString",
                    "default": "CHANGELOG.md"
                }
            },
            "additionalProperties": false
        },
        "NonEmptyString": {
            "type": "string",
            "minLength": 1
        },
        "Start": {
            "description": "Marks the location in the changelog to start writing entries after.",
            "$ref": "#/$defs/NonEmptyString"
        },
        "Level": {
            "type": "integer",
            "minimum": 1
        },
        "Levels": {
            "title": "Levels",
            "description": "Defines which heading levels to use.",
            "type": "object",
            "properties": {
                "entry": {
                    "description": "The heading level of the entry title.",
                    "$ref": "#/$defs/Level",
                    "default": 2
                },
                "section": {
                    "description": "The heading level of individual sections.",
                    "$ref": "#/$defs/Level",
                    "default": 3
                }
            },
            "additionalProperties": false
        },
        "Character": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1
        },
        "Indents": {
            "title": "Indents",
            "description": "Specifies which characters to use for indenting.",
            "type": "object",
            "properties": {
                "heading": {
                    "description": "The character to use for headings.",
                    "$ref": "#/$defs/Character",
                    "default": "#"
                },
                "bullet": {
                    "description": "The character to use for indenting.",
                    "$ref": "#/$defs/Character",
                    "default": "-"
                }
            },
            "additionalProperties": false
        },
        "Formats": {
            "title": "Formats",
            "description": "Defines formats to use for rendering entry titles and fragments.",
            "type": "object",
            "properties": {
                "title": {
                    "description": "The format used for rendering entry titles.",
                    "$ref": "#/$defs/NonEmptyString",
                    "default": "{{version}} ({{date}})"
                },
                "fragment": {
                    "description": "The format used for rendering fragments.",
                    "$ref": "#/$defs/NonEmptyString",
                    "default": "{{content}} (#{{id}})"
                }
            },
            "additionalProperties": false
        },
        "Wrap": {
            "type": "integer",
            "minimum": 1
        },
        "Order": {
            "description": "Defines which types to include, and in what order.",
            "type": "array",
            "items": {
                "description": "The type to include.",
                "$ref": "#/$defs/NonEmptyString"
            }
        },
        "Types": {
            "title": "Types",
            "description": "Maps types to their titles.",
            "type": "object",
            "patternProperties": {
                "^.+$": {
                    "$ref": "#/$defs/NonEmptyString"
                }
            },
            "additionalProperties": false
        }
    },
    "title": "changelogging",
    "description": "changelogging configuration file.",
    "type": "object",
    "required": [
        "context"
    ],
    "properties": {
        "context": {
            "$ref": "#/$defs/Context"
        },
        "paths": {
            "$ref": "#/$defs/Paths"
        },
        "start": {
            "$ref": "#/$defs/Start",
            "default": "<!-- changelogging: start -->"
        },
        "levels": {
            "$ref": "#/$defs/Levels"
        },
        "indents": {
            "$ref": "#/$defs/Indents"
        },
        "formats": {
            "$ref": "#/$defs/Formats"
        },
        "wrap": {
            "$ref": "#/$defs/Wrap",
            "default": 100
        },
        "order": {
            "$ref": "#/$defs/Order",
            "default": ["security", "feature", "change", "fix", "deprecation", "removal", "internal"]
        },
        "types": {
            "$ref": "#/$defs/Types",
            "default": {
                "security": "Security",
                "feature": "Features",
                "change": "Changes",
                "fix": "Fixes",
                "deprecation": "Deprecations",
                "removal": "Removals",
                "internal": "Internal"
            }
        }
    },
    "additionalProperties": false
}