LabKit MATLAB Workbench

history

Figure Studio consolidates its project schema

id: LK-20260716-figure-studio-project-spec
date: 2026-07-16
sequence: 82
type: refactor
compatibility: compatible
component: `labkit_FigureStudio_app` | `0.2.2 -> 0.2.3`
scope: LabKit Core
scope: Project lifecycle

Context

Figure Studio's version-1 project creation and validation lived in separate files under a generic +appLifecycle package. The package name described a framework phase rather than the durable capability those functions owned.

Decision and rationale

Consolidate the complete durable schema behind projectSpec.m. Keep createSession.m separate at the App package root because it performs a different job: rebuilding transient selection and decoded plot cache from a validated project.

Changes

User and data impact

Figure loading, axes handoff, styling, project save/load, session restoration, and exports behave unchanged. A maintainer can now understand the entire durable schema in one file.

Compatibility and migration

The App command, project ID, payload version, fields, validation, and source record format are unchanged. Existing Figure Studio projects need no migration.

Validation

The existing unit and hidden GUI suites cover FIG reading, source style, project round-trip, axes handoff, canvas resizing, quick export, and data package export through the consolidated project declaration.

Evidence

Known limitations and follow-up

The startup hook still owns axes handoff and resize-resource installation. It will be evaluated with other App startup hooks before any shared mount/action capability is introduced.