public void ToStream(StreamWriter s,
                                 Managers.TagManager tag, TI.Definition owner)
            {
                TI.StringId name = DescriptionText;
                if (name.Handle.IsNull)
                {
                    name = HeaderText;
                }
                if (name.Handle.IsNull)
                {
                    name = HelpText;
                }
                if (name.Handle.IsNull)
                {
                    name = Icon;
                }

                string name_str = "<unknown>";

                if (!name.Handle.IsNull)
                {
                    name_str = name.ToString();
                }

                s.Write("{0}\t", name_str);

                int type_index = TypeIndex.Value;

                if (type_index < 0)
                {
                    s.Write("NONE");
                }
                else
                {
                    var types = (owner as multiplayer_object_type_list_group).TypeList;
                    if (type_index >= types.Count)
                    {
                        s.Write("--INVALID--");
                    }
                    else
                    {
                        types[type_index].DefinitionToStream(s);
                    }
                }
                s.WriteLine();
            }