Contract rules

Element types & render modes

Every pack item declares what kind of element it is. That intent decides its render mode — transparent cutout or full-bleed tile — and whether background removal is ever allowed to run.

The types

Element typeWhat it isRender mode
subject / pose / propAn isolated element with unambiguous figure and ground.Transparent PNG — background removal applies.
border / cornerFrame elements, usually line art.Transparent PNG — background removal applies.
sceneA framed vignette with real figure/ground (a desk, a window view).Transparent PNG — cuts out cleanly.
patternA seamless repeating tile — 100% ground by design.Full-bleed, opaque. Background removal never runs.

The category error

Background removal answers one question: which pixels are the subject, which are the background? A seamless pattern has no subject — the pattern is the ground. Forced to answer anyway, any removal model picks something arbitrary and erases the product. This is deterministic, not bad luck: a better model just carves a cleaner hole.

Policy, not convention

The platform forces background removal off for pattern items regardless of any caller flag. Two independent integrations shipped the same mistake before this was policy — which is the proof it can’t live as a convention.

Transparency is a property, not a feature

A pattern tile is supposed to be edge-to-edge opaque — that is what makes it tileable. Transparency isn’t something it is missing; it is something it must not have. Deliverables declare their render mode so storefronts label formats honestly.