The code improved recently but it's still not consistent and wrongly done. We have "special" authorised value category (branches, locations, itemtypes, etc.) that can be used in some places and not in others. * C4::Koha::GetAuthorisedValues does not handle them * Koha/UI/Form/Builder/Item.pm does * TT plugin AuthorisedValues.GetByCode does not retrieve from cache etc... We should have big structs cached in L1. When we need to access the description of a given value: { category => { value_1 => { %$av }, etc. } In other places when we need to fetch a whole (ordered) list: { category => [ @avs ] }