uint16_t SendLampAttributesReport(LampAttributesResponseReport *report) noexcept
{
    report->Attributes.LampId = lastLampIdRequested;
    report->Attributes.PositionXInMicrometers  = MILLIMETERS_TO_MICROMETERS(BOUND_WIDTH_MM / 2);
    report->Attributes.PositionYInMicrometers  = MILLIMETERS_TO_MICROMETERS(48);
    report->Attributes.PositionZInMicrometers  = MILLIMETERS_TO_MICROMETERS(0);
    report->Attributes.UpdateLatencyInMicroseconds = MILLISECONDS_TO_MICROSECONDS(LAMP_UPDATE_LATENCY);
    report->Attributes.LampPurposes = LampPurposeAccent;
    report->Attributes.RedLevelCount = 0xFF;
    report->Attributes.GreenLevelCount = 0xFF;
    report->Attributes.BlueLevelCount = 0xFF;
    report->Attributes.IntensityLevelCount = 0x01;
    report->Attributes.IsProgrammable = LAMP_IS_PROGRAMMABLE;
    report->Attributes.InputBinding = 0x00;

    lastLampIdRequested++;
    if (lastLampIdRequested >= LAMP_COUNT) lastLampIdRequested = 0; // Reset

    return sizeof(LampAttributesResponseReport);
}