addedInput schema / properties / context
Added value: +{
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "next": {
+ "description": "Next actions for resuming this effort",
+ "maxLength": 2000,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ "summary": {
+ "description": "Concise purpose and confirmed decisions",
+ "maxLength": 2000,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+}
addedInput schema / properties / edges
Added value: +{
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "the node that USES the other (must live on a higher layer)",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "label": {
+ "anyOf": [
+ {
+ "description": "New edge label; null clears",
+ "maxLength": 80,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "New edge label; null clears"
+ },
+ "newFrom": {
+ "description": "replacement consumer",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "newTo": {
+ "description": "replacement dependency",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "to": {
+ "description": "the node being used (must live on a strictly lower layer)",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+}
addedInput schema / properties / expectedRevision
Added value: +{
+ "description": "Revision from mmap_read; absent requires a new page. A stale revision returns CONFLICT.",
+ "pattern": "^(?:[a-f0-9]{64}|absent)$",
+ "type": "string"
+}
addedInput schema / properties / groups
Added value: +{
+ "description": "relabel or move a group; final membership must match its layer",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "id of the group to revise",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "label": {
+ "description": "new subsystem name",
+ "maxLength": 60,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ "layer": {
+ "description": "new layer; move members in the same batch",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+}
addedInput schema / properties / kind
Added value: +{
+ "description": "diagram kind. dev (default) = the live progress ledger with status skins. The rest are documentation diagrams rendered neutrally: architecture (layered components; also fits call graphs and module dependencies), dataflow (source→transform→sink, stages as layers), behavior-tree (root on top, leaves at the bottom; also fits mind maps and WBS), sequence (classic call/return: rank = time step with rank 0 = EARLIEST, drawn top-down; declare lanes as participants and make every call AND every return its own event node in the acting participant's lane, edges labeled with the message). State machines are unsupported: cycles cannot enter a Mellos map.",
+ "enum": [
+ "dev",
+ "architecture",
+ "dataflow",
+ "behavior-tree",
+ "sequence"
+ ],
+ "type": "string"
+}
addedInput schema / properties / laneOrder
Added value: +{
+ "description": "Every lane exactly once, in display order.",
+ "items": {
+ "description": "existing lane id",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+}
addedInput schema / properties / lanes
Added value: +{
+ "description": "relabel existing lanes; order and membership are untouched",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "id of the lane to relabel",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "label": {
+ "description": "new column name",
+ "maxLength": 60,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "label"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+}
addedInput schema / properties / layers
Added value: +{
+ "description": "rename and/or re-rank existing bands; an item must carry a name, a rank, or both",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "id of the band to revise",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ "name": {
+ "description": "new display name of the band",
+ "maxLength": 60,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ "rank": {
+ "description": "an integer in 0..99, 0 = bottom / most primitive; must be unique among the map's bands",
+ "maximum": 99,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+}
changedInput schema / properties / page / description
Previous value: -"page (parallel map) this call targets; omit for the default page. One effort = one page: start a NEW effort on its own page named after the effort, so concurrent sessions never write over each other and the pane can switch between pages."New value: +"page (parallel map) this call targets; omit for the default page. A new conversation is not a new effort. Read existing pages with mmap_read first; reuse the same page for continued work. Create a new page only for a distinct effort."
addedInput schema / properties / title
Added value: +{
+ "anyOf": [
+ {
+ "description": "Map title; null clears",
+ "maxLength": 120,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Map title; null clears"
+}
addedInput schema / properties / updates / items / properties / detail / anyOf
Added value: +[
+ {
+ "description": "design notes shown in the pane detail panel: responsibility, contract, key decisions; null clears them",
+ "maxLength": 600,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
changedInput schema / properties / updates / items / properties / detail / description
Previous value: -"design notes shown in the pane detail panel: responsibility, contract, key decisions"New value: +"design notes shown in the pane detail panel: responsibility, contract, key decisions; null clears them"
removedInput schema / properties / updates / items / properties / detail / maxLength
Removed value: -600
removedInput schema / properties / updates / items / properties / detail / type
Removed value: -"string"
addedInput schema / properties / updates / items / properties / evidence / anyOf
Added value: +[
+ {
+ "description": "for done: how it was verified; for regressed: what broke; null clears it",
+ "maxLength": 200,
+ "minLength": 1,
+ "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]*$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
changedInput schema / properties / updates / items / properties / evidence / description
Previous value: -"for done: how it was verified; for regressed: what broke"New value: +"for done: how it was verified; for regressed: what broke; null clears it"
removedInput schema / properties / updates / items / properties / evidence / maxLength
Removed value: -200
removedInput schema / properties / updates / items / properties / evidence / type
Removed value: -"string"
changedInput schema / properties / updates / items / properties / group / anyOf
Previous value: -[
- {
- "$ref": "#/properties/page"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "join this same-band group; null leaves the current group",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
removedInput schema / properties / updates / items / properties / id / $ref
Removed value: -"#/properties/page"
addedInput schema / properties / updates / items / properties / id / description
Added value: +"id of the node to update"
addedInput schema / properties / updates / items / properties / id / pattern
Added value: +"^[a-z0-9][a-z0-9-]{0,63}$"
addedInput schema / properties / updates / items / properties / id / type
Added value: +"string"
changedInput schema / properties / updates / items / properties / kind / description
Previous value: -"set the node kind; null clears it"New value: +"node kind rendered as a glyph prefix. Known: selector | sequence | parallel | decorator | condition | action (behavior trees); source | transform | sink (dataflow); service | db | queue | ui (architecture). Unknown kinds are kept and shown in the detail panel."
addedInput schema / properties / updates / items / properties / label / description
Added value: +"new display label inside the box"
addedInput schema / properties / updates / items / properties / label / pattern
Added value: +"^[^\\u0000-\\u001f\\u007f-\\u009f]*$"
changedInput schema / properties / updates / items / properties / lane / anyOf
Previous value: -[
- {
- "$ref": "#/properties/page"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "join this lane; null leaves the current lane",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / updates / items / properties / layer
Added value: +{
+ "description": "move the node to this band; applied before this item's other fields, so a node can move and join a group on the new band in one item. Every edge touching it must still point strictly downward, and a grouped node may only move to its group's band.",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+}
addedInput schema / properties / updates / items / properties / sources
Added value: +{
+ "anyOf": [
+ {
+ "description": "Optional source files and verified SHA256 baselines. mmap_read changes checks them without rescanning the repository.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "path": {
+ "maxLength": 1024,
+ "type": "string"
+ },
+ "sha256": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Optional source files and verified SHA256 baselines. mmap_read changes checks them without rescanning the repository."
+}
changedInput schema / properties / updates / items / properties / status / description
Previous value: -"planned = ghost on the map; in-progress = spinner; done = verified; regressed = was done, now broken"New value: +"the status to record. planned = ghost on the map; in-progress = spinner; done = verified; regressed = was done, now broken"
changedInput schema / properties / updates / items / properties / submap / anyOf
Previous value: -[
- {
- "$ref": "#/properties/page"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "link a child map page by slug; null unlinks it",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
changedInput schema / properties / updates / items / properties / submap / description
Previous value: -"link a child map page; null unlinks it"New value: +"link a child map page by slug; null unlinks it"
removedInput schema / required
Removed value: -[
- "updates"
-]