# Graphics Painter

## What It Does

The Graphics Painter is the tile and sprite art editing window. It handles pixel editing, frame management, animation timeline editing, preview playback, and import-oriented art workflows.

## Key Files

- `src/worldshaperStudio/tileArtEditorWindowController.ts`
- `src/worldshaperStudio/graphicsDocumentHelpers.ts`
- `src/worldshaperStudio/importController.ts`
- `src/worldshaperStudio/dom.ts`

## Endpoints It Uses

- `GET /api/images`
- `GET /api/images/:filename`
- `POST /api/content/images`
- `POST /api/content/sprites`
- `POST /api/content/tiles`

## Important Data And Rules

- graphics records may include animation frame data and playback metadata
- preview behavior is maintained in painter-local UI state
- art changes eventually flow into tile and sprite content records
- imports and previews are tightly tied to painter usability

## Invariants And Constraints

- the painter is a floating tool window, not a docked pane
- animation preview should reflect current frame ordering and speed settings
- save behavior must preserve frame structure and timing metadata
- painter workflows often depend on tile and sprite schema conventions

## Common Request Themes

- move or selection tools
- frame duplication and frame management
- animation controls
- import workflow improvements
- better preview behavior

## Triage Questions

- Is this request about art authoring, record storage, or runtime playback?
- Does it affect tiles, sprites, or both?
- Is the requested behavior inside the painter window only?
