 
 extension Enum {
 
+    var typeName: String {
+        return name.type
+    }
+
     func definition(indentation: Indentation = .default, meta: Meta = .default) -> String {
         let indent = indentation.value
         var lines: [String] = []
-        lines.append("\(indent)enum \(name) {")
+        lines.append("\(indent)enum \(typeName) {")
         lines.append("\(indent)}")
         return lines.joined(separator: "\n")
     }

        case let .primitive(p):
            _name = p.name
        case let .struct(s):
            _name = s.name
        case let .enum(e):
            _name = e.name
        }
        switch status {
        case .normal: return _name
        case .isOptional: return _name //+ "?"
        case .inArray: return "[" + _name + "]"
        }
    }


extension Struct {

    var typeName: String {
        return name.type
    }

    func definition(indentation: Indentation = .default, meta: Meta = .default) -> String {
        let indent = indentation.value
        var lines: [String] = []
        lines.append("\(indent)struct \(typeName) {")
        properties.forEach {
            $0.nestedDefinition(indentation: indentation, meta: meta).flatMap {
                lines.append($0)
