void Emit(LS1TopLevelObject tlo, LS1TopLevelObjectForm form)
        {
            string useDescription = string.Empty;

            if (!string.IsNullOrEmpty(form.Description))
            {
                useDescription = ": " + form.Description;
            }

            if (form.Parameters == null || form.Parameters.Count == 0)
            {
                EmitLine(string.Format("- [{1}](#type-{1}) `{0}`{2}", tlo.Name, form.Type, useDescription));
            }
            else
            {
                string parameters = string.Empty;

                foreach (LS1Parameter p in form.Parameters)
                {
                    if (parameters.Length > 0)
                    {
                        parameters += " `,` ";
                    }
                    parameters += EmitDeclaration(p, " `,` ", false);
                }

                EmitLine(string.Format("- [{2}](#type-{2}) `{0}[` {1} `]`{3}", tlo.Name, parameters, form.Type, useDescription));
            }

#if MINIMUM_BUILD
            if (form.MinimumBuild > 0)
            {
                EmitLine(string.Format("  - Minimum Build: {0}", form.MinimumBuild));
            }
#endif
//            if (!string.IsNullOrEmpty(form.Description))
//                EmitLine(" - " + form.Description);
        }
        void Emit(LS1TopLevelObject tlo)
        {
            if (HideRestricted && tlo.Restricted)
            {
                return;
            }

            EmitLine(string.Format("## TLO: {0}", tlo.Name));

            if (tlo.Restricted)
            {
                EmitLine("Restricted: Yes");
            }

            if (tlo.Forms != null)
            {
                foreach (LS1TopLevelObjectForm f in tlo.Forms)
                {
                    Emit(tlo, f);
                }
            }

            EmitLine("");
        }