{ "$schema":              "https://json-schema.org/draft/2020-12/schema",
  "$id":                  "https://schemas.mpai.community/PGM1/V1.0/data/ActionObject.json",
  "title":                "Action Object V1.0",
  "description":          "Action of the Persona with no effect on the M-Instance, produced by Basic Knowledge in a vocabulary named by its Qualifier and consumed by A-User Formation.",
  "type":                 "object",
  "additionalProperties": false,
  "required":             [ "Header", "ActionObjectID", "ActionObjectData" ],
  "properties":           {

    "Header":             { "type": "string", "const": "PGM-ACO-V1.0" },
    "MInstanceID":        { "type": "string" },
    "UEnvironmentID":     { "type": "string" },
    "ActionObjectID":     { "type": "string" },
    "ActionObjectTime":   { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json" },

    "SubjectID":          { "type": "string", "description": "Identifier of the Persona or of the Item the Action is applied to; a simple string." },
    "TargetIDs":          { "type": "array", "items": { "type": "string" }, "description": "Identifiers (simple strings) of the Items, Personae or Locations the Action refers to." },

    "ActionObjectData":   { "type": "array", "items": { "anyOf": [
                          { "type": "object", "properties": {
      "Data":             { "type": "string" } } },
                          { "type": "object", "properties": {
      "DataLength":       { "type": "integer" },
      "DataURI":          { "type": "string", "format": "uri" } } },
                          { "type": "object", "properties": {
      "ID":               { "type": "string" } } } ] } },

    "ActionQualifier":    { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/ActionQualifier.json" },

    "DataXMData":         { "$ref": "https://schemas.mpai.community/PTF/V1.0/data/DataExchangeMetadata.json" },
    "DescrMetadata":      { "type": "string", "maxLength": 2048 } } }
