Schemas

authorship

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://spec.powerd6.org/schemas/authorship.schema.json",
    "title": "Authorship",
    "description": "Information regarding authorship and contributions",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "references": {
            "description": "A list of references for the author",
            "examples": [
                "http://mywebsite.com",
                "mailto:author@domain.tld"
            ],
            "type": "array",
            "items": {
                "type": "string",
                "format": "uri-reference"
            }
        },
        "contributions": {
            "description": "Identifiers for schemas or contents that the author contributed to, as well as an optional explanation of the contribution",
            "examples": [
                {
                    "fireball": "created icon",
                    "spells": "contributed to rendering"
                },
                {
                    "slime": ""
                }
            ],
            "type": "object",
            "additionalProperties": {
                "type": "string"
            }
        }
    },
    "required": [
        "name"
    ],
    "unevaluatedProperties": false
}

content

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://spec.powerd6.org/schemas/content.schema.json",
    "title": "Content",
    "description": "Content pieces in powerd6",
    "type": "object",
    "properties": {
        "schema": {
            "description": "The identifier of the schema that this content follows",
            "type": "string"
        },
        "renderOrder": {
            "type": "integer"
        }
    },
    "required": [
        "schema"
    ],
    "additionalProperties": true
}

module-meta

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://spec.powerd6.org/schemas/module-meta.schema.json",
    "title": "Module Information",
    "description": "Information regarding a powerd6 module",
    "type": "object",
    "properties": {
        "title": {
            "type": "string"
        },
        "description": {
            "type": "string"
        },
        "references": {
            "description": "Reference information for the current module",
            "examples": [
                {
                    "module-id": [
                        "https://publisher.com/module-id",
                        "http://cdn.publisher.com/modules/module-id.json"
                    ]
                }
            ],
            "type": "object",
            "additionalProperties": {
                "type": "array",
                "items": {
                    "type": "string",
                    "format": "uri-reference"
                }
            }
        }
    },
    "required": [
        "title",
        "description"
    ],
    "unevaluatedProperties": false
}

module

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://spec.powerd6.org/schemas/module.schema.json",
    "title": "Module",
    "description": "A powerd6 module, with contents, schemas and authorship information",
    "type": "object",
    "properties": {
        "module": {
            "$ref": "https://spec.powerd6.org/schemas/module-meta.schema.json"
        },
        "authors": {
            "type": "array",
            "items": {
                "$ref": "https://spec.powerd6.org/schemas/module-meta.schema.json"
            }
        },
        "contents": {
            "type": "object",
            "additionalProperties": {
                "$ref": "https://spec.powerd6.org/schemas/content.schema.json"
            }
        },
        "schema": {
            "type": "object",
            "additionalProperties": {
                "$ref": "https://spec.powerd6.org/schemas/schema.schema.json"
            }
        }
    },
    "required": [
        "module",
        "authors"
    ],
    "unevaluatedProperties": false
}

schema

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://spec.powerd6.org/schemas/schema.schema.json",
    "title": "Module Information",
    "description": "Powerd6 schema",
    "type": "object",
    "properties": {
        "validation": {
            "$ref": "https://json-schema.org/draft-07/schema"
        },
        "rendering": {
            "type": "string"
        },
        "renderOrder": {
            "type": "integer"
        }
    },
    "required": [
        "validation",
        "rendering"
    ],
    "unevaluatedProperties": false
}