                                               abuilder,
                                               std::move(parent_matrix),
                                               type);

    return fLayerTransformMap.set(layer_index, { std::move(transform), ascope.release() });
}

bool AnimationBuilder::AttachLayerContext::hasMotionBlur(const skjson::ObjectValue& jlayer) const {
    return fMotionBlurSamples > 1
        && fMotionBlurAngle   > 0
        && ParseDefault(jlayer["mb"], false);
}

sk_sp<sksg::RenderNode> AnimationBuilder::attachLayer(const skjson::ObjectValue* jlayer,
                                                      AttachLayerContext* layerCtx) const {