{
    "id": "file://comment.json#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "_schema": {
            "type": "string",
            "pattern": "^pbj:([a-z0-9-]+):([a-z0-9\\.-]+):([a-z0-9-]+)?:([a-z0-9-]+):([0-9]+-[0-9]+-[0-9]+)$",
            "default": "pbj:acme:blog:entity:comment:1-0-0"
        },
        "_id": {
            "type": "string",
            "pattern": "^[\\w\\.-_]+$",
            "pbj": {
                "type": "identifier",
                "rule": "single",
                "overridable": true
            }
        },
        "created_at": {
            "type": "string",
            "pattern": "^[1-9]{1}[0-9]{12,15}$",
            "pbj": {
                "type": "microtime",
                "rule": "single"
            }
        },
        "updated_at": {
            "type": "string",
            "pattern": "^[1-9]{1}[0-9]{12,15}$",
            "pbj": {
                "type": "microtime",
                "rule": "single",
                "useTypeDefault": false
            }
        },
        "published_at": {
            "type": "string",
            "pattern": "^[1-9]{1}[0-9]{12,15}$",
            "pbj": {
                "type": "microtime",
                "rule": "single"
            }
        },
        "comment": {
            "type": "string",
            "minLength": 0,
            "maxLength": 65535,
            "pbj": {
                "type": "text",
                "rule": "single"
            }
        }
    },
    "required": [
        "_schema",
        "_id",
        "created_at"
    ],
    "additionalProperties": false
}