public MapData(
     string nameSpace,
     IEnumerable <LineDef> lineDefs,
     IEnumerable <SideDef> sideDefs,
     IEnumerable <Vertex> vertices,
     IEnumerable <Sector> sectors,
     IEnumerable <Thing> things,
     string comment = "",
     IEnumerable <UnknownProperty> unknownProperties = null,
     IEnumerable <UnknownBlock> unknownBlocks        = null)
 {
     NameSpace = nameSpace;
     LineDefs.AddRange(lineDefs);
     SideDefs.AddRange(sideDefs);
     Vertices.AddRange(vertices);
     Sectors.AddRange(sectors);
     Things.AddRange(things);
     Comment = comment;
     UnknownProperties.AddRange(unknownProperties ?? Enumerable.Empty <UnknownProperty>());
     UnknownBlocks.AddRange(unknownBlocks ?? Enumerable.Empty <UnknownBlock>());
     AdditionalSemanticChecks();
 }