Engineering manualSchema reference
Brand Studio product roadmap
Declared schema: schemas/product-roadmap.schema.json
Source: schemas/product-roadmap.schema.json. This is the complete declaration, including nested definitions and constraints. Its presence is not evidence that a runtime producer or consumer validates against it.
All schemas · Data structures and lineage
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://brand.mirrorfactory.ai/schemas/product-roadmap.schema.json",
"title": "Brand Studio product roadmap",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"version",
"updated_at",
"status",
"product",
"status_vocabulary",
"themes",
"excluded_for_now",
"feedback"
],
"properties": {
"schema_version": {
"const": "brand-studio-product-roadmap/v2"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"updated_at": {
"type": "string",
"format": "date"
},
"status": {
"enum": [
"active",
"archived"
]
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"tagline",
"positioning",
"primary_action",
"thesis",
"operating_rule"
],
"properties": {
"name": {
"const": "Brand Studio"
},
"tagline": {
"type": "string",
"minLength": 1
},
"positioning": {
"type": "string",
"minLength": 1
},
"primary_action": {
"$ref": "#/$defs/action"
},
"thesis": {
"type": "string",
"minLength": 1
},
"operating_rule": {
"type": "string",
"minLength": 1
}
}
},
"status_vocabulary": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"label",
"meaning"
],
"properties": {
"id": {
"$ref": "#/$defs/status"
},
"label": {
"type": "string",
"minLength": 1
},
"meaning": {
"type": "string",
"minLength": 1
}
}
}
},
"themes": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/theme"
}
},
"excluded_for_now": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"label",
"reason"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"label": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"feedback": {
"type": "object",
"additionalProperties": false,
"required": [
"title",
"summary",
"action_label",
"action_href"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"action_label": {
"type": "string",
"minLength": 1
},
"action_href": {
"type": "string",
"minLength": 1
}
}
}
},
"$defs": {
"status": {
"enum": [
"shipped",
"active",
"next",
"planned",
"exploratory"
]
},
"proof_state": {
"enum": [
"verified",
"partial",
"planned",
"hypothesis"
]
},
"action": {
"type": "object",
"additionalProperties": false,
"required": [
"label",
"href"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"href": {
"type": "string",
"minLength": 1
}
}
},
"theme": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"sequence",
"marker",
"title",
"summary",
"items"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"sequence": {
"type": "integer",
"minimum": 1
},
"marker": {
"enum": [
"source",
"feed",
"pulse",
"signal",
"system"
]
},
"title": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/item"
}
}
}
},
"item": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"summary",
"status",
"proof_state",
"evidence",
"exit_criteria"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"title": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"status": {
"$ref": "#/$defs/status"
},
"proof_state": {
"$ref": "#/$defs/proof_state"
},
"evidence": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"exit_criteria": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
},
"allOf": [
{
"if": {
"properties": {
"status": {
"enum": [
"shipped",
"active"
]
}
},
"required": [
"status"
]
},
"then": {
"properties": {
"evidence": {
"minItems": 1
}
}
}
}
]
}
}
}