The .drft container · const

ATTR_RELIEF

Added in 1.3, and it is the same story as grain one bit along.

Explained in The .drft container.

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

In depth

MeshData.relief and MeshBuilder.setRelief shipped in engine 0.23.0 and the container was never taught the bit, so a mesh carrying microscopic relief went through writeDrft and came back without it. Everything else survived, which is what made it invisible: a round trip gave the right shape with its surface texture gone, and that reads as a lighting problem rather than as a format dropping an array. Found from outside by a test that writes every optional attribute and reports all the losses rather than the first.

Next free bit and appended last, for the reason spelled out above: a 1.2 reader meets the arrays it knows where it expects them, stops before this one, and draws the asset smooth, which is what a reader that has never heard of relief should produce.