Campo personalizado com uma lista

Como faço e interajo com um campo personalizado contendo uma lista de strings a partir de um plugin?

Eu estava pensando que seria algo semelhante ao código abaixo, mas não consigo encontrar a maneira correta de fazer isso.

   # array de strings
   Topic.register_custom_field_type('my_list', [:string])
    add_to_serializer(:topic, :my_list, false) {object.topic.my_list}

    DiscourseEvent.on(:topic_created) do |topic|
        topic.custom_fields["my_list"] = ["item1", "item2"] 
        topic.custom_fields["my_list"] = topic.custom_fields["my_list"].push("item3")
    end