public CompilationUnitField ToCompilationUnitField(ldtk.FieldDefinition fieldDefinition, LdtkGeneratorContext ctx)
        {
            CompilationUnitField field = new CompilationUnitField();

            field.Name       = fieldDefinition.Identifier;
            field.Type       = GetDeclaringTypeFor(fieldDefinition, ctx);
            field.Visibility = CompilationUnitField.FieldVisibility.Public;

            if (fieldDefinition.IsArray)
            {
                field.RequiredImport = GetArrayImport();
            }

            return(field);
        }
        public virtual string GetDeclaringTypeFor(ldtk.FieldDefinition fieldDefinition, LdtkGeneratorContext ctx)
        {
            string baseType = fieldDefinition.Type;

            if (fieldDefinition.IsArray)
            {
                baseType = baseType.Substring(6, baseType.Length - 7);
            }

            string declType = GetCSharpTypeFor(baseType);

            if (fieldDefinition.IsArray)
            {
                declType += "[]";
            }

            return(declType);
        }