MSP-1 schema

page

Describes a single web page or page-equivalent resource as an addressable semantic unit within an MSP-1 implementation.

MSP-1 v1.0.2 • Core term

page schema definition

Machine-readable structure for describing MSP-1 pages, including stable identity, URL, naming, classification, description, intent, and related metadata.

page schema JSON


{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://msp-1.org/schema/page/page.json",
  "title": "MSP-1 Page Schema",
  "description": "Schema for representing a single web page or page-equivalent resource as an addressable semantic unit within an MSP-1 implementation.",
  "$comment": "MSP-1 v1.0.2 treats page as an object with id and url as the minimal required page identity fields.",
  "type": "object",

  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Stable identifier for the page within the site or implementation."
    },

    "url": {
      "type": "string",
      "format": "uri",
      "description": "Live URL for the page or page-equivalent resource."
    },

    "canonical": {
      "description": "Optional canonical URL declaration for the page. Object form is preferred for MSP-1 v1.0.2 declarations.",
      "oneOf": [{
          "type": "string",
          "format": "uri",
          "description": "Legacy or compact canonical URL string."
        },
        {
          "$ref": "https://msp-1.org/schema/canonical/canonical.json"
        }
      ]
    },

    "name": {
      "$ref": "https://msp-1.org/schema/name/name.json",
      "description": "Human-readable page name or structured naming block."
    },

    "description": {
      "$ref": "https://msp-1.org/schema/description/description.json",
      "description": "Short or structured description of the page."
    },
    "type": {
      "$ref": "https://msp-1.org/schema/type/type.json",
      "description": "Optional semantic classifier or list of classifiers describing what kind of page or page-equivalent resource is being represented."
    },

    "intent": {
      "description": "Optional purpose, audience, and scope metadata for the page.",
      "oneOf": [{
          "type": "string",
          "minLength": 1
        },
        {
          "$ref": "https://msp-1.org/schema/intent/intent.json"
        }
      ]
    },

    "interpretiveFrame": {
      "description": "Optional interpretive guidance for agents evaluating the page.",
      "oneOf": [{
          "type": "string",
          "minLength": 1
        },
        {
          "$ref": "https://msp-1.org/schema/interpretiveFrame/interpretiveFrame.json"
        }
      ]
    },

    "parent": {
      "description": "Optional parent context identifying the higher-level resource, page, section, collection, or structural context that contains or organizes this page.",
      "oneOf": [{
          "type": "string",
          "minLength": 1
        },
        {
          "$ref": "https://msp-1.org/schema/parent/parent.json"
        }
      ]
    },

    "section": {
      "description": "Optional section context or section declaration associated with the page.",
      "oneOf": [{
          "type": "string",
          "minLength": 1
        },
        {
          "$ref": "https://msp-1.org/schema/section/section.json"
        },
        {
          "type": "array",
          "items": {
            "oneOf": [{
                "type": "string",
                "minLength": 1
              },
              {
                "$ref": "https://msp-1.org/schema/section/section.json"
              }
            ]
          }
        }
      ]
    },

    "author": {
      "$ref": "https://msp-1.org/schema/author/author.json",
      "description": "Optional authorship metadata for the page."
    },

    "provenance": {
      "$ref": "https://msp-1.org/schema/provenance/provenance.json",
      "description": "Optional provenance metadata describing origin, lineage, or creation context."
    },

    "revision": {
      "$ref": "https://msp-1.org/schema/revision/revision.json",
      "description": "Optional revision metadata for tracking page-level updates."
    }
  },

  "required": ["id", "url"],

  "additionalProperties": false,

  "examples": [{
      "id": "lighting-guide",
      "url": "https://photographyselect.com/guides/lighting/"
    },
    {
      "id": "lighting-guide",
      "url": "https://photographyselect.com/guides/lighting/",
      "name": "Lighting Guide",
      "description": "A foundational guide explaining natural and artificial light for portrait photography.",
      "intent": "Teach photographers how to use lighting effectively in various scenarios."
    },
    {
      "id": "protocol-overview",
      "url": "https://msp-1.org/protocol-overview/",
      "name": "MSP-1 Protocol Overview"
    }
  ]
}



 

Schema notes

The canonical MSP-1 v1.0.2 form for page is an object with id and url as the minimal required page identity fields.

page should not be confused with site or section. site identifies the website-level semantic entity; page identifies an individual addressable resource within the site; section identifies a subordinate content unit within a page unless explicitly declared otherwise.

type is optional and may be used to classify the page or page-equivalent resource using the canonical MSP-1 type term.