ptxiagram 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://claude-skills/pptx-diagram/schemas/workflow.schema.json",
4
+ "title": "Native PPTX Workflow Diagram",
5
+ "description": "Lanes stack vertically and are auto-positioned; nodes sit in a lane at an optional column slot (0-5) auto-spaced so default-width nodes can never overlap. See renderers/workflow/README.md for the exact layout budget.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["schema_version", "diagram_type", "meta", "lanes", "nodes", "edges"],
9
+ "properties": {
10
+ "schema_version": { "const": 1 },
11
+ "diagram_type": { "const": "workflow" },
12
+ "meta": {
13
+ "type": "object",
14
+ "additionalProperties": false,
15
+ "required": ["title"],
16
+ "properties": {
17
+ "title": { "type": "string", "minLength": 1 },
18
+ "subtitle": { "type": "string" },
19
+ "output": { "type": "string" }
20
+ }
21
+ },
22
+ "lanes": {
23
+ "type": "array",
24
+ "minItems": 1,
25
+ "items": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "required": ["id", "label"],
29
+ "properties": {
30
+ "id": { "$ref": "common.schema.json#/$defs/id" },
31
+ "label": { "type": "string", "minLength": 1 },
32
+ "height": { "type": "number", "minimum": 1.2, "maximum": 3, "description": "inches; default 1.75" }
33
+ }
34
+ }
35
+ },
36
+ "nodes": {
37
+ "type": "array",
38
+ "minItems": 1,
39
+ "items": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["id", "lane", "type", "label"],
43
+ "properties": {
44
+ "id": { "$ref": "common.schema.json#/$defs/id" },
45
+ "lane": { "$ref": "common.schema.json#/$defs/id" },
46
+ "col": { "type": "integer", "minimum": 0, "maximum": 5, "description": "slot index within the lane; auto-assigned to the next free slot if omitted" },
47
+ "type": { "$ref": "common.schema.json#/$defs/nodeType" },
48
+ "label": { "type": "string", "minLength": 1 },
49
+ "sublabel": { "type": "string" },
50
+ "tag": { "type": "string" },
51
+ "width": { "type": "number", "minimum": 0.6, "maximum": 1.85, "description": "inches; default 1.8, capped so it never exceeds one slot" },
52
+ "height": { "type": "number", "minimum": 0.5, "maximum": 1.5, "description": "inches; default 0.95" }
53
+ }
54
+ }
55
+ },
56
+ "edges": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "required": ["from", "to"],
62
+ "properties": {
63
+ "from": { "$ref": "common.schema.json#/$defs/id" },
64
+ "to": { "$ref": "common.schema.json#/$defs/id" },
65
+ "label": { "type": "string" },
66
+ "variant": { "enum": ["default", "emphasis", "security", "dashed"] },
67
+ "route": { "$ref": "common.schema.json#/$defs/route" },
68
+ "bias": { "type": "number", "minimum": 0.1, "maximum": 0.9 }
69
+ }
70
+ }
71
+ },
72
+ "cards": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "required": ["title", "items"],
78
+ "properties": {
79
+ "title": { "type": "string", "minLength": 1 },
80
+ "color": { "$ref": "common.schema.json#/$defs/hexColor" },
81
+ "items": { "type": "array", "items": { "type": "string" } }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }