Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 252470@bnt-lap001 Assistant-Session: ad628c8f-4be2-4979-94c9-76c7ed6f8241
161 lines
3.7 KiB
JSON
161 lines
3.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://example.invalid/mas/schema/mas-statute-v0.1.schema.json",
|
|
"title": "Mail Address Semantics v0.1 Statute",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"mas_version",
|
|
"namespace",
|
|
"profiles",
|
|
"equivalence"
|
|
],
|
|
"properties": {
|
|
"mas_version": {
|
|
"const": "0.1"
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|