LabKit MATLAB Workbench

history

Figure Studio adopts one product definition

id: LK-20260716-figure-studio-single-definition
date: 2026-07-16
sequence: 79
type: refactor
compatibility: compatible
component: `labkit_FigureStudio_app` | `0.2.1 -> 0.2.2`
component: `labkit.ui` | `7.2.0 -> 7.2.1`
scope: LabKit Core
scope: App structure

Context

Figure Studio declared its command, names, family, App version, and LabKit requirement in two files separate from the runtime definition. Its entrypoint joined all three factories even though they described one product.

Decision and rationale

Use Figure Studio as the first reviewed App migration to the single-definition contract. This validates the reduced structure on an App that also accepts a typed axes handoff, without changing its plotting or export behavior.

Changes

User and data impact

Launch, axes handoff, style controls, project payload, FIG reading, plot snapshot extraction, and all export formats retain their existing behavior. Maintainers now update one product contract instead of three files.

Compatibility and migration

The App command and project ID are unchanged. App version metadata requests still return the same fields through the public entrypoint. Existing project payloads remain at version 1 and require no data migration.

Validation

Focused tests cover ordinary launch, axes handoff, style changes, project round-trip, exports, launcher discovery, requirements/version requests, and version/history governance.

Evidence

Known limitations and follow-up

Figure Studio still has a meaningful version-1 project schema, rebuildable plot session cache, and startup resource installation. These will move to the projectSpec/action capability model after the framework supports that model; they were not deleted merely to reduce file count.