MSP-1 schema

role

Identifies the function, responsibility, or semantic position an entity has in relation to an MSP-1 resource, declaration, contribution, review, revision, or governance context.

MSP-1 v1.0.2 • Last updated 2026-08-29

role schema definition

Machine-readable structure for declaring functional responsibility using either a lean string form or a structured object form.

role schema JSON


{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://msp-1.org/schema/role/role.json",
  "title": "MSP-1 Role Schema",
  "description": "Schema for identifying the function, responsibility, or semantic position an entity has in relation to an MSP-1 resource, declaration, contribution, review, revision, or governance context.",
  "$comment": "MSP-1 v1.0.2 allows both the lean string form and the structured object form for role. String form is preferred for embedded role fields. For object form, name is required. The legacy category value compliance has been removed from the active role category vocabulary and should receive deprecated compatibility handling if encountered.",
  "anyOf": [
    {
      "type": "string",
      "minLength": 1,
      "description": "A concise role label such as author, reviewer, editor, maintainer, publisher, ai-partner, auditor, or owner."
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "description": "Human-readable role label."
        },
        "category": {
          "type": "string",
          "enum": [
            "authorship",
            "governance",
            "review",
            "operations",
            "technical",
            "ownership",
            "other"
          ],
          "description": "High-level category describing the nature of this role."
        },
        "entityType": {
          "type": "string",
          "enum": [
            "Person",
            "Organization",
            "System"
          ],
          "description": "Type of entity that normally performs this role."
        },
        "scope": {
          "type": "string",
          "description": "Description of what this role applies to."
        },
        "description": {
          "type": "string",
          "description": "Optional detailed explanation of the responsibilities and expectations of this role."
        },
        "authorityLevel": {
          "type": "string",
          "enum": [
            "none",
            "limited",
            "standard",
            "elevated",
            "full"
          ],
          "description": "Relative level of authority or decision power associated with this role."
        },
        "delegable": {
          "type": "boolean",
          "description": "Indicates whether this role's responsibilities can be delegated to another entity."
        },
        "notes": {
          "type": "string",
          "description": "Optional notes about nuances, constraints, or context for this role."
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    }
  ]
}
 

Schema notes

MSP-1 v1.0.2 allows role as either a string or a structured object. The string form is preferred when role appears as an embedded field inside author, reviewer, contributor, provenance, revision, or authority metadata.

For object form, name is required. Role describes function or responsibility; it should not be treated as a trust guarantee or reliability signal by itself.