{
 "@id": "dtmi:com:tartabit:generic;1",
 "@type": "Interface",
 "@context": [
  "dtmi:dtdl:context;2"
 ],
 "displayName": "Generic Object",
 "contents": [
  {
   "@type": "Property",
   "name": "name",
   "displayName": "Name",
   "schema": "string"
  },
  {
   "@type": "Property",
   "name": "type",
   "displayName": "Type",
   "schema": "string"
  },
  {
   "@type": "Property",
   "name": "properties",
   "displayName": "Properties",
   "schema": {
    "@type": "Map",
    "mapKey": {
     "name": "param",
     "schema": "string"
    },
    "mapValue": {
     "name": "value",
     "schema": {
      "@type": "Object",
      "fields": [
       {
        "displayName": {
         "en": "Name"
        },
        "name": "metaName",
        "schema": "string"
       },
       {
        "displayName": {
         "en": "Description"
        },
        "name": "metaDesc",
        "schema": "string"
       },
       {
        "displayName": {
         "en": "Boolean"
        },
        "name": "boolean",
        "schema": "boolean"
       },
       {
        "displayName": {
         "en": "Double"
        },
        "name": "double",
        "schema": "double"
       },
       {
        "displayName": {
         "en": "String"
        },
        "name": "string",
        "schema": "string"
       },
       {
        "name": "location",
        "displayName": {
         "en": "Location"
        },
        "schema": {
         "@type": "Object",
         "fields": [
          {
           "displayName": {
            "en": "Latitude"
           },
           "name": "lat",
           "schema": "double"
          },
          {
           "displayName": {
            "en": "Longitude"
           },
           "name": "lon",
           "schema": "double"
          }
         ]
        }
       }
      ]
     }
    }
   }
  },
  {
   "@type": "Telemetry",
   "name": "telemetry",
   "displayName": "Telemetry",
   "schema": {
    "@type": "Map",
    "mapKey": {
     "name": "param",
     "schema": "string"
    },
    "mapValue": {
     "name": "value",
     "schema": {
      "@type": "Object",
      "fields": [
       {
        "displayName": {
         "en": "Name"
        },
        "name": "metaName",
        "schema": "string"
       },
       {
        "displayName": {
         "en": "Description"
        },
        "name": "metaDesc",
        "schema": "string"
       },
       {
        "displayName": {
         "en": "Boolean"
        },
        "name": "boolean",
        "schema": "boolean"
       },
       {
        "displayName": {
         "en": "Double"
        },
        "name": "double",
        "schema": "double"
       },
       {
        "displayName": {
         "en": "String"
        },
        "name": "string",
        "schema": "string"
       },
       {
        "name": "location",
        "displayName": {
         "en": "Location"
        },
        "schema": {
         "@type": "Object",
         "fields": [
          {
           "displayName": {
            "en": "Latitude"
           },
           "name": "lat",
           "schema": "double"
          },
          {
           "displayName": {
            "en": "Longitude"
           },
           "name": "lon",
           "schema": "double"
          }
         ]
        }
       }
      ]
     }
    }
   }
  },
  {
   "@type": "Relationship",
   "@id": "dtmi:com:tartabit:device:rel_has_generics;1",
   "name": "rel_has_generics",
   "displayName": "generic has generics",
   "target": "dtmi:com:tartabit:generic;1",
   "properties": [
    {
     "@type": "Property",
     "name": "desc",
     "schema": "string"
    }
   ]
  }
 ]
}