Makoto
Menu
Schema reference

profile-dialect.schema.json

The restricted JSON Schema dialect a private profile may use, bounded so resolution stays offline and terminating.

Title
Makoto v0.2 Organizational Profile Dialect
Identifier
https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json
Digest
sha256:563ff211e383732113d7455bf5c6bf07d1a87401dd41e9db68bdd5e99b433fb8
Raw
/schema/v0.2/profile-dialect.schema.json
Carried in
The $schema every private profile resource declares, such as the receiver resources in the runnable proof.
Responsibility
Makoto's Draft 2020-12-derived vocabulary set, unknown-keyword closure, and bounded-pattern dialect.

All schemas§12.1§12.4FieldsRaw JSON

A real instance. Read from demos/end-to-end/artifacts/receiver/resources/31934d2cf8fa7b5af2f8e4cf591d96278c4f59ddb6bb190afccb93701244f9eb.schema.json, which validates against this schema.
{
  "$schema": "https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json",
  "$id": "https://schemas.example.internal/makoto/public-transform-metadata-v1.schema.json",
  "type": "object",
  "required": [
    "schemaVersion",
    "event",
    "operation",
    "inputs",
    "extensions"
  ],
  "properties": {
    "schemaVersion": {
      "const": "0.2"
    },
    "event": {
      "type": "object",
      "required": [
        "id",
        "occurredAt"
      ]
    },
    "operation": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "const": "urn:makoto:demo:operation:public-safe"
        }
      }
    },
    "inputs": {
      "type": "array",
      "minItems": 1
    },
    "extensions": {
      "type": "object",
      "required": [
        "urn:makoto:demo:privacy-reviewed"
      ],
      "properties": {
        "urn:makoto:demo:privacy-reviewed": {
          "const": true
        }
      }
    }
  }
}

Fields

Top levelnonnegativeIntegerschemaObjectnestedSchemaschemaArrayschemaMap

Top level#

Shape object

nonnegativeInteger#

Shape integer
  • ≥ 0

Appears at $defs.*.maxContains, $defs.*.maxItems, $defs.*.maxLength, $defs.*.maxProperties, $defs.*.minContains, $defs.*.minItems, $defs.*.minLength, $defs.*.minProperties…

schemaObject#

Shape object
  • closed object

Appears at $defs.*, $defs.*.additionalProperties, $defs.*.contains, $defs.*.contentSchema, $defs.*.else, $defs.*.if, $defs.*.items, $defs.*.not…

FieldTypeConstraints, rules, and a real value
$schema
optional
string constant
  • = "https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json"
"https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json"
$id
optional
string
  • min length 1
  • max length 4096
"https://schemas.example.internal/makoto/public-transform-metadata-v1.schema.json"
$comment
optional
string
$ref
optional
string
$defs
optional
schemaMap
$anchor
optional
string
  • pattern "^[A-Za-z_][-A-Za-z0-9._]*$"
type
optional
one of: enum | array of enum
"object"
enum
optional
array
  • min items 1
["0-17", "18-24", "25-34", "35-44", "45-54", "55-64", "65+"]
const
optional
any
"0.2"
multipleOf
optional
number
  • > 0
maximum
optional
number
exclusiveMaximum
optional
number
minimum
optional
number
exclusiveMinimum
optional
number
maxLength
optional
nonnegativeInteger
20
minLength
optional
nonnegativeInteger
20
makotoPattern
optional
string
  • max length 65536
maxItems
optional
nonnegativeInteger
minItems
optional
nonnegativeInteger
1
uniqueItems
optional
boolean
maxContains
optional
nonnegativeInteger
minContains
optional
nonnegativeInteger
maxProperties
optional
nonnegativeInteger
minProperties
optional
nonnegativeInteger
required
optional
array of string
  • unique items
