 import xcodeprojextensions
 
 // This is the element for the resources copy build phase.
-public struct PBXShellScriptBuildPhase: ProjectElement, Hashable, PBXProjPlistSerializable {
+public struct PBXShellScriptBuildPhase {
     
     // MARK: - Attributes
     
     /// Element reference.
     public let reference: UUID
     
-    /// Element isa.
-    public static var isa: String = "PBXShellScriptBuildPhase"
-    
-    /// Build action mask
-    public let buildActionMask: Int = 2147483647
-    
-    /// Files references
+    /// Files references.
     public let files: Set<UUID>
+    
+    /// Build action mask.
+    public let buildActionMask: Int
     
     /// Build phase name.
     public let name: String

                value: .dictionary(dictionary))
    }
    
    //    23BB67521EE325E600BE9E79 /* Run Script */ = {
    //    isa = PBXShellScriptBuildPhase;
    //    buildActionMask = 2147483647;
    //    files = (
    //    );
    //    inputPaths = (
    //				"$(SRCROOT)/myfile",
    //    );
    //    name = "Run Script";
    //    outputPaths = (
    //    );
    //    runOnlyForDeploymentPostprocessing = 0;
    //    shellPath = /bin/sh;
    //    shellScript = /test;
    //    };
}

    ///   - outputPaths: output paths.
    ///   - shellPath: shell path.
    ///   - shellScript: shell script.
    ///   - buildActionMask: build action mask.
    public init(reference: UUID,
                files: Set<UUID>,
                name: String,
                inputPaths: Set<String>,
                outputPaths: Set<String>,
                shellPath: String,
                shellScript: String?,
                buildActionMask: Int = 2147483647) {
        self.reference = reference
        self.files = files
        self.name = name
