gum-tool-save-classes

Document Gum save/load data types and their XML serialization relationships.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-tool-save-classes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-tool-save-classes
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-tool-save-classes
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-tool-save-classes

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Gum's save/load data model is complex, and this reference guide clarifies the relationships between GumProjectSave, ScreenSave, ComponentSave, StandardElementSave, ElementSave, StateSave, VariableSave, InstanceSave, BehaviorSave, and their serialization/deserialization behavior to help developers work with Gum projects.

Core Features & Use Cases

  • Clear explanations of the core data types, their relationships, and how they serialize to XML.
  • Guidance on two-phase loading, runtime vs. save data, and how cross-element references are maintained during renames.
  • Practical notes on rename propagation, exposed variables, and the ShouldSerialize patterns used to minimize empty XML.

Quick Start

Open this guide to learn Gum's save/load data model and how to apply renaming and reference updates.

Frequently Asked Questions about gum-tool-save-classes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does Gum's save/load data model handle XML serialization for elements and states?

Gum's save/load data model serializes types like ElementSave, StateSave, and VariableSave to XML using ShouldSerialize patterns to minimize empty elements. This reference guide documents the exact file structures and serialization behavior for these core data types.

How do cross-element references update when renaming instances or variables in Gum projects?

When renaming instances or variables in Gum, cross-element references are maintained through propagation rules documented in this guide. It explains how runtime and save data interact so that renaming an object updates all dependent references across the project.

What is two-phase loading in Gum and when do I need to understand it?

Two-phase loading is Gum's deserialization approach for resolving complex cross-references between saved objects like ComponentSave and BehaviorSave. You need to understand it when modifying Gum's load behavior or troubleshooting reference resolution during project initialization.

What is the relationship between GumProjectSave, ElementSave, and StateSave in the data model?

GumProjectSave is the root object containing ScreenSave, ComponentSave, and StandardElementSave types, all of which derive from ElementSave. ElementSave objects contain StateSave and VariableSave collections, defining the hierarchical structure documented in this guide.

How does Gum prevent empty XML tags from bloating saved project files?

Gum uses ShouldSerialize patterns on properties within VariableSave and other save objects to prevent empty XML tags. This guide details how these patterns minimize file size by omitting default or empty values during serialization.

Does this Gum data model reference cover exposed variables and BehaviorSave types?

Yes, this guide covers exposed variables and BehaviorSave types alongside InstanceSave and VariableSave. It documents their relationships within the save/load hierarchy and explains their specific serialization and deserialization behaviors.