v1.7.0 — typographic control and the canonical capability surface
v1.7.0 — typographic control and the canonical capability surface
Bold headlines, tracked captions, outlined display text, and text that sits
where the box says it should — plus one capability listing that every
surface reads, so what the engine renders is exactly what it advertises.
schemaVersion stays 1 and the Operation union is unchanged. The
oldest build that opens a 1.7.0 document is 1.0: builds 1.0 through 1.6
degrade silently through the Extras capture map, rendering the regular
face with no spacing, stroke or vertical alignment.
Added
fontWeight(100–900) andfontStyleon text layers, resolved by
exact face: a weight the font store has no face for is refused with a
typedMissingFontnaming family, weight and style — never substituted.
Set them throughassemblash set/add-text(--weight,--font-style),
MCPadd_text_layer/update_layer, the HTTP create/update payloads,
presets, and the interface.letterSpacing(px) on text layers, part of measurement itself —
wrapping,/text-layout, the overflow warnings and the export all agree.strokeon text layers, painted centred on the glyph outline with
paint-order="stroke". A layer withcolor: nulland a stroke is hollow
display text.verticalAlign(top|middle|bottom, defaulttop), so
existing documents render pixel-identically.- The canonical capability listing.
assemblash styles --json, HTTP
GET /api/capabilities, and the new MCPlist_capabilitiestool serve
one identical listing of every blend mode and effect this build renders,
with examples and notes. Check it before building. - Four new cross-target determinism gates for the new paint paths
(text-weight,text-stroke,text-spacing,text-valign); every
pre-existing golden is byte-identical.
Upgrade: 1.7.0 is a drop-in replacement for 1.6.x. Documents written by
1.7.0 open unchanged in 1.6.1 and in every build back to 1.0 (new fields are
preserved, just not rendered, by older builds).