["schemaVersion", "event", "operation", "inputs", "extensions"]
dependentRequired
optional
map of array of string
allOf
optional
schemaArray
anyOf
optional
schemaArray
oneOf
optional
schemaArray
not
optional
nestedSchema
if
optional
nestedSchema
then
optional
nestedSchema
else
optional
nestedSchema
properties
optional
schemaMap
{"schemaVersion": {"const": "0.2"}, "event": {"type": "object", "required": ["id", "occurredAt"…
additionalProperties
optional
nestedSchema
false
unevaluatedProperties
optional
nestedSchema
propertyNames
optional
nestedSchema
dependentSchemas
optional
schemaMap
prefixItems
optional
schemaArray
items
optional
nestedSchema
{"type": "object", "required": ["age_band", "customer_id", "marketing_consent", "region"], "pro…
contains
optional
nestedSchema
unevaluatedItems
optional
nestedSchema
title
optional
string
description
optional
string
default
optional
any
deprecated
optional
boolean
readOnly
optional
boolean
writeOnly
optional
boolean
examples
optional
array
contentEncoding
optional
string
contentMediaType
optional
string
contentSchema
optional
nestedSchema
format
optional
string

nestedSchema#

Shape one of 2 variants

Appears at $defs.*, $defs.*.$defs.*, $defs.*.additionalProperties, $defs.*.allOf[], $defs.*.anyOf[], $defs.*.contains, $defs.*.contentSchema, $defs.*.dependentSchemas.*…

Variants (2)

Exactly one of these shapes must match.

#Base
1boolean
2any

schemaArray#

Shape array of nestedSchema
  • min items 1

Appears at $defs.*.allOf, $defs.*.anyOf, $defs.*.oneOf, $defs.*.prefixItems, additionalProperties.additionalProperties.allOf, additionalProperties.additionalProperties.anyOf, additionalProperties.additionalProperties.oneOf, additionalProperties.additionalProperties.prefixItems…

schemaMap#

Shape map of nestedSchema

Appears at $defs, $defs.*.$defs, $defs.*.dependentSchemas, $defs.*.properties, additionalProperties.$defs, additionalProperties.additionalProperties.$defs, additionalProperties.additionalProperties.dependentSchemas, additionalProperties.additionalProperties.properties…

Real documents that validate

  • demos/end-to-end/artifacts/receiver/resources/31934d2cf8fa7b5af2f8e4cf591d96278c4f59ddb6bb190afccb93701244f9eb.schema.json
  • demos/end-to-end/artifacts/receiver/resources/68169d043c628fda5435cbd7845b02ea3e0d850b7a509c0b35fd304463fffacb.schema.json

Raw JSON

The published document (5,319 bytes)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json",
  "$vocabulary": {
    "https://json-schema.org/draft/2020-12/vocab/core": true,
    "https://json-schema.org/draft/2020-12/vocab/applicator": true,
    "https://json-schema.org/draft/2020-12/vocab/validation": true,
    "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
    "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
    "https://json-schema.org/draft/2020-12/vocab/content": true,
    "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
    "https://usemakoto.dev/vocab/v0.2/bounded-pattern": true
  },
  "$dynamicAnchor": "meta",
  "title": "Makoto v0.2 Organizational Profile Dialect",
  "type": "object",
  "required": ["$schema", "$id"],
  "allOf": [{ "$ref": "#/$defs/schemaObject" }],
  "$defs": {
    "nonnegativeInteger": { "type": "integer", "minimum": 0 },
    "schemaObject": {
      "type": "object",
      "properties": {
        "$schema": {
          "const": "https://usemakoto.dev/schema/v0.2/profile-dialect.schema.json"
        },
        "$id": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "$comment": { "type": "string" },
        "$ref": { "type": "string" },
        "$defs": { "$ref": "#/$defs/schemaMap" },
        "$anchor": {
          "type": "string",
          "pattern": "^[A-Za-z_][-A-Za-z0-9._]*$"
        },
        "type": {
          "oneOf": [
            {
              "enum": ["null", "boolean", "object", "array", "number", "string", "integer"]
            },
            {
              "type": "array",
              "minItems": 1,
              "uniqueItems": true,
              "items": {
                "enum": ["null", "boolean", "object", "array", "number", "string", "integer"]
              }
            }
          ]
        },
        "enum": { "type": "array", "minItems": 1 },
        "const": true,
        "multipleOf": { "type": "number", "exclusiveMinimum": 0 },
        "maximum": { "type": "number" },
        "exclusiveMaximum": { "type": "number" },
        "minimum": { "type": "number" },
        "exclusiveMinimum": { "type": "number" },
        "maxLength": { "$ref": "#/$defs/nonnegativeInteger" },
        "minLength": { "$ref": "#/$defs/nonnegativeInteger" },
        "makotoPattern": { "type": "string", "maxLength": 65536 },
        "maxItems": { "$ref": "#/$defs/nonnegativeInteger" },
        "minItems": { "$ref": "#/$defs/nonnegativeInteger" },
        "uniqueItems": { "type": "boolean" },
        "maxContains": { "$ref": "#/$defs/nonnegativeInteger" },
        "minContains": { "$ref": "#/$defs/nonnegativeInteger" },
        "maxProperties": { "$ref": "#/$defs/nonnegativeInteger" },
        "minProperties": { "$ref": "#/$defs/nonnegativeInteger" },
        "required": {
          "type": "array",
          "items": { "type": "string" },
          "uniqueItems": true
        },
        "dependentRequired": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": { "type": "string" },
            "uniqueItems": true
          }
        },
        "allOf": { "$ref": "#/$defs/schemaArray" },
        "anyOf": { "$ref": "#/$defs/schemaArray" },
        "oneOf": { "$ref": "#/$defs/schemaArray" },
        "not": { "$ref": "#/$defs/nestedSchema" },
        "if": { "$ref": "#/$defs/nestedSchema" },
        "then": { "$ref": "#/$defs/nestedSchema" },
        "else": { "$ref": "#/$defs/nestedSchema" },
        "properties": { "$ref": "#/$defs/schemaMap" },
        "additionalProperties": { "$ref": "#/$defs/nestedSchema" },
        "unevaluatedProperties": { "$ref": "#/$defs/nestedSchema" },
        "propertyNames": { "$ref": "#/$defs/nestedSchema" },
        "dependentSchemas": { "$ref": "#/$defs/schemaMap" },
        "prefixItems": { "$ref": "#/$defs/schemaArray" },
        "items": { "$ref": "#/$defs/nestedSchema" },
        "contains": { "$ref": "#/$defs/nestedSchema" },
        "unevaluatedItems": { "$ref": "#/$defs/nestedSchema" },
        "title": { "type": "string" },
        "description": { "type": "string" },
        "default": true,
        "deprecated": { "type": "boolean" },
        "readOnly": { "type": "boolean" },
        "writeOnly": { "type": "boolean" },
        "examples": { "type": "array" },
        "contentEncoding": { "type": "string" },
        "contentMediaType": { "type": "string" },
        "contentSchema": { "$ref": "#/$defs/nestedSchema" },
        "format": { "type": "string" }
      },
      "additionalProperties": false
    },
    "nestedSchema": {
      "oneOf": [
        { "type": "boolean" },
        {
          "allOf": [
            { "$ref": "#/$defs/schemaObject" },
            {
              "not": {
                "anyOf": [
                  { "required": ["$schema"] },
                  { "required": ["$id"] },
                  { "required": ["$vocabulary"] }
                ]
              }
            }
          ]
        }
      ]
    },
    "schemaArray": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/nestedSchema" }
    },
    "schemaMap": {
      "type": "object",
      "additionalProperties": { "$ref": "#/$defs/nestedSchema" }
    }
  }
}

The published bytes, unmodified.