feat: publish A1-A8 card viewer and FreeRTOS C generator
Check card layouts / check (push) Has been cancelled
Check card layouts / check (push) Has been cancelled
This commit is contained in:
@@ -31,6 +31,23 @@
|
||||
"debug_checkpoints": {
|
||||
"$ref": "#/$defs/debugCheckpoints"
|
||||
},
|
||||
"viewpoints": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 8,
|
||||
"items": {
|
||||
"$ref": "#/$defs/viewpoint"
|
||||
}
|
||||
},
|
||||
"debug_strategies": {
|
||||
"type": "object",
|
||||
"propertyNames": {
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
|
||||
},
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/debugStrategy"
|
||||
}
|
||||
},
|
||||
"render_dictionary": {
|
||||
"type": "boolean",
|
||||
"description": "Czy React/HTML ma dodać końcową stronę słownika WE/EN/EK/KW."
|
||||
@@ -309,6 +326,11 @@
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
||||
},
|
||||
"url_domain": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9.-]+$",
|
||||
"description": "Opcjonalna domena dopinana do subdomeny UUID, np. mpabi.pl."
|
||||
},
|
||||
"url_port": { "type": ["string", "integer"] },
|
||||
"doc_uuid": {
|
||||
"type": "string",
|
||||
@@ -605,6 +627,27 @@
|
||||
"enum": ["flow", "one-per-page"],
|
||||
"description": "Sposób paginacji assetów. one-per-page wymusza osobną kartkę A4 w HTML i PDF."
|
||||
},
|
||||
"page_orientation": {
|
||||
"enum": ["portrait", "landscape"],
|
||||
"default": "portrait",
|
||||
"description": "Orientacja fizycznych stron tej sekcji w HTML i TeX. Dobierana do geometrii diagramu, niezależnie od page_grid."
|
||||
},
|
||||
"spread_group": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
|
||||
"description": "Łączy kolejne strony assetów w opcjonalny ekranowy spread; druk nadal zachowuje osobne kartki A4."
|
||||
},
|
||||
"spread_label": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Krótka nazwa logicznego diagramu pokazywana przy przełączniku spreadu."
|
||||
},
|
||||
"spread_columns": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 12,
|
||||
"description": "Liczba fizycznych stron A4 w jednym wierszu logicznego spreadu."
|
||||
},
|
||||
"area_tree_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
@@ -674,6 +717,72 @@
|
||||
},
|
||||
"interactive": {
|
||||
"$ref": "#/$defs/interactiveAsset"
|
||||
},
|
||||
"page_grid": {
|
||||
"$ref": "#/$defs/diagramPageGrid"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"diagramPageGrid": {
|
||||
"type": "object",
|
||||
"required": ["columns", "rows"],
|
||||
"properties": {
|
||||
"columns": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 12
|
||||
},
|
||||
"rows": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 12
|
||||
},
|
||||
"page_width": {
|
||||
"type": "number",
|
||||
"exclusiveMinimum": 0,
|
||||
"default": 660,
|
||||
"description": "Referencyjna szerokość bezpiecznego pola diagramu A4 w jednostkach PlantUML."
|
||||
},
|
||||
"page_height": {
|
||||
"type": "number",
|
||||
"exclusiveMinimum": 0,
|
||||
"default": 760,
|
||||
"description": "Referencyjna wysokość bezpiecznego pola diagramu A4 w jednostkach PlantUML."
|
||||
},
|
||||
"step_tiles": {
|
||||
"type": "object",
|
||||
"propertyNames": {
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
|
||||
},
|
||||
"additionalProperties": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"description": "Jawne przypisanie id kroku do numeru kafla w porządku wierszowym, liczonego od 1."
|
||||
},
|
||||
"cuts_x": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"description": "Semantyczne pionowe linie cięcia w układzie współrzędnych SVG; nie mogą przecinać bloków ani etykiet."
|
||||
},
|
||||
"cuts_y": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"description": "Semantyczne poziome linie cięcia w układzie współrzędnych SVG; nie mogą przecinać bloków ani etykiet."
|
||||
},
|
||||
"overview": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "W HTML udostępnia pomniejszony podgląd całej logicznej planszy obok widoku kafli 1:1."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
@@ -883,6 +992,11 @@
|
||||
"type": "object",
|
||||
"required": ["stop"],
|
||||
"properties": {
|
||||
"event_id": {
|
||||
"type": "string",
|
||||
"pattern": "^E[0-9]{2}$",
|
||||
"description": "Semantic event shared by comparable cards; the snapshot id remains card-local."
|
||||
},
|
||||
"stop": {
|
||||
"type": "object",
|
||||
"required": ["symbol", "offset"],
|
||||
@@ -962,12 +1076,30 @@
|
||||
},
|
||||
"umlSequenceStep": {
|
||||
"type": "object",
|
||||
"required": ["id", "number", "label", "description", "snapshot"],
|
||||
"required": ["id", "number", "label", "description"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"number": { "type": "integer", "minimum": 1 },
|
||||
"label": { "type": "string", "minLength": 1 },
|
||||
"mode": {
|
||||
"enum": ["CODE", "RUN"],
|
||||
"description": "CODE opens source only; RUN opens source and may replay snapshot_ref. When omitted, steps with snapshot_ref infer RUN and code-only steps infer CODE."
|
||||
},
|
||||
"event_id": {
|
||||
"type": "string",
|
||||
"pattern": "^E[0-9]{2}$"
|
||||
},
|
||||
"strategy_ref": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Reference to a structured entry in debug_strategies."
|
||||
},
|
||||
"description": { "type": "string", "minLength": 1 },
|
||||
"evidence": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Expected source, ELF, disassembly, or runtime proof for the teaching step."
|
||||
},
|
||||
"code_ref": { "type": "string" },
|
||||
"progress_id": { "type": "string", "minLength": 1 },
|
||||
"snapshot_ref": {
|
||||
@@ -981,8 +1113,67 @@
|
||||
"minLength": 1,
|
||||
"description": "Dokładny numer lub etykieta wiadomości PlantUML wybieranej w inline SVG."
|
||||
},
|
||||
"svg_target": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Stable PlantUML SVG element id. If absent, the renderer focuses the svg_label row."
|
||||
},
|
||||
"snapshot": { "$ref": "#/$defs/umlSnapshot" }
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": {
|
||||
"properties": { "mode": { "const": "CODE" } },
|
||||
"required": ["mode"]
|
||||
},
|
||||
"then": { "not": { "required": ["snapshot_ref"] } }
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"viewpoint": {
|
||||
"type": "object",
|
||||
"required": ["id", "label", "status"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"enum": ["A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8"]
|
||||
},
|
||||
"label": { "type": "string", "minLength": 1 },
|
||||
"subtitle": { "type": "string" },
|
||||
"status": { "enum": ["enabled", "unavailable"] },
|
||||
"target_label": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9:.-]*$"
|
||||
},
|
||||
"reason": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": { "properties": { "status": { "const": "enabled" } }, "required": ["status"] },
|
||||
"then": { "required": ["target_label"] }
|
||||
},
|
||||
{
|
||||
"if": { "properties": { "status": { "const": "unavailable" } }, "required": ["status"] },
|
||||
"then": { "required": ["reason"] }
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"debugStrategy": {
|
||||
"type": "object",
|
||||
"required": ["id", "kind", "action", "expected_observations", "assertions", "evidence_fields"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"kind": { "enum": ["code", "run"] },
|
||||
"prerequisites": { "$ref": "#/$defs/stringList" },
|
||||
"code_ref": { "type": "string", "minLength": 1 },
|
||||
"action": { "enum": ["open", "replay"] },
|
||||
"layout": { "$ref": "#/$defs/stringList" },
|
||||
"commands": { "$ref": "#/$defs/stringList" },
|
||||
"expected_observations": { "$ref": "#/$defs/stringList" },
|
||||
"assertions": { "$ref": "#/$defs/stringList" },
|
||||
"evidence_fields": { "$ref": "#/$defs/stringList" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"umlSequencePhase": {
|
||||
@@ -1006,7 +1197,7 @@
|
||||
"required": ["kind"],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"enum": ["allocator-memory-flow", "uml-sequence"]
|
||||
"enum": ["allocator-memory-flow", "uml-sequence", "uml-class"]
|
||||
},
|
||||
"storage_key": {
|
||||
"type": "string",
|
||||
|
||||
Reference in New Issue
Block a user