{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.invalid/mas/schema/mas-statute-v0.2.schema.json", "title": "Mail Address Semantics v0.2 Statute", "type": "object", "additionalProperties": false, "required": [ "mas_version", "namespace", "profiles", "equivalence" ], "properties": { "mas_version": { "const": "0.2" }, "namespace": { "type": "string", "minLength": 1, "maxLength": 253, "description": "Exact host governed by this statute, in its canonical DNS/IDNA presentation form." }, "inherits": { "type": "string", "format": "uri", "pattern": "^https://", "description": "Optional explicit defaults-only parent statute URI. No DNS parent walking is implied." }, "profiles": { "type": "object", "additionalProperties": false, "required": [ "p1", "p2" ], "properties": { "p1": { "const": true }, "p2": { "type": "boolean" } } }, "resource_types": { "type": "object", "default": {}, "propertyNames": { "pattern": "^[a-z0-9]+([_-][a-z0-9]+)*$" }, "additionalProperties": { "type": "object", "additionalProperties": false, "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" }, "description": { "type": "string", "maxLength": 500 }, "identifier_policy": { "type": "string", "enum": [ "opaque", "non-guessable-preferred", "sequential-allowed" ] } } } }, "interaction_modes": { "type": "object", "default": {}, "propertyNames": { "pattern": "^[A-Za-z0-9_-]+$" }, "additionalProperties": { "type": "object", "additionalProperties": false, "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" }, "description": { "type": "string", "maxLength": 500 } } } }, "equivalence": { "type": "object", "additionalProperties": false, "required": [ "local_part_case", "dot_folding" ], "properties": { "local_part_case": { "type": "string", "enum": [ "exact", "ascii-insensitive" ] }, "dot_folding": { "type": "boolean" }, "resource_id_case": { "type": "string", "enum": [ "exact", "insensitive" ], "default": "exact" } } }, "unicode_local_part": { "type": "boolean", "default": false, "description": "Experimental/private extension only; not canonical v0.1 machine syntax." }, "addresses": { "type": "object", "default": {}, "propertyNames": { "pattern": "^[A-Za-z0-9#%&'*\\-/=?_`{|}~.]+$" }, "additionalProperties": { "type": "object", "additionalProperties": false, "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "person", "actor", "function", "group", "system", "opaque" ] }, "description": { "type": "string", "maxLength": 500 }, "intake_for": { "type": "string", "pattern": "^[a-z0-9]+([_-][a-z0-9]+)*$", "description": "v0.1.1 (SCP-3): this function is the intake for the named resource type" } } } }, "alternate_syntax": { "type": "object", "additionalProperties": false, "default": {}, "description": "v0.2: enable the fixed stand-ins '--' for '=' and '---' for '!'", "properties": { "resource": { "type": "boolean", "default": false }, "interaction": { "type": "boolean", "default": false } } } } }