The .drft container · const

ATTR_GRAIN

Added in 1.1, and the worked example of why the order is frozen rather than tidy.

Explained in The .drft container.

const ATTR_GRAIN: number
import { ATTR_GRAIN } from '@driftengine/drft';

In depth

It takes the next free bit and appends to the end of the payload, so a 1.0 reader meets exactly the arrays it knows in exactly the places it expects them and stops before this one. The asset then draws without grain, which is what a reader that has never heard of grain should produce. Inserting it beside roughness, where it belongs conceptually, would have shifted every array after it and repainted the model with no error raised.