 public class SpectraXMLVertexAttributeNode: SpectraXMLNode {
     public typealias NodeType = MDLVertexAttribute
     
-    public func parse(container: Container, elem: XMLElement, options: [String: Any]) -> NodeType {
+    public func parse(container: Container, elem: XMLElement, options: [String: Any] = [:]) -> NodeType {
         let vertexAttr = MDLVertexAttribute()
         
         // TODO: determine which of these are required

public class SpectraXMLVertexDescriptorNode: SpectraXMLNode {
    public typealias NodeType = MDLVertexDescriptor
    
    public func parse(container: Container, elem: XMLElement, options: [String : Any]) -> NodeType {
        var vertexDesc = MDLVertexDescriptor()
        
        // if user specified a parent descriptor, find it and copy it

public class SpectraXMLAssetNode: SpectraXMLNode {
    public typealias NodeType = MDLAsset
    
    public func parse(container: Container, elem: XMLElement, options: [String: Any] = [:]) -> NodeType {
        let urlString = elem.attributes["url"]!
        var vertexDesc: MDLVertexDescriptor?
        
