// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

/**
 * Catalog entry for a workspace the user has on this machine.
 * Held in `AppState.workspaces` alongside theme + Slack creds —
 * distinct from the live [`Workspace`] snapshot, which carries
 * folder + active-folder state for the running process's
 * workspace.
 *
 * The catalog is empty until the user names their first
 * workspace in preboot mode; from there on the picker
 * (Phase 7.8) and the launcher (Phase 7.9) read this list to
 * drive the create / focus / restore-most-recent flows.
 */
export type WorkspaceMeta = { 
/**
 * Stable id — the slug the user picked at creation time.
 * Same string that ends up in `moon-ws-<id>` and the
 * per-workspace state dir, so it must pass
 * [`validate_workspace_id`].
 */
id: string, 
/**
 * Human-readable label the user typed at creation time. Free
 * text — distinct from `id` so renaming the display name
 * doesn't move the on-disk state dir.
 */
name: string, 
/**
 * Last time anything in this workspace was touched, as Unix
 * epoch seconds. Phase 7.9 uses this to pick which workspace
 * the launcher restores; Phase 7.8's picker uses it for the
 * "recent" sort. Bumped on `workspace_create`, `window_open`,
 * and every `session_save` tick.
 */
last_active_at: bigint, 
/**
 * User-chosen badge colour as `#rrggbb`, applied to this
 * workspace's per-window icon (alt-tab differentiation). `None`
 * means "use the deterministic hash-derived hue" — i.e. the
 * default colour every new workspace starts with. `#[serde(default)]`
 * keeps state.json forward-compatible: pre-colour catalogs
 * load cleanly and lazily promote to `None` on the next save.
 */
color?: string, };
