Repository navigation
EN Reference Graph Schema
Cavanshirpro edited this page Sep 19, 2026
·
1 revision
English · Türkçe · Languages / Diller
Scope: JSON API Forge 0.5.1 · Source review: 17 September 2026 · Language: English
This is the graph file-format reference. Acceptance of a node metadata type does not mean the compiler can turn it into executable RPC. The graph guide describes the supported subset and Copy JSON workflow.
| Field | Type | Required | Default | Schema constraints |
|---|---|---|---|---|
$schema |
string |
No | — | — |
schema_version |
const 1 |
Yes | — | — |
target_document |
string |
Yes | — | pattern="^config/[A-Za-z0-9][A-Za-z0-9._-]{0,95}\\.json$" |
metadata |
object |
No | — | — |
nodes |
list[object] |
Yes | — | maxItems=500 |
edges |
list[object] |
Yes | — | maxItems=2000 |
| Field | Type | Required | Default | Schema constraints |
|---|---|---|---|---|
id |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
type |
string |
Yes | — | pattern="^[a-z][a-z0-9]*(?:[._-][a-z0-9]+){1,7}$" |
title |
string |
No | — | maxLength=160 |
x |
number |
Yes | — |
min=-1000000; max=1000000
|
y |
number |
Yes | — |
min=-1000000; max=1000000
|
properties |
object |
Yes | — | — |
| Field | Type | Required | Default | Schema constraints |
|---|---|---|---|---|
id |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
from_node |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
from_port |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
to_node |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
to_port |
string |
Yes | — | pattern="^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$" |
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://json-api-forge.dev/schemas/editor-graph.schema.json",
"title": "JSON API Forge Editor Graph",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"target_document",
"nodes",
"edges"
],
"properties": {
"$schema": {
"type": "string"
},
"schema_version": {
"const": 1
},
"target_document": {
"type": "string",
"pattern": "^config/[A-Za-z0-9][A-Za-z0-9._-]{0,95}\\.json$"
},
"metadata": {
"type": "object"
},
"nodes": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type",
"x",
"y",
"properties"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
},
"type": {
"type": "string",
"pattern": "^[a-z][a-z0-9]*(?:[._-][a-z0-9]+){1,7}$"
},
"title": {
"type": "string",
"maxLength": 160
},
"x": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"y": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"properties": {
"type": "object"
}
}
}
},
"edges": {
"type": "array",
"maxItems": 2000,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"from_node",
"from_port",
"to_node",
"to_port"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
},
"from_node": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
},
"from_port": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
},
"to_node": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
},
"to_port": {
"type": "string",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,126}[A-Za-z0-9])?$"
}
}
}
}
}
}This page describes the behavior at the pinned commits below. Recheck these contracts when upgrading.