main
John Lauer Publish 0.1.0 55a9481 2d ago
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "adom/board-release@1",
 "title": "Board release: the handoff from the board flow to every later stage",
 "description": "Written when a board is finished. Every later flow app (ordering, probing, ...) starts from this file and checks the sha256 of each file it names, so it never builds a board that changed after it was finished.",
 "type": "object",
 "required": ["schema", "board", "bom"],
 "properties": {
  "schema": {"const": "adom/board-release@1"},
  "name": {"type": "string", "description": "board name, e.g. buck-12v5v-molecule"},
  "page": {"type": ["string", "null"], "description": "the board's wiki page (owner/slug), if it has one"},
  "board": {"$ref": "#/$defs/file", "description": "the finished .kicad_pcb (or .brd)"},
  "schematic": {"$ref": "#/$defs/file"},
  "bom": {"$ref": "#/$defs/file", "description": "BOM csv: ref, mpn, value, plus vendor columns (lcsc, mouser...) and fit (post|dnp|hand for parts fitted after assembly)"},
  "spec": {"$ref": "#/$defs/file"},
  "sourcingProfile": {"type": "string", "description": "the profile the BOM was checked against (fab, jlcpcb, ...)"},
  "finished": {"type": "string", "format": "date-time"},
  "producedBy": {"type": "string", "description": "app and version that wrote this, e.g. adom-aiflow 0.1.52"},
  "checks": {"type": "object", "description": "what the board flow proved: drc, routed, analyses, with their results"},
  "notes": {"type": "array", "items": {"type": "string"}, "description": "anything a later stage must know"}
 },
 "$defs": {
  "file": {"type": "object", "required": ["path", "sha256"], "properties": {"path": {"type": "string"}, "sha256": {"type": "string"}}}
 }
}